[TYPO3-german] Anfänger Frage / Typoscript / CONTENT / select.orderBy = rand()

JoH info at cybercraft.de
Fri Jul 28 13:55:33 CEST 2006


> Typoscript-Code:
> CONTENT_BESCHREIBUNG = CONTENT
> CONTENT_BESCHREIBUNG {
>  table =  tt_content
>  select.selectFields = header
>  select.orderBy = rand()
>  select.max = 1
>  renderObj = TEXT
>  renderObj.field = header
>  wrap = Zufallsheader:<br />|
> }
>
> Die CONTENET_BESCHREIBUNG ist ein subpart aus meinem Template.
>
> Im Grunde will ich aus der "tt_content" Tabelle aus einer ganz
> bestimmten Spalte, hier jetzt als Beipiel die "header" Spalte, immer
> nur einen Wert aus einer Zeile auslesen. Das ganze per Zufall. Jetzt
> das Problem: Wie geht das ? Bei mir ließt er dann immer nur den
> Header der aktuell geöffneten Seite aus, aber das will ich ja nicht.
> Er soll auf jeder Seite einen Zufalls "header" auslesen.
>
> Die "header" Spalte ist jetzt nur ein Beispiel da dort ja meist Daten
> enthalten sind. Später wollte ich eine eigene Tabelle dafür anlegen.

Das Problem liegt im Abschnitt "select".
Dort gibt es den Parameter "pidInList".
Default hierfür is "this", also die aktuelle Seite.
Wenn Du das umgehen willst, mußt Du dafür sorgen, daß unter "pidInList" alle 
Seiten-Ids auftauchen, von denen möglicherweise ein Element gezogen werden 
soll.

Das kannst Du manuell machen:

pidInList = 123,456,789 etc.

oder per HMENU

pidInList.cObject = HMENU
pidInList.cObject {
    entryLevel = 0
    1 = TMENU
    1 {
        expAll = 1
        NO {
            doNotLinkIt = 1
            stdWrap.field = uid
            stdWrap.wrap = | |*|  ,| |*|
            # Hier wird optionSplit benötigt
            # Damit die erste uid kein , erhält
        }
    }
    2 = TMENU
    2 {
        expAll = 1
        NO {
            doNotLinkIt = 1
            stdWrap.field = uid
            stdWrap.wrap = ,|
        }
    }
    3 < .2
    4 < .2
    # usw. für alle verfübaren Ebenen.
}

oder ggf. mit einer eigenen userFunc, die alle verfügbaren Seiten ids 
ausliest.

Ungetestet, sollte aber gehen!

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