Hallo.
Ich bitte um Eure Hilfe.
Anforderung:Es soll ein Zitat auf allen Seiten agezeigt werden. Dazu habe ich mehrere Inhaltselemente mit Zitaten auf der Seite mit PID 24, von denen immer nur eines freigeschalten ist. Mit folgendem Code will ich das erste Inhaltselement der Seite ausgeben, was nicht funktioniert, es wird nix angezeigt.
quote = CONTENT
quote {
table = tt_content
select {
pidInList = 24
max = 1
}
renderObj = COA
renderObj.10 = TEXT
renderObj.10.wrap = |
}
}
lg, Dietmar
Ich würde eher einen Ansatz wählen wie beispielsweise unter
#79340,
#52659 oder http://blog.exites.de/2010/12/ein-typo3-contentelement-mittels-typoscript-und-einem-marker-ausgeben/.
Ansonsten gibt es auch noch das Contentelement "Datensatz einfügen" - aber hier für alle Seiten eher umständlich...
Den Ansatz mit den Id's der Contentelemente habe ich zur Zeit eingesetzt. Der ist aber nicht dynamisch, ich müßte ja jetzt schon alle ID's der Inhaltselemente, die die User in Zukunft erfassen, kennen.
Ich möchte also schon den Ansatz verfolgen, mir über die SeitenID (die ja ich über den Seitenbaum vorgebe) das erste (freigeschaltene) Contentelement zu holen.
lg, Dietmar
Dein Ansatz war eigentlich schon richtig.
Was noch zu fehlen scheint, ist die Angabe des Feldes, welches im RenderObj für den Text verwendet werden soll.
Z.B.:
renderObj.10.field=bodytext
Du könnstest auch das tt_content-Objekt in das renderObj kopieren.
Dann kannst du via Select-Statement die betreffende Spalte selektieren
und bist so nicht auf ein einzelnes Datenbankfeld beschränkt, sondern
kannst alle sichtbaren Container der Spalte anzeigen und sparst dir
die Zeit alle benötigten Felder selbst zu rendern. Ausser das
wäre für deine Formatierung erforderlich
quote = CONTENT
quote {
table = tt_content
select {
#evtl felder beschraenken
selectFields = bodytext,title,nav_title
pidInList = 24
#zu benutzende Spalte definieren
where = colPos = 0
# mehrsprachigkeit beruecksichtigen
languageField = sys_language_uid
max = 1
}
renderObj < tt_content
renderObj.wrap = <div class="theQuote"></div>
}
Vielen Dank, das haut hin!
Jetzt werd ich unverschämt ;-)
Ist das zu schaffen, dass aus einer Liste von Contentelementen in der Seite mit PID=24, die alle freigeschalten sind, per rand() eins genommen wird (das macht ja der Code unten), das Ergebnis aber 24h gecached wird, also ein 'Spruch des Tages'?
lg, Dietmar
quote = CONTENT
quote {
table = tt_content
select {
pidInList = 24
# mehrsprachigkeit beruecksichtigen
languageField = sys_language_uid
orderBy = rand()
max = 1
}
renderObj < tt_content
#renderObj.wrap = <div class="theQuote"></div>
}