php-resource.de

PHP Tutorial: Templates in PHP

Ein kleines Tutorial zum Einsatz von Templates in PHP am Beispiel der Apolda Templateklasse (kuerbis.org/template/)

|17.12.2002 | stulgies@ | 14100 | KAT : PHP | | Kommentare 2


2

2

Blöcke

Wie könnten wir nun vorgehen, wenn wir alle 18 Vereine der Bundesliga in einer Tabelle ausgeben möchten? Wir könnten alle 18 Werte einzeln zuweisen, wie im ersten Beispiel, oder alle Werte auf einmal zuweisen, wie im zweiten Beispiel. Bei den bislang bekannten Methoden verbleibt jedoch ein entscheidener Nachteil. Wir müssten für jeden der 18 Vereine einen Platzhalter in unserer HTML-Datei anlegen. Möchten wir zusätzlich die Position des Vereins ausgeben, sowie zeilenweise alternierende Hintergrundfarben darstellen, müssten wir eine Tabelle mit zwei Spalten und achtzehn Zeilen, sowie 54 Platzhaltern anlegen. Was ist, wenn wir eine Tabelle mit 100 Vereinen haben?
Die Lösung: Blöcke, eine Art "for-schleife" für Templates

<HTML>
<HEAD>
<TITLE>Alle 18</TITLE>
</HEAD>
<BODY>
<TABLE BORDER="1">
<!-- BEGIN verein -->
<TR bgcolor="">
 <TD><B></B></TD>
 <TD></TD>
</TR>
<!-- END verein -->
</TABLE>
</BODY>
</HTML>

Der Anfang eines Blocks wird mit <!-- BEGIN blockname --> gekennzeichnet. Es folgt der Inhalt des Blocks. Abgeschlossen wird ein Block mit <!-- END blockname -->.
Was sofort auffält, wir benötigen nur drei Platzhalter , , , und nicht 54.

<?php
include('class_template.inc.php'); 

$tpl = new Template('template3.tpl.html'); 

$vereine = array('verein1''verein2''verein3'
                
'verein4''verein5''verein6'
                
'verein7''verein8''verein9'
                
'verein10''verein11''verein12'
                
'verein13''verein14''verein15'
                
'verein16''verein17''verein18',); 

$tplVerein $tpl->fetchBlock('verein'); 
for (
$i=0$i<count($vereine); $i++) 

    
$tplVerein->assign('bgcolor'$i%'#FFFFCC' '#FFFF99'); 
    
$tplVerein->assign('pos', ($i+1)); 
    
$tplVerein->assign('name'$vereine[$i]);     
    
$tpl->assign('verein'$tplVerein); 
    
$tplVerein->reset(); 

$tpl->out(); 
?>

Der PHP-Code ist durch den Einsatz von Blöcken ein wenig komplizierter geworden. Wirklich neu sind nur zwei Funktionen. Der Funktion fetchBlock() übergeben wir als Parameter den Namen unseres Blocks (hier: verein). Die Funktion fetchBlock() arbeitet nun wie folgt. Sie schneidet den kompletten Block aus der HTML-Datei aus, und ersetzt ihn durch einen Platzhalter, der dem Namen des Blocks entspricht.

($tpl)

<HTML>
<HEAD>
<TITLE>Alle 18</TITLE>
</HEAD>
<BODY>
<TABLE BORDER="1">

</TABLE>
</BODY>
</HTML>

Aus dem ausgeschnitten Block erzeugt die Funktion fetchBlock() ein neues Objekt der Klasse Template. Dieses neue Objekt speichern wir in der Variablen $tplVerein. Wir arbeiten im folgenden also mit zwei Objekten der Klasse Template. Mit der Variablen $tpl erhalten wir Zugriff auf das obige Template, in dem der Block bereits ausgeschnitten ist. Die Variable $tplVerein ermöglicht den Zugriff auf unseren Block, welcher mittlerweile zu einem eigenständigen Template geworden ist.

($tplVerein)

<TR bgcolor="">
 <TD><B></B></TD>
 <TD></TD>
</TR>

In der for-Schleife ersetzen wir nun in unserem zweiten Template die Platzhalter , und durch die entsprechenden Werte. Damit ist dieses Template fertig bearbeitet, und wird nun für den Platzhalter im ersten Template eingesetzt. Dies geschieht mit dem Befehl $tpl->assign('verein', $tplVerein); Wir können einem Platzhalter (hier: verein) also auch ein komplettes Template-Objekt zuweisen.

<?php
... 
$tplVerein $tpl->fetchBlock('verein'); 
for (
$i=0$i<count($vereine); $i++) 

    
$tplVerein->assign('bgcolor'$i%'#FFFFCC' '#FFFF99'); 
    
$tplVerein->assign('pos', ($i+1)); 
    
$tplVerein->assign('name'$vereine[$i]);     
    
$tpl->assign('verein'$tplVerein); 
    
$tplVerein->reset(); 

... 
?>

Danach führen wir noch ein reset() auf dem zweiten Template aus, damit dieses für den nächsten Schleifendurchlauf geleert wird.

Navigation -> Seitenanzahl : (2)

  «  1 2  
Kommentare zum Tutorial
Tutorial kommentieren
 
12.05.2009 21:47:47 Jetzt bemerke ich überhaupt, dass die Platzhalter hier gar nicht angezeigt werden... ...
12.05.2009 20:59:56 Ist soweit ein nettes, kleines Tutorial aber leider ist der Link zum angegebenen Templatesystem down ...

Alle Kommentare anzeigen ...
 
Über den Autor
stulgies@

stulgies@

Status
Premium Mitglied

Beruf
Unbekannt

Mitglied seit:
30.04.2009

letzte Aktivität
04.06.2009

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

Die RIGID-FLEX-Technologie

Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Neu | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni