[TYPO3-german] Content von Unterseiten ausgeben

JoH info at cybercraft.de
Tue Feb 21 18:08:24 CET 2006


>> Vielen Dank nochmal für die Hilfe, aber leider liefert mir das
>> Snippet immer noch keine Infos :(
>>
>> ---< snip >---
>>
>> temp.subcontent = CONTENT
>> temp.subcontent {
>>   table = tt_content
>>   select {
>>     join = pages on (tt_content.pid=pages.uid)
>>     where = pages.pid=24 AND tt_content.colPos=0
>>     orderBy = pages.sorting,tt_content.sorting
>        pidInList>
>>   }
>> }
>>
>> ---< snip >---
> [...]
> pidInList gelöscht?

genau das geht eben nicht ;-)
pidInList muß entweder direkt oder über stdWrap gesetzt werden, oder es wird
"this" genommen.
Und exakt das ist der Grund, warum alle bisherigen Ansätze nicht
funktionieren.
Die Nummern mit JOIN & Co. beziehen sich also ausschließlich auf Datensätze,
die sich auf einer der in pidInList angegebenen Seiten befinden.
JOIN wird in diesem Fall aber eigentlich gar nicht benötigt.

Das Ganze kann daher in TypoScript nur in einer Zweischritt-Lösung gehen.
pidInList bekommt eine Liste von Seiten, deren Inhalt dann ausgegeben wird.
Das funzt über ein LOAD_REGISTER, das als renderObj in ein CONTENT Element
gepackt wird.
Das CONTENT Element gibt seinerseits also nicht wirklich etwas aus, sondern
füllt lediglich das Register mit einer kommaseparierten Liste.
Die sorgt wiederum im pidInList des zweiten CONTENT Elements dafür, daß nur
Inhalte aus diesen Seiten gerendert werden.

temp.subcontent = COA
temp.subcontent {
    10  = CONTENT
    10 {
        table = pages
        renderObj = COA
        renderObj {
            10 = COA
            10 {
                if.isFalse.data = register:pageList
                10 = LOAD_REGISTER
                10 {
                    pageList.field = uid
                }
            }
            20 = COA
            20 {
                if.isTrue.data = register:pageList
                10 = LOAD_REGISTER
                10 {
                    pageList.dataWrap = {register:pageList},{field:uid}
                }
            }
        }
    }
    20  = CONTENT
    20 {
        table = tt_content
        select {
            pidInList.data = register:pageList
            orderBy = pid DESC,sorting
        }
    }
}

Soeben getestet und für gut befunden.
Übrigens: Solche und ähnliche Ansätze gibt's in Kürze im Kochbuch ;-)

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
openBC: http://www.cybercraft.de





More information about the TYPO3-german mailing list