[TYPO3-german]Templateauswahl: "content.file =.." in Abhängigkeit vom Inhalt

JoH info at cybercraft.de
Thu Jan 26 00:21:28 CET 2006


>> wahrscheinlich einfache Sache..
>> aber ich komme nicht drauf.. :(
>>
>> Folgendes..
>> WENN (styles.content.getLeft)   {
>>      content.file = fileadmin/template_a.html
>> }
>> SONST {
>>      content.file = fileadmin/template_b.html
>> }
>> ..möchte ich unten, im TS-Code-Beispiel zwischen den Kommentarzeilen
>> machen.
>> ----------------------------------------------------------------
>> plugin.tx_automaketemplate_pi1 {
>>     content = FILE
>>
>>      #---- begin
>>     content.file = fileadmin/template_a.html
>>      # hier möchte ich "template_b.html" nehmen (Wenn inhalt "Links"
>> existiert!) also die Zeile davor überschreiben
>>      #---- end
>>
>>     elements {
>>         BODY.all = 1
>>         BODY.all.subpartMarker = DOCUMENT_BODY
>>         DIV.id.Content = 1
>>         DIV.id.ContentLeft = 1
>>         HEAD.all = 1
>>         HEAD.all.subpartMarker = DOCUMENT_HEADER
>>     }
>>     relPathPrefix = fileadmin/test_templates/
>> }
>> ----------------------------------------------------------------

Genau das ist der Grund, warum ich gern die Verwendung von COA als Basis für
Elemente und Plugins propagiere.
Da läßt sich ganz einfach mit mehreren Teilbereichen 10,20,30 arbeiten, die
man mit Hilfe von if Abfragen ein- und ausschalten kann.
Versuch mal folgendes:

plugin.tx_automaketemplate_pi1 = COA
plugin.tx_automaketemplate_pi1 {
    10 = COA
    10 {
        ### 10 existiert nur, wenn links kein Inhalt zu finden ist ###
        if.isFalse.numRows < styles.content.getLeft
        10 = USER
        10 {
            userFunc = tx_automaketemplate_pi1->main
            content = FILE
            content.file = fileadmin/template_a.html
            elements {
                BODY.all = 1
                BODY.all.subpartMarker = DOCUMENT_BODY
                DIV.id.Content = 1
                DIV.id.ContentLeft = 1
                HEAD.all = 1
                HEAD.all.subpartMarker = DOCUMENT_HEADER
            }
            relPathPrefix = fileadmin/test_templates/
        }
    }
    20 < .10
    20 {
        ### 20 existiert nur, wenn links Inhalt zu finden ist ###
        if.isTrue.numRows < styles.content.getLeft
        10 {
            content.file = fileadmin/template_b.html
        }
    }
}


Wenn das alle Extension Programmierer (Kasper eingeschlossen) endlich
verinnerlichen würden, wäre vielen Anwendern extrem geholfen.
Selbst eine ungecachte Variante davon ließe sich ohne Probleme
bewerkstelligen, indem man mit COA_INT arbeitet.

Denkt mal drüber nach, liebe (Mit-)Developer!

BTW: Eine andere Option wäre natürlich, den Parameter file des Elements FILE
(so wie viele andere Parameter auch) endlich mit stdWrap Eigenschaften zu
bestücken.
Das ist aber bisher nicht der Fall.
Die COA Geschichte macht aber in diesem Fall mehr Sinn, weil gegebenenfalls
auch andere Dinge im Setup je nach Inhalt anders aussehen sollen.
Damit bleibt alles schön übersichtlich.
Richtig cool wäre ein LOAD_REGISTER für allgemeingültige Defaults zu
verwenden, aber das führt hier ein wenig zu weit - sonst liest ja keiner
mehr ein Buch ;-)

Joey

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





More information about the TYPO3-german mailing list