Hallo,
Folgendes Beispiel macht:
eine Sitemap/Teaser aus ausgewählten Seiten.
Code in der TsConfig
# neue Sitemap hinzufügen
TCEFORM.tt_content.menu_type {
addItems.102 = rgTeaser II
}
Code im Setup
# php-Datei für die userfunction einbinden
includeLibs.user_getpages = fileadmin/dev/scripts/user_getpages.inc
# neue Sitemap erstellen
tt_content.menu.20.102 = CONTENT
tt_content.menu.20.102 {
# 1. Abfrage basierend auf den Seiten
table = pages
select {
# pidinlist > userfunction um eine Rekursion zu erhalten auf die gewählten Ausgangspunkte in Sitemap
pidInList.cObject = USER
pidInList.cObject {
userFunc = user_getpages->main
treeDepth = 3
}
orderBy = tstamp DESC
#where = tx_rgteaser_teaser = 1
}
# Darstellung der SEITEN
renderObj = COA_INT
renderObj {
# an Stelle 10 der Seiten-titel
10 = TEXT
10.field = title
10.wrap = <div style="border:1px solid #ccc; padding:10px;margin:5px;"><h3>|
# Stelle 12 das Alter der Seite
12 = TEXT
12.field = tstamp
12.age = 1
12.required = 1
12.wrap = <span style="font-size:10px;padding-left:10px;">(|)</span></h3>
# Wir merken uns die Seiten-ID für später
20 = LOAD_REGISTER
20 {
meinRegister.cObject = TEXT
meinRegister.cObject.field= uid
}
# an Stelle 50 wird der Seiteninhalt erzeugt
50 = COA
50 {
###########
20 = CONTENT
20 {
# Abfrage an Tabelle tt_content = Seiteninhalt
table = tt_content
select {
# wir holen uns die die Seitenid von vorher
pidInList.data = register:meinRegister
#max = 1
}
# Wie soll der Seiteninhalt gerendert werden
renderObj = COA
renderObj {
# Stelle 1 mal ein div aufmachen
1 = TEXT
1.value = <div style ="padding:5px; margin:5px;">
# Stelle 10 der Titel des Contentelements
10 = TEXT
10.field = header
10.wrap = <strong>|</strong>
10.required = 1
# Stelle 20 der Text, beschränkt auf 350 Zeichen
20 = TEXT
20 {
field = bodytext
crop = 350 | ... | 1
wrap= <br />|
parseFunc < tt_content.text.20.parseFunc
stripHtml = 1
}
/*
30 = TEXT
30 {
value = [mehr]
typolink.parameter.field=pid
typolink.parameter.dataWrap=|#{field:uid}
wrap = |
}
*/
# Div wieder zu
99 = TEXT
99.value = </div>
}
}
###########
}
# Stelle 60 (nach den contentelementen) ein Link zur Seite
60 = TEXT
60 {
value = [mehr]
typolink.parameter.field=uid
wrap = |
}
99 = TEXT
99.wrap = |</div>
}
}
benötigte Userfunction
speichern in zB fileadmin/dev/scripts/user_getpages.inc
<?php
class user_getpages {
function main($content,$conf) {
global $TSFE;
$pid_list_arr = explode(",",$this->cObj->data['pages']);
$pid_list="";
while(list(,$val)=each($pid_list_arr)) {
$pid_list.=$val.",".$this->cObj->getTreeList($val,$conf["treeDepth"]);
}
$pid_list = ereg_replace(",$","",$pid_list);
return $pid_list;
}
}
?>
lg georg
PS: nicht alles was hinkt ist ein Vergleich, mehr will ich da dazu nicht sagen!