Zum Inhalt springen

Seiteninhalte einer bestimmten Seite auslesen

Erstellt am 9. Juli 2007 · 12 Antworten · letzte Antwort am 13. Mai 2011

Tags: Inhaltselemente, Frage

TheFreeman ·

Hi.

Wie kann ich auf die Inhalte der Spalte "Normal" einer bestimmten Seiten-ID zugreifen bzw. diesen per TS auslesen?
Gibts da ne Möglichkeit? #paralyzed#

Ich möchte diesen Inhalt dann woanders wieder ausgeben können.

TheFreeman ·

Ich danke Dir vielmals!

Hobe folgendes verwendet:

Bestimmten Inhalt mehrfach verwenden - Angabe von Seiten-ID (+ Angabe von Colpos):

marks.XY = CONTENT
marks.XY {
  table = tt_content
  select {
    pidInList = ID1, ID2
    orderBy = sorting
    where = colPos= 0
  }
}

Funktioniert wunderbar!

dyabelle ·

Hi, bin auch Neuling hier 🙂 Hab jetzt aber den grössten Teil meiner Website schon aufgebaut und stehe genau bei einem solchen Problem an:

Ich möchte nämlich den selben Inhalt aus der Left-Spalte auf jeder Seite ausgeben lassen.

Dieser besagte Inhalt befindet sich auf der Seite namens "band" und diese hat die ID=2.

Hab den vorangegangen Vorschlag ausprobiert und bin nicht weitergekommen. Ich benutze folgendes Script für die Ausgabe der Inhalte:

temp.mainTemplate = TEMPLATE
temp.mainTemplate {
  template =< plugin.tx_automaketemplate_pi1
  workOnSubpart = DOCUMENT_BODY
  subparts.navi < temp.navi
  subparts.inhalt < styles.content.get
  subparts.partnerBox < styles.content.getLeft
}

Hierbei bezieht sich "subparts.partnerBox" auf den besagten Platzhalter, der immer denselben Inhalt anzeigen soll.

Wie kann ich also der "partnerBox" sagen, dass sie nur immer den Inhalt aus der Seite "band" holt?

Falls jemand helfen und sich ein Bild von meinem Problem machen möchte:

http://www.dyabelle.ch/typo3

(nein, ist nicht der Link zum Backend 😉 )

Ich wäre sehr dankbar für Hilfe...

Unbekannter Benutzer ·

Dann versuchs mal so:

temp {
	partnerBox = CONTENT
	partnerBox {
		table = tt_content
		select {
			pidInList = 2
			orderBy = sorting
			where = colPos = 1
		}
	}
}
temp {
	mainTemplate = TEMPLATE
	mainTemplate {
		template = < plugin.tx_automaketemplate_pi1
		workOnSubpart = DOCUMENT_BODY
		subparts.navi < temp.navi
		subparts.inhalt < styles.content.get
		subparts.partnerBox < temp.partnerBox
	}
}

Erklärung dazu:

Du hast deinen Subpart partnerBox im HTML-Template definiert. Du kopierst diesen auf temp.partnerbox in Zeile 18.
Ab Zeile 1 wird dann temp.partnerBox definiert und gefüllt aus der SeitenID 2 aus der Spalte links, wo ja dein Inhalt liegt.

dyabelle ·

Du bist mein Held 🙂

Das Problem ist halt echt, erst mal die verschiedenen Ansätze zu verstehen, die man aus verschiedenen Tutorials (u.a. das vom Typo3-Macher selbst) entnehmen kann.

Das Zusammenführen der verschiedenen Ansätze ist dann ein zweites...

Also: vielen Dank!!!

Was ich aber noch nicht ganz verstehe: Werden mit dem folgenden Typoscript nur Eigenschaften oder auch Inhalte übergeben (<)?

subparts.inhalt < styles.content.get

Unbekannter Benutzer ·

also da wird eigentlich etwas kopiert. und zwar auf styles.content.get. Das findest du dann wieder in "Statische Templates" und zwar in "styles.content (default)". Dort findest du dann styles.content.get, was folgendes beinhaltet:

styles.content.get = CONTENT
styles.content.get {
        table = tt_content
        select.orderBy = sorting
        select.where = colPos=0
        select.languageField = sys_language_uid
}

