Wie kann ich ein Content-Element (tt_content) rendern, welches sich nicht auf der aktuell aufgerufenen Seite befindet, welches aber mit einem SQL-Ausdruck eindeutig beschrieben werden kann?
Wenn jemand mir diese Frage beantworten könnte, wäre das super! Ich habe selbst schon einiges ausprobiert und auch in der TSRef studiert, doch haben meine bisherigen Ansätze keinen Erfolg. Das Element (aus der Tabelle tt_content) wird immer nur dann angezeigt wenn die pid dieses Content-Elementes gleich der ID der aktuellen Seite ist.
Danke und Gruß
Tom
Wenn ich deine Frage richtig verstanden habe. Möchtest du ein bestimmtes CE auf allen Seiten anzeigen. Ist das richtig?
ODER
Beschreibe doch mal bitte dein Problem an einem Beispiel!
Gruß Jimi
jimiHuy schriebMöchtest du ein bestimmtes CE auf allen Seiten anzeigen. Ist das richtig?
Ja, imgrunde schon, es geht um eine spezielle Menü-Lösung. Dabei werden die Seiten als Tab-Navigationselemente dargestellt, d.h., wenn man mit der Maus über einen Tab fährt, wird das Menü-Element sichtbar wie z.B. auf der http://www.t3n.de Site. Diese Menuelemente haben 2 Teile. Im oberen Teil sind die Textlinks zu den Unter- und Unter/Unter-Seiten des Seitenbaumes der Hauptseite und im unteren Teil ist ein textpic-CONTENT-Element. Dieses möchte ich in der jeweiligen Randspalte (colPos=3) der jeweiligen Haupseite ablegen. Da es im Seiten-Menü (Navigation) der jeweiligen Haupseite angezeigt werden soll, muss ich es grundsätzlich im erwähnten Menuelement zur jeweiligen Hauptseite anzeigen (rendern) können. Diese Menuelemente werden als COA aufgebaut und das untere Element als CONTENT-Objekt aufgerufen:
...
20 = CONTENT
20{
stdWrap.wrap = <div class="subTeaser subTeaserM">|</div>
table = tt_content
select.max = 1
select.orderBy = sorting
select.where = pid = [pid der jeweiligen Hauptseite] AND header = 'menu_only' AND colPos = 3
}
...
Doch genau das funktioniert eben nur bei der jeweils aufgerufenen Seite, weil im Normalfall ein Content-Element aus der Tabelle tt_content nur mit der pid der aktuellen Seiten ID angezeigt wird, was ja auch beabsichtigt ist.
Für meinen Fall bräuchte ich jedoch die Möglichkeit diese Einschränkung aufheben zu könen und ein Content-Element auch einer anderen als der aktuellen Seite rendern zu können.
Ich denke nun sollte klar sein, worum es mir geht!
Weißt Du oder sonst jemand wie das geht, vielleicht durch ein PHP-Script?
Gruß Tom
Also wenn es so wie bei t3n aussehen soll. Würde ich es so versuchen.
temp.t3nMenu = COA
temp.t3nMenu{
10 = HMENU
10 ...
10.1 = TMENU
10.1 ...
10.1.NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
wrap = <a href="{getIndpEnv:TYPO3_SITE_URL}|">
insertData = 1
typolink {
parameter.field = uid
returnLast = url
}
}
20 = TEXT
20 {
field = subtitle//title
wrap = |</a>
}
30 = RECORDS oder CONTENT
30 ...
}
}
}
ich habe jetzt eine menge weg gelassen. Aber ich denke die Idee des TS ist klar. :-D
Gruß Jimi
Ich glaub nicht wie einfach es ist. Hab die Lösung über die Mailinglist list.typo3.org erhalten:
20 = CONTENT
20{
stdWrap.wrap = <div class="subTeaser subTeaserM">|</div>
table = tt_content
select.max = 1
select.orderBy = sorting
select.pidInList = [pid der jeweiligen Hauptseite]
select.where = header = 'menu_only' AND colPos = 3
}
Der Aufruf eines beliebigen Content-Elementes, auch einer nicht aufgerufenen Seite erfolgt einfach über select.pidInList = [pid] und nicht wie ich es hatte im select.where Parameter.
Das wars!
@jimiHuy
Hab Deine Lösung nun nicht überprüft, mag auch funktionieren, doch meine Lösung ist etwas anders. Das entscheidende war das Content-Element, wie oben beschrieben. Damit hab ich das wichtigste Puzzlestück gefunden. Dir auch herzlichen Dank für Deine Mühe!
Gruß Tom