Schleifen in eigene Template-Engine einbauen - wie? :/

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schleifen in eigene Template-Engine einbauen - wie? :/

    Hallo Leute!

    Momentan benutze ich Smarty. Da ich nicht so viele Funktionen brauche, möchte ich nun meine eigene kleine Template-Engine schreiben - nichts großes!

    Funktionen:
    - Tags ersetzen
    - Schleifen

    Ich hab jetzt dieses Tutorial durch:
    http://www.codewalkers.com/c/a/Displ...System-in-PHP/

    Leider wird da nicht erklärt wie man Schleifen einbaut.
    Wie würdet ihr das Lösen?

    Hier der bisherige Code (Quelle: Tutorial):

    PHP-Code:
    // template.class.php

    class Page
    {
      var 
    $page;

      function 
    Page($template "template.html") {
        if (
    file_exists($template))
          
    $this->page join(""file($template));
        else
          die(
    "Template file $template not found.");
      }

      function 
    parse($file) {
        
    ob_start();
        include(
    $file);
        
    $buffer ob_get_contents();
        
    ob_end_clean();
        return 
    $buffer;
      }

      function 
    replace_tags($tags = array()) {
        if (
    sizeof($tags) > 0)
          foreach (
    $tags as $tag => $data) {
            
    $data = (file_exists($data)) ? $this->parse($data) : $data;
            
    $this->page eregi_replace("{" $tag "}"$data,
                          
    $this->page);
            }
        else
          die(
    "No tags designated for replacement.");
      }

      function 
    output() {
        echo 
    $this->page;
      }

    PHP-Code:
    // test.php

    require_once("template.class.php");

    $page = new Page("template.htm");

    $page->replace_tags(array(
      
    "title" => "HOME",
      
    "descript" => "Welcome to my website!",
      
    "main" => "dat/index.dat",
      
    "menu" => "dat/menu.dat",
      
    "left" => "dat/submenu.dat",
      
    "right" => "dat/right.dat",
      
    "footer" => "dat/footer.php"
    ));

    $page->output(); 
    Code:
    // template.htm
    <html>
      <head>
        <title>{title}</title>
        <meta http-equiv="Content-Type" 
              content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" href="css/mystyles.css" 
              type="text/css" />
      </head>
      <body>
        <div id="banner">
          <img src="images/logo.png" alt="Main Logo" />
          <div id="menubar">
            {menu}
          </div>
        </div>
        <div id="leftcol">
          {left}
        </div>
        <div id="rightcol">
          {right}
        </div>
        <div id="main">
    
          {main}
        </div>
        <div id="footer">
          {footer}
        </div>
      </body>
    </html>
    Danke!
    Lasst euch nicht lumpen, hoch den Humpen!

  • #2
    Zum Thema schleifen in Templates (auch verschachtet) haben wir eigentlich schon einige Themen. Da solltest du so manchen Ansatz inden...

    Kommentar

    Lädt...
    X