Templatesystem

Winbug
Hi there,

ich suche eine gutes Templatesystem.

Kann mir da einer was empfehlen!

Was halt gut wäre, wäre für Template einsteiger. Sprich einfach zu lernen.

Mfg Winbug großes Grinsen
neonator
da brauchst du eigentlich nur eine funktion, d.h. nichtmal das...
du musst es einfach verstehen und dann so anwenden wie es dir passt..

php:
1:
2:
3:
4:
5:
<?

$titel 'abc';
eval('echo "'.implode('',file('abc.html')).'";');
?>


abc.html
code:
1:
2:
3:
4:
5:
6:
7:
8:
<html>
 <head>
  <title>$titel</title>
 </head>
 <body>
   hallo 
 </body>
</html>
Winbug
Okay danke!

Mfg Winbug smile
vapor
Is aber sehr unschön Augenzwinkern

Am besten machste OOP in PHP Augenzwinkern
Hab mir damals ne eigene Klasse geschrieben, astrein.
Winbug
Und wie funktioniert das genau?

Mfg Winbug smile
neonator
für was brauchste ne klasse? wenn du nicht mehr als 2 funktionen drin hast ist es meiner meinung ein bisschen übertrieben, ne klasse.. je nach anwendung...
poste deine klasse mal, interessiert mich!
ThiefMaster
In früher angefangenen Projekten verwende ich auch noch eine Templateklasse die eval verwendet (allerdings mit einer Art einfachem Templatescripting drin).

In neueren Sachen verwende ich eine neue (selbstgeschriebene) Klasse, die die Templates direkt zu PHP-Code kompiliert.

Aus
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
{include tpl="header" title="Login"}
{if $invalidUser || $invalidPassword}
  <div class="error">
    Folgende Fehler sind aufgetreten:
    <ul>
      {if $invalidUser}
        <li>Login-Name existiert nicht</li>
      {/if}
      {if $invalidPassword}
        <li>Passwort falsch</li>
      {/if}
    </ul>
  </div>
{/if}
{include tpl="loginform"}
{include tpl="footer"}

wird z.B.:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php $this->includeTemplate('header', array('title' => 'Login')); ?>
<?php if($this->tplVars['invalidUser'] || $this->tplVars['invalidPassword']) { ?>
  <div class="error">
    Folgende Fehler sind aufgetreten:
    <ul>
      <?php if($this->tplVars['invalidUser']) { ?>
        <li>Login-Name existiert nicht</li>
      <?php ?>
      <?php if($this->tplVars['invalidPassword']) { ?>
        <li>Passwort falsch</li>
      <?php ?>
    </ul>
  </div>
<?php ?>
<?php $this->includeTemplate('loginform', array()); ?>
<?php $this->includeTemplate('footer', array()); ?>


Beim Aufruf wird das kompilierte Template dann einfach includet.
neonator
das ist eine interessante sache.. so hat es sinn, dass man eine klasse verwendet smile
willst du die klasse auch noch publizieren? wäre nett smile

gruss
jone
ThiefMaster
Mach ich evtl. irgendwann mal.
Sind ca. 30kb Code, also nicht gerade wenig Augenzwinkern