ďťż
Podstrony
|
telcocafeWitam :) Napisałem sobie ot tak małą klasę do obsługi szablonów. Oto ona:class Template { var $plik, $show, $skin = 'default'; // konstruktor ze sciezka do szablonu function Template($plik) { $this->plik = @file('templates/'.$this->skin.'/'.$plik.'.php'); } // parsowanie function show() { for($i = 0; $i < count($this->plik); $i++) { $this->plik[$i] = str_replace('{COS TAM}','lol lol lol',$this->plik[$i]); echo $this->plik[$i]; } } } użycie: $tpl = new Template('index'); $tpl->show(); // wyświetli zawartość pliku templates/default/index.php Klasa oczywiście będzie rozbudowana bardziej, to taki kodzik podstawy. I tutaj mam problem. Co zrobić, aby można było umieszczać w plikach szablonowych skrypty php? Tj. jak wpiszę w przykładkowym pliku spod adresu templates/default/index.php: <?php echo '<b>HAHAHA</b>'; ?> to wyświetli: <b>HAHAHA</b>, a nie <?php echo '<b>HAHAHA</b>'; ?>? Chyba wiecie o co mi chodzi? Z góry thx za odpowiedzi ;) Użytkownik Coldpeer edytował ten post 31 marzec 2006, 19:08 zapisuj w plikach html :P Możesz w pętli wyszukać wszystkie ciągi "<?php ... ?>" itp. a następnie zamienić je na wynik funkcji eval :) http://pl.php.net/ma...tmlentities.php Użytkownik bikstopa edytował ten post 31 marzec 2006, 22:01 zapisuj w plikach html i co to ma niby dać? :huh: http://pl.php.net/ma...tmlentities.php ... Hmm... Coś kombinuję, ale... nie wychodzi mi... ;] Może ktoś napisac jak to zrobić bo próbuję już różnymi sposobami? Ale wy macie straszne problemy... class Template {  var $plik,    $show,    $skin = 'default';  // konstruktor ze sciezka do szablonu  function Template($plik) {   $this->plik = @file_get_contents('templates/'.$this->skin.'/'.$plik.'.php' );  }  // parsowanie  function show() {    $this->plik = str_replace('{COS TAM}','lol lol lol',$this->plik);    eval('?>'.$this->plik.'<?');   }  } } ? Dzięki, działa wszystko :) //edit: mam jeszcze problem mały inny. Gdy zaincluduję w pliku z szablonem plik tresc.php o np. takiej tresci: <?php $show = strip_tags($_GET['show']); if(!empty($show)) { if(@is_file("$show.php")) @include "$show.php"; else echo '404'; } else @include 'main.php'; ?> Dostaję komunikat: Warning: include(tresc.php) [function.include]: failed to open stream: No such file or directory in C:\...\template.php(31) : eval()'d code on line 68 Warning: include() [function.include]: Failed opening 'tresc.php' for inclusion (include_path='.;C:\php5\pear') in C:\...\template.php(31) : eval()'d code on line 68 Gdzie 31 linijka template.php to: eval('?>'.$tekst.'<?'); A 68 linijka pliku z szablonem to oczywiście: <?php include('tresc.php'); Wiecie jak rozwiązać ten problem? :rolleyes: Użytkownik Coldpeer edytował ten post 01 kwiecień 2006, 00:13 |
|||
Sitedesign by AltusUmbrae. |