Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa styli
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
xxdrago
Witam, szukam czegoś takiego , że można dzielić pliki na php i html ja to nazywam "klasą styli" coś ala smarty smile.gif
askone
Rozumiem, że masz na myśli wzorzec MVC - oddzielne pliki logiki, widoku i dostępu do danych? Jeśli tak to polecam framework Kohana

Pozdrawiam
skowron-line
Cytat(xxdrago @ 13.01.2012, 11:42:17 ) *
coś ala smarty smile.gif


Smarty to system szablonów, ale jeżeli szukasz czegoś podobnego to TWIG, albo to co kolega wyżej napisał.
Leihto
Proszę prosto z mojej strony smile.gif

  1. <?
  2. if(!DEFINED("IN_SITE"))
  3. {
  4. die("<b>Gierrary Hirr!</b>");
  5. }
  6. class Layout
  7. {
  8. public $pliczek;
  9. public function biuld_lay($plik, $tablica)
  10. {
  11. if(!file_exists("./tmp/".$plik.".html"))
  12. {
  13. die("<b>Brak wymaganych plikow</b>");
  14. }
  15. $this->pliczek = file_get_contents("./tmp/".$plik.".html");
  16. foreach ($tablica as $klucz=>$zmienna)
  17. {
  18. $this->pliczek = str_replace("{".$klucz."}", $zmienna, $this->pliczek);
  19. }
  20. return $this->pliczek;
  21. }
  22. public function __desctruct(){
  23. unset($this->pliczek);
  24. }
  25. }


Używanie:
Krok 1:
Includujemy klasę do pliku.
Funkcja :
  1. require_once("./template.class.php");


Krok 2:
Dodajemy do tablicy zmienną z tekstem, który ma zostać zamieniony i ciąg znaków z pliku .html który ma zostać zamieniony na odpowiednią zmienna.
  1. $dane = array(CiagZnakow=>$zmienna,); //Pierwsze to ciąg znaków do zamiany, a drugie to zmienna z tekstem na który ma być ciąg znaków zamieniony


Krok 3:
Na końcu pliku otwieramy nowy szablon:
  1. $szablon = new Layout();

oraz dodajemy w echu (może to być też print) naszą tablice i nazwę pliku, którym ma zostać zamieniony tekst:
  1. echo $szablon->biuld_lay("index", $dane); //Pierwsze to nazwa pliku (bez .html), a drugie to tablica z danymi


Krok 4:
Tworzymy plik .html który musimy zapisać do folderu tmp.
Przykładowa treść tego pliku może wyglądać tak:
  1. {CiagZnakow}


Po otworzeniu naszego skryptu na serwerze "{CiagZnakow}" powinno zostać zamienione na tekst z naszej zmiennej.

Oczywiście na początku trzeba do pliku php dodać
  1. define("IN_SITE", true);
bo działać nie będzie :]
xxdrago
Leihto, o takie coś mi chodzi masz może jeszcze coś takiego dla:


  1. <!--Beginxxx-->
  2. Wiadomość
  3. <!--Endxxx-->
erix
Cytat
  1. $this->pliczek = str_replace("{".$klucz."}", $zmienna, $this->pliczek);

Gratuluję oszczędzania pamięci serwera.
xxdrago
Leihto, twoja klasa była by ok, ale nie jest optymalna...
Może być coś takiego jak to: http://www.programuj.com/artykuly/www/template.php lub coś podobnego tylko , że bardziej rozbudowane...

Jak by ktoś miał to niech napisze tutaj albo na PW.
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-2024 Invision Power Services, Inc.