Am Fri, 06 Aug 2010 23:25:00 +0200 schrieb Marco Brüggemann:

[...]
> # PAGE-OBJEKT
> # ------------------------------------------------------------ page =
> PAGE
> page {
>     10 = TEXT
>     10.value = <div id="page"><div id="box1"><div id="box2"><div
> id="box3"><div id="box4"><div id="box5"><div id="box6"><div
> id="box7"><div id="box8"><div id="box9">
>     20 < tmp.headerarea
>     30 = TEXT
>     30.value = <div id="content">
>     40 < tmp.contentleft
>     50 < tmp.contentnormal
>     60 < tmp.contentright
>     70 < tmp.contentborder
>     80 = TEXT
>     80.value = </div>
>     90 < tmp.FOOTERMENU
>     100 = TEXT
>     100.value = </div></div></div></div></div></div></div></div></div></
div> 
> }
> 
> Es funktioniert so weit, dass ich Inhalte aus der Datenbank aufgelistet
> bekomme, doch leider ohne CSS-Einbindung usw. ich vermute es hat was mit
> "TEMPLATE" zu tun.

das muss an etwas anderem liegen. vermutlich hast du keine Einbindungen 
definiert?

page {
        includeCSS {
                default = {$path}css/default.css
                :
        }
}


 
> Meine ERSTE wichtige Frage:
> Kann ich das Template ohne File aufbauen? Wenn ja .. bitte ein Beispiel
> oder eine Hilfe. Ich habe zwar TS-Bücher und auch schon vieles im Web
> gesucht, aber nocht nichts so richtig gefunden. Also: kann man zum
> Beispiel MARKER und SUBPARTS usw über TypoScript definieren .. alles
> ganz ohne FILE.

dein Ansatz oben (Das was ich zitiert habe) ist schon ganz gut. Natürlich 
gibt es dabei keine Marker/Subparts, sondern nur die Zahlen. Das was 
normalerweise Marker sind ist hier 20 bis 90. Etwas unschön sind deine 
unübersichtlichen DIV-tags. daher würde ich folgende Struktur bevorzugen:

dies ist jetzt nur ein Ansatz und nicht vollständig (es fehlen einige 
Definitionen, die du in [1] finden kannst).

temp.headerarea = COA
temp.headerarea {
        10 = IMAGE
        10 {
                file ....
                wrap = <div class="logo">|</div>
        }
        20 < temp.mainmenu
        
        30 < temp.breadcrumb

        wrap = <div class="headerarea">|</div>
}

temp.middlearea = COA
temp.middlearea {
        10 < temp.leftcolumn
        20 < temp.rightcolumn
        30 < styles.content.get
        30.wrap = <div class="content">|</div>

        wrap = <div class="middle">|</div>
}

page {
        10 < temp.headerarea
        20 < temp.middlearea
        30 < temp.footerarea
}

Das Prinzip: 
möglichst klein mit temp.XXXX definieren und jeweils mit einem wrap das 
ganze in das zugehörige DIV-Tag einpacken.

Wie das Endergebnis dann aussieht kannst du am besten im Objektbrowser 
sehen, wenn die ganzen temp-Objekte aufgelöst wurden. in etwa so:

page {
        10 = COA
        10 {
                10 = IMAGE
                10.wrap = <div class="logo">|</div>
                
                20 = HMENU
                20.wrap

                30 = HMENU
                30.wrap

                wrap  = <div class="headerarea">|</div>
        }
        20 = COA
        20 {
                10 ...
                20 ...
                30 ...
                wrap = <div class="middle">|</div>
        }
        30 = COA
        30 {
                10 ...
                20 ...
                wrap = <div class="footerarea">|</div>
        }
}

(natürlich kannst du es auch direkt in dieser Struktur definieren)


bei Bedarf können die temp.XXX natürlich (HTML-)Templates nutzen. Das ist 
normalerweise aber nicht notwendig.
Durch diesen reinen Typoscript-Ansatz ist die Flexibilität natürlich sehr 
hoch. innerhalb des Typoscripts kann ich einzelne Elemente ausblenden 
oder redifinieren (Zb. in Conditions), ohne unterschiedliche HTML-
Templates nutzen zu müssen.

siehe auch: [1], [2]

und bitte die öffnenden und schließenden div-Tags möglichst jeweils als 
ein wrap in einer Zeile definieren

 
> ZWEITE Frage:
> Kann ich, nachdem ich mit "if.isTrue.numRows < styles.content.get"
> geprüft habe, die Inhalte zwischenspeichern und gleichzeitig mitzählen
> wieviele Spalten belegt sind?
> Danach möchte ich in Abhängigkeit der Anzahl von belegten Spalten
> entscheiden welches Template genutzt wird und dann jeweils die Inhalte
> in den Zwischenspeichern in die Template-Bereiche Speichern.

mitzählen geht vermutlich mit register-Variablen, Ich würde aber eher 
passende wraps (spezielle CSS-Klassen) zuordnen, um einzelne 'Spalten' 
bzw. Bereiche auszublenden. 
Oder das Layout wird nicht automatisch, sondern durch den Redakteur in 
den Seiteneigenschaften festgelegt [2]


TYPO3 ist so vielseitig, dass es für dein Problem sicher ein Dutzend 
verschiedener Lösungen gibt.

Bernd 

[1] http://ug.typo3-nrw.de/mastertemplate.html
[2] http://www.pi-phi.de/191.html

-- 
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an