Wer in einem Seitenbaum zentral Inhalte einpflegen möchte und diese automatisiert auf Unterseiten anzeigen möchte, hat mehrere Möglichkeiten. Neben Datensatzverlinkungen und TypoScript Referenzierungen finde ich die Möglichkeit der automatisierten Vererbung via KB Content Slide Plugin (kb_cont_slide) sehr elegant.
Die Funktionsbeschreibung
Generell nimmt KB Content Slide die TypoScript-Definition eines Contentelements entgegen und sucht zuerst auf der aktuellen und danach allen übergeordneten Seiten danach. Wird das definierte Element gefunden, wird es zurückgeliefert. Das entspricht einer Vererbung: Ist das gesuchte Element auf einer Elternseite definiert, wird es auch auf allen Unterseiten dargestellt.
Die Standardnutzung
Wie auch in der Dokumentation beschrieben, ist es ein einfaches zB. die rechte Contentspalte auf allen Unterseiten darzustellen. Dazu definiert man nur den entsprechenden Marker im Template (zB. ###RECHTE_SPALTE###) und weist diesem den Inhalt des Plugins zu:
page.10.marks.RECHTE_SPALTE < plugin.tx_kbcontentslide_pi1
Da das Plugin ja noch nicht wissen kann, welche Spalte man angezeigt haben möchte, muß man das direkt danach noch konfigurieren:
page.10.marks.RECHTE_SPALTE {
content.select.where = colPos=2
}
Jetzt wird es interessant
Nach Blick in das (sehr schlanke) Plugin selber offenbart sich seine Eleganz: In das Attribut content darf in Wirklichkeit alles reindefiniert werden: KB Content Slide geht in einer Schleife alle Seiten der Vererbungslinie durch, setzt die globale Variable $GLOBALS["TSFE"]->contentPid und läßt Typo3 das definierte Inhaltselement instanzieren. Wird ein Inhaltselement zurückgegeben wird die Schleife gestoppt: Wir haben, was wir suchten.
Hier die TypoScript-Standarddefinition des content-Attributs:
plugin.tx_kbcontslide_pi1 {
content = CONTENT
content {
table = tt_content
select {
pidInList = this
where = colPos=0
orderBy = sorting
}
}
}
Page Resource Bilder vererben und ausgeben
Mit solchem Wissen ausgestattet lassen sich natürlich ganz lässige Dinge erledigen. Hiermit gebe ich zB. ein zentral hinaufgeladenes Bild (Page Properties / Resources / Files) auf allen Unterseiten aus:
tpl.image = COA
tpl.image {
10 = TEXT
10.value = <div id="image">
20 < plugin.tx_kbcontslide_pi1
20.content.table = pages
20.content.select.where >
20.content.renderObj = IMAGE
20.content.renderObj {
file.import = uploads/media/
file.import.field = media
file.import.listNum = 0
}
30 = TEXT
30.value = </div>
}
Comment by Fanninger Thomas
ja wie ich sehe bist voll in der Typo3-Welt. Naja ist aber nicht meine. Aber auch ich bewege mich in ein Neuland (Naja auch nicht ganz). Beginn gerade Windows Mobil Anwendungen zu schreiben für mein Omnia 2 Smartphone. Schönes Spielzeug. Wie gehts dir mit deinem Blackberry?
Gruß Thomas
Comment by Sholeh
wo kann ich "tx_kbcontentslide_pi1" finden?:((
Comment by Sholeh
Ein dumme Frage: bleibt die Konfiguration von TS gleich? Ich benutze der Zeit Typo3 4.3
Danke!
Comment by Johannes
TS-Conf bleibt gleich: Die Extension ist sehr einfach gestaltet - Das ist ja auch, was sie so genial macht: Code is poetry sagen sie zumindestens bei WordPress *g*