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.
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.
1. kommentar von mir /faq/content-ausgeben
georg
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!
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:
(nein, ist nicht der Link zum Backend 😉 )
Ich wäre sehr dankbar für Hilfe...
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.
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
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.
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
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-)
:o Danke Dir für die Antwort.
Brauche noch Zeit ...
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
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
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-)