keszites.com

Grafikai tervezés  -  Webdesign  -  Honlapkészítés | Websablon | Wordpress



Sablon motor

Kategóriák : PHP

• Egyszerű sablon motor PHP-ban

Az általam készített sablon motor működése a következőképpen történik.
A ../templates/ könyvtárba kell elhelyezni a .tpl kiterjesztésű, a legalul megadott html forráskódot. Ezt a fájlt felolvassuk a memóriába és kicseréljük benne a %változó% értékeket, majd ezt egy echo utasítással kiíratjuk válaszként.

A program működését egy osztállyal oldottam meg. A sablonban elhelyezett változókat tömb deklarációkkal lehet felvenni.. Amint látható a template->assign_vars metódus szolgál erre a célra.

A template->eval_template metódus pedig kiértékeli a sablonban megadottakat úgy, hogy kicseréli a változókat a tömbben megadottakra és azt kiírja a kimenetre.


<?php

class C_template {

        var $data = array();
        var $loadedFile = "";

        function loadFile($filename)
        {
                $filename = './templates/'.$filename;
                $this->loadedFile = implode("", @file($filename));
        }
        
        function assign_var($varname, $varval)
        {
                $this->data[$varname] = $varval;
        }
        function assign_vars($vararray)
        {
                $this->data = array();
                reset ($vararray);
                while (list($key, $val) = each($vararray))
                {
                        $this->data[$key] = $val;
                }
        }
        function eval_template($echo = true) {
        
                $str = $this->loadedFile;
                while (list($key, $val) = each($this->data))
                {
                        $str = eregi_replace("%".$key."%", $val, $str);
                        
                }
                if ($echo) echo $str;
                
                return $str;
        }
}


$template = new C_template();


$template->loadFile('message.tpl');
$template->assign_vars(array(
                'NAME' => 'Nedved?',
                'TEXT' => 'Szövegezés',
                'URL1' => 'mess.php'));
$template->eval_template();

?>


<table>
<form method=post action=%URL1%>
<tr>
<td>Cím:   </td>
<td>
<input type=text name=to_name value="%NAME%" /></td>
</tr>
<tr>
<td>Szöveg:   </td>
<td>
<textarea name=to_text style="height:200; width:450px;" >%TEXT%</textarea></td>
</tr>
<tr><td><input type=submit value="Elküld!" /></td></tr>
</form></table>


Weblap kód Designer