Inhaltsverzeichnis
Ziel
In TemplaVoila habe ich eine (in meinem Beispiel) rechte Spalte definiert. Diese ist in einem DIV abgebildet, und zwar im Modus „INNER“, d. h. das DIV wird einfach durch die Inhaltselemente befüllt.
Nun möchte ich jedoch, dass bei Seiten, auf denen diese Inhaltsspalte leer ist, das DIV gar nicht angezeigt wird.
Lösung
1. Schritt
Zunächst weisen wir in der TemplaVoila-Vorlagen-Abbildung das DIV im Modus „OUTER“ zu. Somit wird das DIV einfach durch den Inhalt ersetzt.
Nun stimmt es zwar auf den leeren Seiten, jedoch dann nicht, wenn wir Inhalte haben – in diesem Fall fehlt nämlich das DIV.
2. Schritt
Wir können im „Global-XML“ des TemplaVoila-Templates eine Bedingung einfügen, dass der Inhalt einfach mit dem DIV (so wie wir es möchten) gewrappt wird. Und zwar nur, dann, wenn auch Inhalte da sind.
Dazu sucht man im XML nach dem Namen der Inhaltsspalte, z. B. „Content Rechts“:
<field_content_right type="array">
<tx_templavoila type="array">
<title>Content Rechts</title>
Darunter gibt es einen Bereich „TypoScript“, der in etwa so aussieht:
<TypoScript>
10= RECORDS
10.source.current=1
10.tables = tt_content
</TypoScript>
Diesen ändert man nun wie folgt um:
<TypoScript><![CDATA[
10 = RECORDS
10.source.current=1
10.tables = tt_content
10.stdWrap {
wrap=<div id="middle_right">|</div>
required=1
}
]]></TypoScript>
…wobei bei „wrap“ angegeben wird, mit welchem DIV der Inhaltsbereich umschlossen werden soll.
Die wilde Konstruktion von „CDATA“ ist notwendig, wenn man HTML-Zeichen im TypoScript-Quelltext verwendet.
3. Schritt
Speichern und Cache leeren!