Folgende Situation:
Ich habe ein Template für eine Site, egal ob TS-Template oder HTML-Template/Designvorlage.
> In der Kopfzeile z.B. soll aber für bestimmte Seiten ein bestimmter Text angezeigt werden, für andere Seiten ein anderer Text.
> Für jede Seitengruppe soll der jeweilige Text gleich sein.
> Und er soll vom Redakteur manipuliert werden können, muss also per Datensatzeingabe veränderbar sein und kann nicht fest in einer TS-Template-Extension oder mit ###MARKERN### verankert werden.
Im Moment geht es anscheinend nur so, dass der entsprechende Kopfzeileninhalt auf jeder Seite einzeln eingetragen und bei Bedarf upgedatet werden muss, was ein sehr fehleranfälliges Verfahren ist und nebenbei auch nichts mit Content Management zu tun hat.
In anderen CMS gibt es den Mechanismus der Subtemplates. Ich definiere ein Subtemplate, also einfach einen Schnipsel HTML-Code, den ich dann bei den entsprechenden Seiten einfach inkludiere. Bei Typo3 ginge das durchaus mit dem ###MARKER###-Mechanismus. Aber ich finde keine Möglichkeit für solche subtemplates.
Eine andere Möglichkeit könnte sein, dass ich eine Musterseite für eine bestimmte Seitengruppe einrichte und dann den anderen Seiten dieser Gruppe per template-extension mitteile:
[CONSTANT]
# pageid der Musterseite
pageid = 8
[SETUP]
marks.KOPFZEILE < pageid.content.marks.KOPFZEILE
Gibt es dafür entsprechende Lösungsmöglichkeiten unter Typo3? Meine bisherigen Versuche zeigten mir, dass ich von einer Seite aus nicht auf die Datensätze einer anderen Seite zugreifen kann.
Stefan Padberg
Hi Stefan,
es gibt mehrere Möglichkeiten, z.B.
SETUP:
#Marker ###KOPFZEILE### muss im HTML-Template vorhanden sein
...
marks.KOPFZEILE = TEXT
marks.KOPFZEILE.data = DB:tt_content:27:header
Du kannst diese Überschriften auch auf einer Seite "Nicht im Menü" oder in
einem SysOrdner erzeugen.
Auf diese Weise kannst Du nicht nur die Content-Tabelle sondern z.B. pages oder andere Tabellen abrufen. Denkbar wäre z.B. auch, den Kopfzeilen-Text als Subtitel einer Seite einzugeben und wie beschrieben von anderen Seiten abrufen.
Gruss
Andreas Schwarzkopf
www.meinsystem.de
Leider finde ich hierzu nichts in der TS Ref. Wo sind diese Features dolumentiert?
Aus deinem Hinweis werde ich leider nicht schlau genug. Beruhigend zu wissen, dass es Möglichkeiten gibt...
1.
marks.KOPFZEILE = TEXT
marks.KOPFZEILE.data = DB:tt_content:27:header
Woher kommt die 27? Ist das die id der Seite, von der ich den content includieren will?
Woher kommt der Bezeichner "header"? Bezieht sich das auf tt_content.header?
Was für Bezeichner kann ich alles verwenden?
2.
Es geht nicht nur um Überschriften, sondern auch um Bilder, Graphiken, Logos etc. alles was so ein User/Redakteur eben in seine Kopfzeile packen will. ("Kopfzeile" bezieht sich nicht auf den HTML-Head, sondern steht innerhalb der BODY-Tags als Seiteninhalt. Soll aber eben auf mehreren Seiten gleich sein.)
3.
Wie erzeuge ich einen SysOrdner?
Danke für die Hinweise.
Stefan Padberg
TSRref S. 29: Datentyp getText
TSRef S. 45: data (stdWrap)
.data = DB:tt_content:27:header bedeutet: hole den Wert aus der Datebank, Tabelle=tt_content, uid=27, Feld=header. Es kann, wie schon gesagt, auf diverse Tabellen angewendet werden. Die Tabellen und Felder findest Du im phpMyAdmin.
Wenn Du aber komplexe Inhalte und nicht nur einen Text brauchst, dann solltest Du es anders machen:
.KOPFZEILE = RECORDS
.source = tt_content_27 // für ein Content-Element mit der uid=27
TSRef S. 90
Wenn allerdings der Redakteur den Datensatz löscht und einen neuen anlegt, wird der Eintrag nicht mehr angezeigt, weil sich die uid ändert.
Du kannst auch für jeden Redakteur einfach nur eine Seite anlegen und die dann so einbinden:
.KOPFZEILE = CONTENT
.KOPFZEILE {
table = tt_content
select.pidInList = 23 // ID der Seite
}
TSRef S. 89
SysOrdner: Neue Seite-> Typ: SysOrdner
Gruss
Andreas Schwarzkopf