Kann man die Klasse nicht irgendwie ändern, das auch mehrere Operatoren funktionieren?
Nein, dass ist nicht Sinn der Sache.
Komplizierte IF-Strukturen dürfen nach der Philosophie gar nicht im Template gemacht werden. Diese müssen immer im PHP-Code gemacht werden.
Siehe das
Beispiel für Sister_Sourcecode, wo man schön sehen kann, wie man die IF-Strukturen in PHP bildet und dann ans Template übergibt.
Das Gleiche gilt für DB-Abfragen:
SELECT author_name, IFauthor_name = ClausVB, 1, 0 AS boolean
FROM vlib_posts
Alles was man nicht mit SQL hinbekommt, macht man in PHP, aber auf keinem Fall im Template.
Template Engines sind dazu da, um PHP (Logik) von HTML (Design) zu trennen und nicht die Logik in das Template zu integrieren.
Sonst kann man direkt Konstrukte wie:
main.php
?php
// Logik
title_text = TITLE Template Engine mal anders ...;
body_text = BODY Hallo Welt;
test_array = array
eins = 1,
zwei = 2,
drei = 3,
siebzehn = 17
;
require_once templates_nur_mit_php_head.php;
require_once templates_nur_mit_php_body.php;
?
Template 1: templates_nur_mit_php_head.php
[!--html--][div class='htmltop']HTML[/div][div class='htmlmain'][!--html1--]<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<
html>
<
head>
<
title><
?=title_text?><
/title>
<
meta http-equiv="
content-type" content="
text/html; charset=iso-8859-1" />
<
/head>[!--html2--][/div][!--html3--]
Template 2: templates_nur_mit_php_body.php
[!--html--][div class='htmltop']HTML[/div][div class='htmlmain'][!--html1--]<
body>
<
h1><
?=body_text?><
/h1>
<? foreachtest_array as key => value ?>
<
p>Schlüssel <
?=key?> -- Wert <
?=value?><
/p>
<
? endforeach; ?>
<
/body>
<
/html>[!--html2--][/div][!--html3--]
verwenden. Damit hat man dann nämlich die gesamte PHP-Macht.
Gruß
Claus