Problem z własnym systemem szablonów |
Problem z własnym systemem szablonów |
5.05.2009, 13:41:09
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 25.01.2009 Skąd: Łódź Ostrzeżenie: (0%) |
Witam!
Ostatnio uczyłm się programowania obiektowego. Teraz chciał zrobić coś własneg i zaczeło mi wychodzić coś jak system szablonów. Mam: index.php
Kontroler/index.php
Widok/index.php
I teraz w czym problem... Wyświetla mi się strona, ale tylko ze znaczkami HTML z Widok/index.php, a nie ma w nim danych z Kontroler/index.php. Gdy zamiast $strona -> plik('index.php'); użyje funkcji include to działa dobrze, ale ja zamiast include chce mieć jakąś funkcję. -------------------- |
|
|
5.05.2009, 14:10:25
Post
#2
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) |
W widok/index.php zmień nazwę zmiennej $strona na $this i ustaw sobie jeszcze error_reporting na E_ALL
|
|
|
5.05.2009, 14:24:40
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 25.01.2009 Skąd: Łódź Ostrzeżenie: (0%) |
Dzięki, teraz działa!
-------------------- |
|
|
5.05.2009, 14:59:46
Post
#4
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 30 Dołączył: 5.05.2007 Skąd: Mannheim Ostrzeżenie: (0%) |
Witam !
Sprobuj moze troche innego rozwiazania Kod <? class strona { public $template_vars = array(); public function wpisz($vars) { if (is_string($vars)) { $this->template_vars[$vars] = @func_get_arg(1); } elseif (is_array($vars)) { foreach ($vars as $key => $val) { $this->template_vars[$key] = $val; } } } public function plik($jaki) { ob_start(); include('Widok/'.$jaki); $res = ob_get_clean(); return $res; } public function __get($a){ return $this->template_vars[$a]; } public function __set($nazwa, $wartosc){ $this->template_vars[nazwa] = $wartosc; } } $strona = new strona(); //przypisujesz zmienne $strona -> wpisz('nazwa','Moja strona'); $strona -> wpisz('tekst','Przykladowy tekst'); $strona->test = "jakis tekst"; //albo $vars = array('nazwa'=>'Moja strona','tekst'=>'Przykladowy tekst','test'=>'jakis tekst'); $strona -> wpisz($vars); echo $strona -> plik('index.php'); ?> <html> <head> <title><?php echo $this->nazwa; ?></title> </head> <body> <i><?php echo $this->tekst; ?></i> <i><?php echo $this->test; ?></i> <br /> </body> </html> Jest to typowe rozwiazanie systemiku templatow ( Serce Zend_Views bazuje na takim rozwizaniu ) . Pozwoli Ci to na troche wieksza elastycznosc . Pozdrawiam -------------------- Flash Flex PHP JAVA RED5 http://www.easyweb24.net
|
|
|
5.05.2009, 18:13:23
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 25.01.2009 Skąd: Łódź Ostrzeżenie: (0%) |
Dzięki za inne rozwiązanie, ale ja tylko zrobiłem to do lepszego poznania PHP.
Jak będę potrzebował to napewno skorzystam... -------------------- |
|
|
5.05.2009, 21:33:44
Post
#6
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 17 Dołączył: 8.11.2008 Skąd: Libiąż Ostrzeżenie: (0%) |
W takim wypadku lepiej skorzystać z gotowych systemów szablonów, bo przynajmniej wiesz, że są sprawne i nie musisz siedzieć nad ich implementacją.
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 07:58 |