Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] Własna klasa do obsługi prostych szablonów
shinuexx
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 9
Dołączył: 2.02.2011
Skąd: undefined

Ostrzeżenie: (0%)
-----


Witam ponownie.
Tym razem chciałem przedstawić tak dość szybko stworzoną klasę do obsługi prostych szablonów. Wiem że istnieje wiele podobnych klas chociażby Smarty, ale do projektu nie potrzebowałem wkładać coś tak dużego. Stąd pomysł na własną klasę.
Template.class.php

Sposób użycia na pliku "./newka/test.phar" z zawartością:
Kod
{{imie}} jak się miewasz??
to co lubisz to:
{lista}
    {{lista_element}} sztuk {{lista_ilosc}}
{/lista}


php:
  1. $t=new Template("newka","./","",".phar");
  2. $a=array(
  3. array("element"=>"deska","ilosc"=>10),
  4. array("element"=>"krzesło","ilosc"=>2),
  5. array("element"=>"stół","ilosc"=>1),
  6. array("element"=>"igła","ilosc"=>23),
  7. );
  8. try{
  9. $t->setFile("test")
  10. ->setVar("imie","Kevin")
  11. ->loop("lista",$a,"lista_")
  12. ->show();
  13. }
  14. catch(Exception $e){
  15. echo $e;
  16. }


Wynik:
Kod
Kevin jak się miewasz??
to co lubisz to:
    deska sztuk 10
    krzesło sztuk 2
    stół sztuk 1
    igła sztuk 23


Ogólnie rzecz ujmując klasa podmienia tylko to co chcemy by podmieniła. Zmienne podajemy w postaci
Kod
{{nazwa_zmiennej}}

a pętle:
Kod
{petla}
zawartosc petli {{prefix_nazwa_zmiennej}} tak samo jak w tablicy przekazywanej jako argument
{/petla}


Gdyby jakieś pytania, postaram się odpowiedzieć na bieżąco:)

Ten post edytował shinuexx 13.03.2012, 00:54:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


1. Co to jest w konstruktorze "styledir" ? Rozumiem podajemy tam ścieżkę do .css ?

2.
  1. public function setFile($name){
  2. if(!file_exists($this->_styledir.$this->_style."/".$this->_prefix.$name.$this->_ext)){
  3. throw new Exception("File ".$this->_styledir.$this->_style."/".$this->_prefix.$name.$this->_ext." doesn't exist");
  4. }
  5. $this->_file=$name;
  6. $this->_lock=false;
  7. $this->_content=file_get_contents($this->_styledir.$this->_style."/".$this->_prefix.$name.$this->_ext);
  8. return $this;
  9. }


A nie prościej raz zapisać tą nazwę do zmiennej i podawać zmienną zamiast ciągle łączyć ?

3. show() nie powinno printować a zwracać moim zdaniem, choćby dlatego że ktoś by chciał połączyć to z cache (btw. Ty powinieneś to zrobić)


Ogólnie nic specjalnego, nie można nawet includować plików z tego co widziałem.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 15:50