Linuchs: Templates: Zwischen Möglichkeiten entscheiden

Beitrag lesen

Moin,

immer mal wieder werden hier Platzhalter-Dateien diskutiert, sogenannte Templates.

Und immer mal wieder sehe ich Sourcecodes von HTML-Dateien, die ein Gerüst von Containern aufbauen, sie aber nicht füllen und dann wieder schließen.

Also heiße Luft im Web verteilen.

Wie sieht bei euch eine Template-Datei mit "Entscheidungen" aus und wie wird sie angesteuert? Zu diesem Thema habe ich bisher noch keine Tipps gelesen und möchte gerne mal diskutieren, ob meine selbst gefundene Lösung "Standard" ist.

In meinen PHP-Dateien fülle ich ein Array, die Keys korrespondieren mit den Platzhaltern der Template-Dateien.

p593t.php (Programm):

$display[] = array(
 'segment'              => 'teilnehmer_position'
,'[HOST]'               =>  $bia_domain
,'[&lang]'              =>  $bia_lang
,'[art]'                =>  $row['art']
,'[teilnehmer_lfd]'     =>  ++$teilnehmer_lfd

,'@_VIP|'               =>( $row['art'] == 'VIP' && $row['anz_events']    ) ? '' : '@'  // mind. 1 Event. Link!
,'@_VIP0|'              =>( $row['art'] == 'VIP' &&!$row['anz_events']    ) ? '' : '@'  // kein Event
,'@_VIP1|'              =>( $row['art'] == 'VIP' && $row['anz_events']==1 ) ? '' : '@'  // 1 Event
,'@_VIP_1+|'            =>( $row['art'] == 'VIP' && $row['anz_events'] >1 ) ? '' : '@'  // 2..n Events
,'@_VIP_10+|'           =>( $row['art'] == 'VIP' && $row['anz_events'] >10) ? '' : '@'  // 11..n Events
,'@_VIP_20+|'           =>( $row['art'] == 'VIP' && $row['anz_events'] >20) ? '' : '@'  // 21..n Events
,'@_VIP_30+|'           =>( $row['art'] == 'VIP' && $row['anz_events'] >30) ? '' : '@'  // 31..n Events
...

p593t_de.php (Platzhalter-Datei deutsch => Altes Konzept, inzwischen aber mehrsprachig trotz de):

...
<!-- [teilnehmer_position] -->
<div onclick="switchMarkierung(this)" style="padding-top:1em;margin-top:1em;border-top:1px solid #a00">
@_homepage|<h3 class=re><a href="[adr_homepage]"><img class=ic src="../img/icon_home.png" alt="HP" /></a></h3>
<h3>[teilnehmer_lfd]. &nbsp; <i class="cgrau em08">[art]</i> \
@_VIP|<b><a href="http://remso.eu/?VIP=[adr_id]" title="VIP=[adr_id]">\
[name]\
@_VIP|</a></b>\
@_ITR| &nbsp; <i class="crot">nicht registriert</i> <img class=ic_gr src="img/smily_rot.gif" alt="-" />\
@_VIP0| &nbsp; <i class="crot">kein Event gemeldet</i> <img class=ic_gr src="img/smily_rot.gif" alt="-" />\
@_VIP1| &nbsp; <i class="cdgelb">1 Event gemeldet</i> <img class=ic_gr src="img/smily_gelb.gif" alt="+" />\
@_VIP_1+| &nbsp; <i class="cdgruen">[anz_events] Events gemeldet</i> <img class=ic_gr src="img/smily_gruen.gif" alt="++" />\
@_VIP_10+| <img class=ic_gr src="img/smily_gruen.gif" alt="++" />\
@_VIP_20+| <img class=ic_gr src="img/smily_gruen.gif" alt="++" />\
@_VIP_30+| <img class=ic_gr src="img/smily_gruen.gif" alt="++" />\
@_kontakt|<br><small>[adr_funktion]: [adr_vname] [adr_nname], [adr_ort_name]</small>\
</h3>
@ farbiges Bild:
@_bild_VIP|<div class="mb05" style="width:100%;border:1px solid #888;"><img src="[adr_bild_url]" style="width:100%" alt=""></div>\
@ sw Bild:
@_bild_VIP0|<div class="mb05" style="width:100%;max-height:5em;overflow-x:hidden;border:1px solid #888;"><img class="bild_VIP0" src="[adr_bild_url]" style="width:100%" alt=""></div>\
@ sw Bild opacity:
@_bild_ITR|<div class="mb05" style="width:100%;max-height:5em;overflow-x:hidden;border:1px solid #888;"><img class="bild_ITR" src="[adr_bild_url]" style="width:100%" alt=""></div>\
</div>

<!-- [/teilnehmer_position] -->
...

Keine Ahnung, ob das "zu kompliziert" ist und wie es sonst gemacht wird. Meine Lösung ist extrem variabel, aber mit den zunehmenden Möglichkeiten geht es auch auf die Laufzeit. Besonders bei Listen mit mehreren hundert Positionen.

Das hier genannte Beispiel erzeugt z.B. diese Webseite und läuft 2 .. 4 sec im Server, je nach dessen Auslastung. Siehe unten rechts. Zusätzlich Versand und Aufbau im Browser.

Linuchs