Du siehst also es wird so gesehen nichts ausgegeben, sondern nur kopiert. Du musst den ganzen Krempel also nicht selbst schreiben, da schon vorhanden.
Mit styles.content.getLeft und getRight /Border... verhält es sich ebenso.
Du siehst also das bei deinem styles.content.getLeft nicht das gewünschte ausgegeben werden konnte.

GSPJ ·

Ich möchte das Thema noch einmal aufgreifen:

Ich möchte den Inhalt einer Spalte Links, dies ist eine Navigation, die nur auf bestimmten Seiten auftauchen soll, nur einmal anlegen und mehrfach einsetzen. Diese Linkliste verändert sich und ich müsste sonst alle Seiten auf denen diese Links erscheinen von Hand ändern.

Wo genau muss ich da mit TypoScript arbeiten?
Könnt Ihr mir bitte auf die Sprünge helfen? Dies ist mein erstes ernstes Typo3-Projekt.

P. S.
Nutze Typo3-Version: 4.4.0

TheFreeman ·

Versuchs mal so:

# Hier die PIDs rein, wo der Datensatz angezeigt werden soll
[PIDinRootline = 1,2,3,4]
   lib.spalte_auslesen = CONTENT
   lib.spalte_auslesen {
       table = tt_content
       select {
           orderBy = sorting

           # HIER MUSS DIE PID der SOURCE-Seite rein:
           pidInList = 5

           where = colPos = 1
           languageField = sys_language_uid
       }
   }
[global]

   # Objekt einem Marker zuordnen
page.10.marks.MARKERNAME < lib.spalte_auslesen

Vielleicht hilfts Dir weiter. Habs net gestestet.
Sollte aber so gehen.8-)

Domi741 ·

Hallo.

Ich habe folgendes TS:

lib.sidebar = COA
lib.sidebar {
  wrap = <ul>|</ul>
  10 = CONTENT
  10 {
    table = tt_content
    select {
      pidInList = 13
      orderBy = sorting
      where = colPos= 0
    }
    renderObj = COA
    renderObj.wrap = <li class="widget widget_text"><div class="textwidget">|</div></li>
  }
}

und auf der Seite kriege ich folgendes ausgegeben:

<ul>
<li class="widget widget_text">
<div class="textwidget"></div>
</li>
<li class="widget widget_text">
<div class="textwidget"></div>
</li>
<li class="widget widget_text">
<div class="textwidget"></div>
</li>
</ul>

Wie kriege ich es hin, dass er egal was für ein Inhaltselement ich anlege, er dieses auch korrekt ausgibt?!

Also er liest die Seite mit der ID 13 richtig aus, dort gibt es wie der Quelltext es anzeigt 3 Inhaltselemente, aber er gibt die Inhaltselemente halt nicht aus.

Habt ihr einen Rat für mich wie ich das gelöst kriege?

Lg Dominic

Domi741 ·

Hier mal eine Skizze von dem Layout der Seite:
Bild: img192.imageshack.us/…/layoutskizze.th.jpg

Habe die Seite mit TemplaVoilá gemacht, gibt es vllt eine Möglichkeit die "Sidebar" mit unterschiedlichen Seiteninhalten zu füllen? Also auf jeder Seite soll der gleiche Inhalt in der Sidebar sein, ich meine vom Typ unterschiedlich, also z.B. auch Plugins

Mein TS und die HTML Ausgabe wies bisher ist seht ihr einen Post vorher.

Lg Dominic

TheFreeman ·

Ich weiss nicht so genau, wie das mit TV funktioniert, da ich das nie benutzt habe...
Aber ich löse das Problem immer so:

########################################
temp.spalte_auslesen = CONTENT
temp.spalte_auslesen {
    table = tt_content
    select {
        orderBy = sorting
        pidInList = 13
        where = colPos = 0
        languageField = sys_language_uid
    }
    renderObj = COA
    renderObj.wrap = <li class="widget widget_text"><div class="textwidget">|</div></li>
}

lib.content_global = COA
lib.content_global {
  wrap = <div id="globalcontent">|</div>
    10 = COA
    10.if.isTrue.numRows < styles.content.get
    10 {
        10 < styles.content.get
        10.wrap = |
    }

    20 = COA
    20.if.isFalse.numRows < styles.content.get
    20 {
        10 = CONTENT
        10 < temp.spalte_auslesen
        10.wrap = |
    }
}

lib.content_global musst Du dann in Deinen Marker schreiben.
Versuchs mal. 8-)