[TYPO3-german] re. TS: Inhalte von Unterseiten auf der Oberseite zeigen
Tom Arnold
t3list at bnt.de
Sun Nov 21 12:39:39 CET 2010
Hi,
Ein Nachtrag fürs Archiv:
Ich habe eine recht smarte Lösung hinbekommen, indem ich die Extension "rgteaser" verwende, aber die Ausgabe der so modifizierten Sitemap per TS komplett an die eigenen (bzw Kunden-) Bedürfnisse anpasse. :-)
Man kann die Extension wahrscheinlich auch komplett weglassen, wenn man rein per TS (über ein temp.Menu) erstmal die PIDs der Unterseiten sammelt, diese dann mit LOAD_REGISTER im TS für die Content-Ausgabe verwendet.
Die Extension benutzt hierfür eine kleine PHP-Userfunction, die nur eine kommaseparierte Liste der Unterseiten-PIDs zurückgibt.
Hier mal das TS für die Contents:
#------------------------------------------------------------------------------------------#
tt_content.menu.20.101 = CONTENT
tt_content.menu.20.101 {
# PIDs der unterseiten holen
table = pages
select {
pidInList.cObject = USER
pidInList.cObject {
userFunc = user_getpages->main
treeDepth = 1
}
#orderBy = tstamp DESC
orderBy = sorting ASC
#where = tx_rgteaser_teaser = 1
}
# fuer jeder der PIDs in der pidInList
renderObj = COA_INT
renderObj {
# die seiten id, aus der die contents kommen speichern:
2 = LOAD_REGISTER
2 {
myPID.cObject = TEXT
myPID.cObject.field = uid
}
# stdWrap fuer die gesamte sektion
stdWrap.dataWrap = <div class="section-container" id="section{register:myPID}"> | </div>
# die tab-navigation
5 < temp.menu
#
# wrapper fuer den sektionsinhalt
10 = COA
10.wrap = <div class="section-wrap"> | </div>
10 {
# linke + rechte spalte -
10 = COA
10.wrap = <div class="section-cols"> | </div>
10 {
# linke spalte -
10 = COA
10 {
wrap = <div class="section-col left"> | </div>
# der seitentitel mit untertitel --
10 = COA
10 {
10 = TEXT
10.field = subtitle
10.noTrimWrap = |<span>|</span> |
20 = TEXT
20.field = title
wrap = <h1> | </h1>
stdWrap.wrap = <div class="section-header"> | </div>
}
# -- ende seitentitel
# bilder aus rechter spalte --
20 = CONTENT
20 {
table = tt_content
select {
pidInList.data = register:myPID
where = colPos=2
selectFields = image,imagewidth,imageorient,imagecaption,imagecols,imageborder
}
renderObj < tt_content.image
renderObj {
# --- debug --- #
#99 = TEXT
#99.data = debug:data
}
wrap = <div class="section-sidebar"> | </div>
}
# -- ende bilder rechte spalte
}
# - ende linke spalte
# hauptcontent -
20 = COA
20 {
wrap = <div class="section-col main"> | </div>
# introtext --
10 = CONTENT
10 {
wrap = <div class="section-intro"> | </div>
table = tt_content
select {
pidInList.data = register:myPID
selectFields = header,bodytext
where = colPos=1
}
renderObj = COA
renderObj {
10 = TEXT
10.field = header
10.required = 1
10.parseFunc < tt_content.text.10.parseFunc
20 = TEXT
20.field = bodytext
20.required = 1
20.parseFunc < tt_content.text.20.parseFunc
# --- debug --- #
#99 = TEXT
#99.data = debug:data
}
}
# -- ende introtext
# maincontent --
20 = CONTENT
20 {
wrap = <div class="section-content"> | </div>
table = tt_content
select {
pidInList.data = register:myPID
#selectFields = header,bodytext
where = colPos=0
}
renderObj = COA
renderObj {
10 = TEXT
10.field = header
10.required = 1
10.wrap = <h2>|</h2>
20 = TEXT
20.field = bodytext
20.required = 1
20.parseFunc < tt_content.text.20.parseFunc
#20.parseFunc < lib.parseFunc_RTE
# --- debug --- #
#99 = TEXT
#99.data = debug:data
}
# --- ende renderObj
}
# -- ende maincontent
}
# - ende hauptcontent
}
# - ende linke + rechte spalte
# footer -
20 = CONTENT
20 {
wrap = <div class="section-footer"> | </div>
table = tt_content
select {
pidInList.data = register:myPID
selectFields = header,image,imagewidth,imageorient,imagecaption,imagecols,imageborder
where = colPos=3
}
renderObj < tt_content.image
renderObj {
# --- debug --- #
#99 = TEXT
#99.data = debug:data
}
}
# - ende footer
}
# ende sektionsinhalt
}
# ende renderObj
}
# ende sitemap
#------------------------------------------------------------------------------------------#
Live sieht das dann so aus:
<http://www.panatura.com/398.html>
Backend Seitenstruktur ist:
(...)
• Green World
• The Future of Global Food
• Ecofriendly
• Sustainability
• Our Vision
(...)
Viele Grüße
Tom
--
BNT.DE Gesellschaft für interaktive Medien
Löwengasse 27E
60385 Frankfurt am Main
http://www.bnt.de/
/* snip ---- */
> Anders formuliert, wie kann ich in Typoscript einen Loop bauen, der mir nacheinander, sooft er Unterseiten findet, Contentobjekte, die ich in Marker übergeben kann, zusammenbastelt?
/* ---- snip */
More information about the TYPO3-german
mailing list