Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa template
deniol13
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


witam, jestem w trakcie robienia prostej klasy styli (coś jak 1/100000 z smarty)

mam cuś takiego
  1. <?php
  2.  
  3. class phpc_Template
  4. {
  5. public $template_file = array(); //Tutaj trafia niezmodyfikowana zawartosc pliku z stylem
  6. public $vars = array(); //Tutaj zapisywane sa 'zmienne' stylu
  7.  
  8. public function load( $file, $id )
  9. {
  10. //Sprawdzamy czy plik z stylem istnieje
  11. if( !file_exists( $file ) )
  12. {
  13. //plik nie istnieje, pokazujemy wiadomosc bledu
  14. die( '<b>Critical error</b> : template file ' . $file . ' does not exist' );
  15. }
  16. else
  17. {
  18. //plik istnieje
  19. $this->template_file[$id] = file_get_contents( $file ); //Wczytujemy zawartosc pliku i wrzucamy do tablicy
  20. }
  21. }
  22.  
  23. public function set_var( $var, $content, $for_id )
  24. {
  25. $this->vars[$for_id][$var] .= $content; // Dodajemy zmienna stylu do tablicy
  26. }
  27.  
  28. public function display( $id )
  29. {
  30. foreach( $this->vars[$id] AS $var => $content )
  31. {
  32. $this->template_file[$id] = str_replace( '{' . $id . '.' . $var . '}', $content, $this->template_file[$id] );
  33. }
  34.  
  35. //Pokazujemy zmodyfikowany plik stylu
  36. return $this->template_file[$id];
  37. }
  38. }
  39.  
  40. $c = new phpc_Template;
  41. $c->load('test.html', 'test');
  42. $c->set_var( 'TEST', 'test', 'test' );
  43. echo $c->displat('test');
  44.  
  45. ?>


Wszystko jest ok, i w pliku stylu wpisuje <a href="{TEST}">{TEST}</a>
I jest ok a ja bym chcial cos takiego aby to <a href="{TEST}">{TEST}</a> wykonalo sie kilka razy czyli bym musial zrobic pętlę oraz jakąś funkcję która pobierze pętle według wzoru

{LOOP[ID]}
Jakis kod html i {TEST}
{/LOOP[ID]}

Ale nie mam pojecia jak to zrobic
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 03:45