Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wlasna klasa do szablonow
Forum PHP.pl > Forum > Przedszkole
KSKiller
Probuje ostatnio stworzyc wlasna klase do obslugi szablonow (nie ma to byc nic skomplikowanego).
wyszperalem gdzies taki kod
  1. <?php
  2.  
  3. class szablon
  4. {
  5. var $plik_szablonu;
  6. var $dane;
  7.  
  8. function laduj($plik)
  9. {
  10. if(file_exists($plik))
  11. {
  12. $this->plik_szablonu=implode('',file($plik));
  13. }
  14. }
  15.  
  16. function dodaj($nazwa,$wartosc='')
  17. {
  18. if(is_array($nazwa))
  19. {
  20. $this->dane=array_merge($this->dane,$nazwa);
  21. }
  22. elseif(!empty($wartosc))
  23. {
  24. $this->dane[$nazwa]=$wartosc;
  25. }
  26. }
  27.  
  28. function pokaz()
  29. {
  30. return preg_replace(&#092;"/{([^}]+)}/e\",$this->dane[\"1\"],$this->plik_szablonu);
  31. }
  32. }
  33.  
  34. ?>

ale niestety gdy probuje sie do niego odwolac np poprzez skrypcik w stylu
  1. <?php
  2. require(&#092;"szablon.php\");
  3. $szab= new szablon;
  4. $szab->laduj(&#092;"szablon.tpl\");
  5. $szab->dodaj(&#092;"tresc\",\"cokolwiek buyleby zadzialalo\");
  6. echo $szab->pokaz();
  7. ?>

gdzie szablon.php to kod z klasa a szablon.tpl to po prostu
  1. {tresc}

to nie wyswietla mi sie nic. Wnioskuje z tego ze funkcja preg_replace dobrze dziala jesli chodzi o wyszukiwanie w kodzie bloku {tresc} ale juz nie potrafi go odpowiednio zastapic, jednak nie wiem jak to poprawic... Bylbym wdzieczny za wszelka pomoc
bela
  1. <?php
  2. var_dump($szab);
  3. ?>


wstaw to na koniec kodu i zobacz co wywala winksmiley.jpg
KSKiller
No tak... ale to dalej nie dostarcza mi pomyslu na poprawe tego kodu niestety (nie jestem zbyt dobry w php wiec raczej trudno mi jest pewne rzeczy zrealizowac...)
domyslam sie jedynie ze cos z tym dane["1"] powinno byc inaczej ale czy to na pewno to i ewentualnie jak to zmienic to juz nie wiem :/

Czy ktos moze mi jakos pomoc?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.