-
Notifications
You must be signed in to change notification settings - Fork 12
Doc template_keys
Es ist immer sehr anstrengend gewesen, die Anzahl der Explodes beim Template zu zählen, bis zu dem Teil den man dann auch wirklich ausgeben möchte. Hier passieren oft Fehler und es dauert einfach länger. Deswegen wurde das folgende Feature umgesetzt.
Hinweis: Dieses Feature ist komplett abwärtskompatibel. Solltest du Seiten/Module entdecken, die seit diesem Feature nicht mehr funktionieren, eröffne bitte ein Ticket im Issue Tracker.
Es ist jetzt möglich, sogenannte "TemplateKeys" im Template zu spezifizieren. Mit diesem Code
{EXPLODE "my_key"}
weist man beispielsweise dem folgenden Teil des Templates den TemplateKey my_key
zu. In den Ausgabefunktionen (set_ar_out
, set_out
) etc. kann dann gemütlich auf diese Keys zugegriffen werden.
Die Awardseite wurde als Erstes auf das neue Feature angepasst. Früher sah include/templates/awards.htm
so aus:
<table width="100%" border="0" cellpadding="5" cellspacing="1" class="border">
<tr class="Chead">
<td><strong>Awards</strong></td>
</tr>
{EXPLODE}
<tr class="{class}">
<td>
{_lang_for} <b>{team}</b><br />
{bildutime}
{_lang_place}: {platz}<br />
{_lang_whatfor}: {wofur}<br />
{_lang_desc}: {text}
</td>
</tr>
{EXPLODE}
</table>
Mit dem neuen Feature können den {EXPLODE}
wie folgt TemplateKeys zugewiesen werden:
<table width="100%" border="0" cellpadding="5" cellspacing="1" class="border">
<tr class="Chead">
<td><strong>Awards</strong></td>
</tr>
{EXPLODE "tabelle"}
<tr class="{class}">
<td>
{_lang_for} <b>{team}</b><br />
{bildutime}
{_lang_place}: {platz}<br />
{_lang_whatfor}: {wofur}<br />
{_lang_desc}: {text}
</td>
</tr>
{EXPLODE "ende"}
</table>
Dem ersten Explode wurde also der Templatekey tabelle zugewiesen, dem zweiten ende.
Müssen wir jetzt auch die awards.php
anpassen, damit das ganze wieder funktioniert? Nein, grundsätzlich nicht, da das alte System auch weiterhin funktioniert, das also von 0 anfängt zu zählen, bis 1, 2, 3. Dieser Code würde also weiterhin funktionieren:
<?php
...
$row[ 'class' ] = $class;
$tpl->set_ar_out( $row, 1);
}
$tpl->out(2);
?>
Da wir jetzt die neuen Templatekeys verwenden, können wir das ganze so umschreiben:
<?php
...
$row[ 'class' ] = $class;
$tpl->set_ar_out( $row, "tabelle");
}
$tpl->out("ende");
?>
Die Vorteile dieses Features:
- Kein lästiges Abzählen der Explodes mehr: Einfach TemplateKey zuweisen und in den bisher gewohnten Funktionen verwenden
- Dadurch passieren weniger Fehler beim coden
- Der Code wird außerdem lesbarer: Man sieht, dass hier die "tabelle" ausgegeben wird und hier das "ende".
Viel Spaß mit diesem neuen Feature!
Die jetzigen Addons und Module auf das neue System umbauen.
Da wir abwärtskompatibel sind, kann man sich damit ruhig Zeit lassen.
Außerdem: Testen!: um zu sehen, ob es grundsätzlich funktioniert, index.php?awards
aufrufen, da es hier schon eingesetzt wurde.