Hallo liebe Gemeinde,
ich habe in einem Projekt Seiten-Teaser erstellt in Form von Content-Element Sitemap (zB.: tt_content.menu.20.7) Der Grundaufbau dieses Teasers sieht wie folgt aus:
tt_content.menu.20.7 >
tt_content.menu.20.7 = COA
tt_content.menu.20.7 {
10 = HMENU
10 {
special = list
special.value.field = pages
1 = TMENU
1 {
expAll = 0
NO {
doNotShowLink = 1
stdWrap.cObject = LOAD_REGISTER
stdWrap.cObject {
site_uid.field = uid
site_uid.dataWrap = {register:site_uid},|
}
}
}
2 < .1
3 < .1
4 < .1
5 < .1
6 < .1
7 < .1
8 < .1
9 < .1
10 < .1
}
20 = CONTENT
20 {
table = pages
select {
orderBy = title
pidInList.data = register:site_uid
}
stdWrap {
wrap = <ul>|</ul>
required =1
}
renderObj = COA
renderObj {
10 = IMAGE
10 {
# bild erstellen
file = GIFBUILDER
file {
XY = 123,96
quality = 100
# anzuzeigendes bild importieren
10 = IMAGE
10 {
file {
height = 96c
width = 123c
import {
cObject = TEXT
cObject {
cObject = TEXT
cObject {
value = fileadmin/teaser/defaultgrafik.png
override {
required = 1
data = levelmedia:-1, slide
wrap = uploads/media/ |
listNum = 0
}
}
override {
required = 1
field = media
wrap = uploads/media/ |
listNum = 0
}
}
}
}
}
}
# weitere ausgabe konfigen
altText.field = description
titleText.field = abstract // description // title
imageLinkWrap = 1
imageLinkWrap {
enable = 1
typolink {
target =
parameter.field = uid
ATagParams = class="teaser1_bild"
}
}
}
20 = TEXT
20 {
field = title
typolink.parameter.field = uid
dataWrap = <dl><dt>|</dt>
append = TEXT
append {
field = abstract // description
wrap = <dd>|</dd></dl>
}
}
# item wrappen
stdWrap {
wrap = <li>|</li>
required = 1
}
}
}
}
Legende zu Listing 1
..menu.20.7.10 = Ich lade die anzuzeigenden IDs in den Register
..menu.20.7.20 = Ich gebe die einzelnen IDs per CONTENT aus
Das funktioniert auch hervorragend. Allerdings möchte ich nun auch statisch per Typoscript bestimmen können (durch Überschreibung von tt_content.menu.20.7.10 und manuellem Befüllen des Registers per manueller Typoscript-Eingabe) welche Teaser-Items angezeigt werden. In der jetzigen Funktion werden alle Unterseiten der sich im Register befindenden hinterlegten IDs ausgegeben.
Ich möchte aber nun sagen - egal aus welchen Seitenpfad oder Baum im TYPO3-Projekt eine Seite liegt - "13,50,20,143 - ihr zeigt euch jetzt auf der Seite als Teaser!"
Mir ist dabei klar das ich tt_content.menu.20.7.10 anpassen muss, um eine benutzerdefinierte Liste zu bekommen - das habe ich auch schon in Form von Listing 2 geschafft:
tt_content.menu.20.7 {
10 >
10 = HMENU
10 {
special = list
special.value = 13,50,20,143
1 = TMENU
1 {
expAll = 0
NO {
#doNotShowLink = 1
stdWrap.cObject = LOAD_REGISTER
stdWrap.cObject {
site_uid.field = uid
site_uid.dataWrap = {register:site_uidd},|
}
}
}
}
}
Legende zu Listing 2
..menu.20.7.10 = Manuelle Eintragung anzuzeigender IDs in den Register
Nun funktioniert das ganze allerdings noch nicht - weil irgendwie tt_content.menu.20.7.20 Dies nicht macht was ich will.
Kann es daran liegen das CONTENT anhand der PID die Seiten ermittelt? Ich hab die starke Vermutung - allerdings fehlt mir das Wissen - wie ich dies umgehen kann.
Ich bin für jeden Tipp dankbar - vielleicht ist es auch nur eine Kleinigkeit - ich weis es nicht.
Vielen Dank im Voraus,
jos
UPDATE
Ich habe nun versucht, das ganze über RECORDS zu lösen. Soweit würde es ansatzweise funktionieren. Allerdings funktioniert bei der Angabe von source kein source.data = register:site_uid. Auch beim Bereich conf.pages ist es mir noch unerklärlich, wie tt_content.menu.20.7.20.renderObj reinbringe. Hier ein ansatzweise funktionierendes TS.
20 >
20 = RECORDS
20 {
# select desired table
tables = pages
# load register
#source.data = register:site_uidStatic
source = 42,33,40
dontCheckPid = 1
# stdWrap nicht möglich
wrap = <ul>|</ul>
conf.pages >
conf.pages = COA
conf.pages {
5 = TEXT
5.field = title
10 = TEXT
10 < tt_content.menu.20.7.renderObj
}
}