Grafikai tervezés - Webdesign - Honlapkészítés | Websablon | Wordpress
Sablon motor
Kategóriák : PHP
• Egyszerű sablon motor PHP-banAz á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>