|
ulf-wendel.de   
|
|
 Home < PHP Schulung  < Templates  < PHPLib    |       |  
Print Version    
---
|
|
 Home 
 PHP Projekte 
 PHP Schulung 
    Informationsquellen 
    Geschichte 
    Core PHP 
    Fortgeschrittenes PHP 
    Templates 
       Was? 
       Motivation 
       Klassifizierung 
       Testvorlage 
       Keine Templates 
       PHPLib 
          HTML 
          E-Mail 
       IT[X] 
    Cache-Technologien 
    OOH Forms 
 Technik der Site 
 Büchertipps 
 Fotografie 
 Airbrush 
 Kontakt 
 Stuff 

Isotemplates

Das Templatesystem der PHPLib wurde von Kristian Köhntopp geschrieben. Es stammt von den aus der Perl-Welt stammenden und nach PHP portierten FastTemplates ab. Der Rewrite zeichnet sich durch eine bessere API und die Verwendung der schnellen preg_*-Funktionsgruppe aus.

"preg" steht für "Perl compatible regular expressions", einer der zwei Möglichkeiten mit Regulären Ausdrücken in PHP zu arbeiten. Die Template-Engine ist gut dokumentiert und bildet ein mächtiges, flexibles Werkzeug, sofern die API erst einmal verstanden wurde. Neben einfachen Ersetzungen kann die Klasse "Blöcke" handhaben, die wiederholt werden können. Die gesamte API ist auf Blöcke ausgelegt.

Platzhalter werrden in der Syntax der Template-Engine per Default von geschweiften Klammern umschlossen. Der Framework dieser Homepage verhindert leider die Darstellung, weshalb eckige Klammern gewählt wurden. Eine Wechsel von geschweiften Klammern auf eckige Klammern zur Kennzeichnung ist durch eine einfache Anpassung der Template-Engine möglich und u.U. auch notwendig um Kollisionen mit Ausdrücken wie [font:sans-serif] zu verrhindern.

newsletter_phplib.txt
...
+++ News +++

<!-- BEGIN news -->
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]
<!-- END news -->
...
            

Sich wiederholende Elemente, wie <!-- LOOP:news --> des Beispiel newsletter.txt werden als sogenannte Blöcke abgelegt und in der Form <-- BEGIN blockname -->/<-- END blockname --> gekennzeichnet.

Im ersten Arbeitsschritt werden ein oder mehrere Template-Dateien als Blöcke geladen. Dies erfolgt mit der Methode setFile().

Liste von Blöcken   Liste von Handles   Wertepool
main
...
+++ News +++

<!-- BEGIN news -->
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]
<!-- END news -->
...
                  
 

Anschließend wird dem System die mitgeteilt, daß sich im Block "main" ein Block "news" befindet, der unter dem Handle "NEWS_ROWS" angesprochen wird. Die Schachtelung der Blöcke wird mit setBlock() beschrieben.

Liste von Blöcken   Liste von Handles   Wertepool
main
...
+++ News +++

[_NEWS_ROWS]
...
                  
news
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]

                  
 
NEWS_ROWS
 
 

In einer Schleife erfolgen mit setVar() Wertezuweisungen für einzelne Platzhalter. Es füllt sich ein Wertepool, welcher unter Anwendung der Methode parse() dem Inhalt des Handles NEWS hinzugefügt wird.

Liste von Blöcken   Liste von Handles   Wertepool
main
...
+++ News +++

[_NEWS_ROWS]
...
                  
news
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]

                  
 
NEWS_ROWS
 
 
HEADLINE  Flensburger Pilsener
ERSCHEINUNGSDATUM  1516
URL  http://www.flens.de

Liste von Blöcken   Liste von Handles   Wertepool
main
...
+++ News +++

[_NEWS_ROWS]
...
                  
news
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]

                  
 
NEWS_ROWS
Flensburger Filsener
1516, http://www.flens.de

 
 

Nach Abschluß der Schleifendurchläufe wird mittels parse() der Block "main" geparst und unter dem Handle "MAIN" bereitgestellt. Der parse()-Aufruf erkennt automatisch, daß der Inhalt des Handles "NEWS_ROWS" in den Block "main" einzufügen ist.

Liste von Blöcken   Liste von Handles   Wertepool
main
...
+++ News +++

[_NEWS_ROWS]
...
                  
news
[HEADLINE]
[ERSCHEINUNGSDATUM], [URL]

                  
 
NEWS_ROWS
Flensburger Filsener
1516, http://www.flens.de

1000 kostenlose Banner
2002, http://banner.netuse.de
                  
 
MAIN
...
+++ News +++
                  
Flensburger Filsener
1516, http://www.flens.de

1000 kostenlose Banner
2002, http://banner.netuse.de
...
                  
 
 

Der Inhalt des Handles "MAIN" wird abschließend mit der Methode p() ausgedruckt oder als String von der Methode get() zürückgeliefert und weiterverarbeitet.

<  ^  >

 Neues

 XML/XSLT Menu
 OOH-Form Rewrite

 PEAR Cache:
  SHM Container

 Suchstring Parser
 Buchrezensionen
 PEAR Cache:
  OutputCompression

 PEAR Menu Browser
 PEAR Menu Tutorial 
 PEAR Cache


 Tipp

Download Version:
oben rechts,
Download *.tar.gz
|
| --- |
|
  Top   |   <  ^  >   |   phpOpenTracker Statistik   |   URL: http://www.ulf-wendel.de/schulung/templates/phplib/index.php   |   Stand: 17.02.2002   |   © Ulf Wendel   
|
| --- |

0.016 s Bearbeitungszeit, 0.002 s IT[X], 0.003 s Menu 3