Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z szablonami
Forum PHP.pl > Forum > Przedszkole
ky3orr
witam!

skonstruowalem sobie szablon strony ktory podmienia zmienne typu ####ZMIENNA#### plikami o zadanych tresciach (wybor pliku jest rezlizowany poprzez switch i korzystanie z parametrow $_GET).

strona glowna ladowana takze do savlonu ma pole aktualizacja gdzie data ladowana ma byc z pliku.
niestety kod php nie przechodzi przez parser i caly trafia do przegladarki.

czy istnieje mozliwosc aby kod z ladowanej strony byl takze przetwazany?
co daje uzycie include?

pozdro4all
byther
Cytat(ky3orr @ 2004-10-26 14:44:31)
niestety kod php nie przechodzi przez parser i caly trafia do przegladarki.

Jeżeli korzystasz z funkcji typu file_get_contents(), to się nie dziw - wynikiem są dane, których parser php nie będzie przetwarzać składniowo. W przeciwnym wypadku korzystaj z funkcji include() lub zapoznaj się (ostrożnie...) z funkcją eval().

Cytat
czy istnieje mozliwosc aby kod z ladowanej strony byl takze przetwazany?

Stary, w końcu wszystko jest możliwe! Use your imagination (or take another red pill). cool.gif

Cytat
co daje uzycie include?

Dokumentacja funkcji jest upubliczniona pod adresem http://www.php.net/manual/en/function.include.php. biggrin.gif

Hint: Po co Ci szablony, skoro nadal miksujesz treść z php?
ky3orr
to proste!

szablon wykorzystuje po to by zaca stronke zgrabnie zlozyc "do qpy" smile.gif

gdy zmieni mi sie poglad na layout to zmienie szavlon i tyle.

zawartosc jest zalezna od klikanych linkow, ale ostateczny wygenerowany site jest przeciez okrelslony wlasnie przez szablon.

dzieki za info.

a moze skonstruowac index.php w taki sposob zeby nie ladowal szablonu i nie podmienial w nim zmiennych, tylko cala logika odpowiedzialna za wybor zawartosci niech wprost w tym index-ie includuje pliki w ramach tabeli (jak w szablonie). questionmark.gif

jaak Ty @byther skonstruowana masz strone (jesli uzywasz szablonow)?


pozdro4all
byther
Cytat(ky3orr @ 2004-10-27 10:23:15)
jaak Ty @byther skonstruowana masz strone (jesli uzywasz szablonow)?

Na przykład tak: http://forum.php.pl/index.php?showtopic=22138
Możesz też wykorzystać najprostszy FrontController:
  1. <?php
  2.  
  3. // plik index.php
  4. // np. APPDIR = /home/byther/public_html/
  5. define( 'APPDIR', dirname( __FILE__ ) . '/' );
  6.  
  7. // Podstrony
  8. $strony = array(
  9. 'index' => 'app/index.php',
  10. 'archiwum' => 'app/archiwum.php',
  11. 'galeria' => 'app/galeria.php',
  12. 'kontakt' => 'app/kontakt.php'
  13. );
  14.  
  15. // Domyślna strona
  16. $pageDefault = 'index';
  17.  
  18. // wybieramy żądaną stronę
  19. $reqPage = $_REQUEST['page'] ? $_REQUEST['page'] : $pageDefault;
  20. if( !isset( $strony[$reqPage] ) )
  21. {
  22. // możesz wysłać informację o \"braku strony\" (Error 404) lub inną akcję...
  23. echo &#092;"Żądana strona nie istnieje ($reqPage)\";
  24. exit();
  25. }
  26.  
  27. // Podstawowe dodatki
  28. require_once( 'smarty/Smarty.class.php' );
  29. require_once( APPDIR . 'lib/db/pgsql.php' );
  30.  
  31. // Inicjalizacja silników do szablonów i baz danych
  32. $tpl =& new Smarty;
  33. $db =& db::instance();
  34.  
  35. // Załadowanie strony
  36. include( APPDIR . $strony[$reqPage] );
  37.  
  38. ?>

Struktura katalogów/plików:
Kod
/home/byther/public_html:
/app/
     /index.php
     /archiwum.php
     /galeria.php
     /kontakt.php
/configs/ - konfiguracje dla Smarty'ego
/lib/ - interfejsy baz danych, parsery, inne cuda na patyku *
/templates/ - szablony dla Smarty'ego
/templates_c/ - skompilowane szablony
/index.php

Przykład pisałem "na żywca", więc weź poprawkę na ewentualne błędy. Możliwe też, że taki sposób tworzenia serwisu jest nieefektywny... Popytaj innych, może czyjąś propozycję architektury aplikacji uznasz za lepszą. smile.gif
ky3orr
sedreczna dzieka!

sprawa sie rozjasnila smile.gif

pozdro
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.