Quellcode für Beispiel 2

« zurück zur Ausgabe

PHP-Code


<?php
require_once("pb-tpl.php");
$t = new pb_tpl("templates/test2.tpl");

// Einzelne Felder im Template können am übersichtlichsten
// im Associativen Array ersetzt werden.
$sere = array (
   "text1" => "Dies ist Text 1",
   "text2" => "Dies ist Text 2",
   "text3" => "Dies ist Text 3",
   "text4" => "Dies ist Text 4");

//Erhält man Werte z.B. aus einer Datenbankabfrage in einem
//Assoziativen Array, kann man die z.B. in einem Assoziativen Array
//entgegennehmen.
$row=array(
           array("a" => "Bayern", "b"=>"Bremen"),
      array("a" => "Schalke",   "b"=>"Duisburg")
);
//Dieses zweidimensionale Array kann komplett mit der Methode
// fill_rowtpl() verarbeitet werden.
// Dabei wird das Template, in diesem Fall "test_row", Zeile
// für Zeile mit den aktuellen Werten gefüllt, bis das Ende erreicht ist.
// Die fertigen Zeilen werden automatisch verknüpft und können dann in
// das Main-Array geschrieben werden.
$sere["test_rows"] = $t->fill_rowtpl("test_row", $row);

// Für solche Aufgaben ist auch die Übergabe über zwei Arrays möglich.
// Namenliste:
$s=array('name', 'vorname');
$r=array(
           array('Brecht', 'Bertolt'),
           array('Grimm', 'Jakob'),
           array('Heine', 'Heinrich'),
           array('Grass', 'Günter'),
           array('Lenz', 'Siegfried')
         );
$sere["deflist"] = $t->fill_rowtpl("def_list", $s, $r);

echo $t->fill_tpl("main", $sere);

?>


HTML-Template


# Haupttemplate
# Die Reihenfolge der Templates ist im Prinzip egal, da sie in ein assoziatives Array
# eingelesen werden.
# Die Beziehung der Templates zueinander (Inneres und Äußeres) kann durch Kommentare
# kenntlich gemacht werden, wird aber nur im PHP-Skript hergestellt.
# Dem Programmierer muss also der Sinn der Templates und die Namen der Platzhalter
# bekannt sein.
# Programmiert wird lediglich über das Skript, nicht über das Template.

[main]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Beispiel 2</title>
<link rel="stylesheet" href="pb-tpl.css" type="text/css">
</head>
<body>
<h1>Beispiel 2</h1>
<h3>Hier folgen zunächst einfache Ersetzungen</h3>
 <p>Dies ist Text 1: {TEXT1} </p>
 <p>Dies ist Text 2: {TEXT2} </p>
 <p>Dies ist Text 3: {TEXT3} </p>
 <p>Dies ist Text 4: {TEXT4} </p>

<h3>Einfach Auflistung mit Wertpaaren</h3>
{TEST_ROWS}

<h3>Definitionsliste</h3>
<dl>
{DEFLIST}
</dl>
<hr>
<p><a href="test1.php">zurück</a> | <a href="index.html">Index</a> | <a href="tabelle1.php">weiter</a> </p>

</body>
</html>

############## Ende des Haupttemplates ###############################

#### Der Inhalt von TEST_ROWS ##########
[test_row]
<p><b>{A}</b> spielt gegen <b>{B}</b></p>

#### Der Inhalt von DEFLIST ##########
[def_list]
<dt><b>{NAME}</b></dt><dd>{VORNAME}</dd>

« zurück zur Ausgabe