Autor | Zpráva | ||
---|---|---|---|
Marek(cz) Profil * |
#1 · Zasláno: 10. 4. 2005, 18:10:44
Nevíte, kde mám chybu? Jsem už uplně zoufalý!
class_template.php: <?php class CTemplate { var $template_name; var $template_dir = './templates/'; var $content; var $assign = array(); function CTemplate($template_name) { // Zjistíme, zda existuje soubor s šablonou if(file_exists($this->template_dir.'/'.$template_name)) { $this->template_name = $template_name; }else{ echo 'Zadaný soubor '.$template_name.' nebyl nalezen !'; exit; } // Načteme soubor do proměnné $open_file = fopen($this->template_dir.'/'.$this->template_name, 'r'); $this->content = fpassthru($open_file); } function parseTemplate() { foreach($this->assign as $key => $value) { $this->content = preg_replace($key,$value,$this->content); } echo $this->content; } function setAssign($name,$value) { $this->assign[$name] = $value; } function setTemplateDir($template_dir) { $this->template_dir = $template_dir; } } // Konec class ?> Index.php: <?php include 'class_templates.php'; $tpl = new CTemplate('sablona.tpl'); $tpl->setAssign('{title}','Titulek'); $tpl->setAssign('{body}','Body'); $tpl->parseTemplate(); ?> Sablona.tpl: <html> <head> <title>{title}</title> </head> <body>{body}</body> </html> A vypíše to: {body} |
||
Marek(cz) Profil * |
#2 · Zasláno: 10. 4. 2005, 18:11:23
Teda, vypíše to {body}82
|
||
Kaifman Profil |
#3 · Zasláno: 10. 4. 2005, 21:31:42
chyba je v tomhle
$this->content = fpassthru($open_file); fpassthru totiž nevrací obsah souboru jako retezec do promené $this->content ale vypisuje obsah souboru rovnou na obrazovku místo fpassthru pouzij toto a mělo by to fungovat $this->content = fread ($open_file, filesize ($this->template_dir.'/'.$this->template_name) ); |
||
Marek(cz) Profil * |
#4 · Zasláno: 10. 4. 2005, 22:36:08
Jsem vůl, no :)
Ted mi to zas píše výstup jako: <html> <head> <Titulek>{Titulek}</Titulek> </head> <Body>{Body}</Body> </html> :-))))) |
||
Marek(cz) Profil * |
#5 · Zasláno: 10. 4. 2005, 22:38:05
Tak už jsem to opravil!!! Díky moc.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0