Um einen ersten Eindruck von PHPTAL zu gewinnen, hier ein einfaches Beispiel statt vieler Worte.
Ihre Vorlage ist ein gültiges XML-/HTML-Dokument (samt Wurzelelement). Die Datei nennen wir my_template_file.xhtml
:
<?xml version="1.0"?>
<html>
<head>
<title tal:content="title">
Platz für den Seitentitel
</title>
</head>
<body>
<h1 tal:content="title">Beispieltitel</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Telefonnummer</th>
</tr>
</thead>
<tbody>
<tr tal:repeat="person people">
<td tal:content="person/name">Name der Person</td>
<td tal:content="person/phone">Telefonnummer der Person</td>
</tr>
<tr tal:replace="">
<td>Beispielname</td>
<td>Beispielnummer</td>
</tr>
<tr tal:replace="">
<td>Beispielname</td>
<td>Beispielnummer</td>
</tr>
</tbody>
</table>
</body>
</html>
In php müssen Sie lediglich die PHPTAL-Bibliothek einbinden und eventuell eine Variable anpassen, um ihre Vorlage zu individualisieren.
<?php
require_once 'PHPTAL.php';
// create a new template object
$template = new PHPTAL('my_template_file.xhtml');
// the Person class
class Person {
public $name;
public $phone;
function Person($name, $phone) {
$this->name = $name;
$this->phone = $phone;
}
}
// let's create an array of objects for test purpose
$people = array();
$people[] = new Person("bla", "0162/4578930");
$people[] = new Person("blabla", "0714/87629");
$people[] = new Person("blubb", "0102/6637912");
$people[] = new Person("blablubb", "0190/123456");
// put some data into the template context
$template->title = 'Der Titeltext';
$template->people = $people;
// execute the template
try {
echo $template->execute();
}
catch (Exception $e){
echo $e;
}
?>
Wenn sie das PHP Script ausführen, werden sie etwas ähnlich dem Folgenden erhalten.
<?xml version="1.0"?>
<html>
<head>
<title>Der Titeltext</title>
</head>
<body>
<h1>Der Titeltext</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Telefonnummer</th>
</tr>
</thead>
<tbody>
<tr>
<td>bla</td>
<td>0162/4578930</td>
</tr><tr> <td>blabla</td>
<td>0714/87629</td>
</tr><tr> <td>blubb</td>
<td>0102/663791</td>
</tr><tr> <td>blablubb</td>
<td>0190/123456</td>
</tr>
</tbody>
</table>
</body>
</html>
PHPTAL schert sich nicht besonders um Zeilenumbrüche und Einrückungen in den Dateien, die es liest bzw. erzeugt. Möchten Sie, dass der erzeugte HTML-Code hübsch wird, d.h mit Zeilenumbrüchen und perfekten Einrückungen, müssen Sie ihn eventuell mit HTML-Tidy nachbearbeiten.