Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/OOP] Prosta klasa szablonów - co do poprawy?
l0ud
post 10.03.2008, 15:00:02
Post #1





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Witam smile.gif Od jakiegoś czasu opracowuję sobie prostą klasę templatów, która wykorzystuję na swoich stronach. Na smarty jest dla mnie jeszcze za wcześnie, zresztą nie lubię takich wielkich 'krów' w małych projektach tongue.gif . Niestety w programowaniu obiektowym nie mam jeszcze żadnego doświadczenia, więc zapewne ta klasa wiele wspólngo z OOP nie ma... Tak więc proszę o ogólną koncepcję - jak to powinno być zbudowane właściwie, oraz ewentualne uwagi co poprawić/dorobić w klasie, bo aktualnie nie ma ona prawie żadnych możliwości... winksmiley.jpg

Kod nie mieścił się w poście:
http://77.88.178.156/priv/

Jakby ktoś chciał wypróbować, przykład zastosowania:
  1. <?php
  2. include('templates_class.php');
  3. $tpl = new templates('templates/','.tpl',1,2,0);
  4.  
  5. $data = array(array('Pierwszy element', 'drugie pole', 'cos innego'), array('Drugi element', 'cos innego', 'cos innego'));
  6.  
  7. $tpl->setvar('title','Spis elementów z tablicy');
  8.  
  9. for ($i=0; $i<count($data); $i++) {
  10. $tpl->setvar('data',$data[$i]);
  11. $tpl->to_buffer('rows','test','row');
  12. }
  13.  
  14. $tpl->display('test','index');
  15.  
  16. ?>


templates/test.tpl
  1. <!-- BEGIN index -->
  2. {#INC:#this/header}
  3. {#BUF:rows}
  4. <!-- END index -->
  5.  
  6. <!-- BEGIN header -->
  7. <h1>{#VAR:title}</h1>
  8. <!-- END header -->
  9.  
  10. <!-- BEGIN row -->
  11. <tr>
  12. <td>{#ARR:data.0}</td>
  13. <td>{#ARR:data.1}</td>
  14. <td>{#ARR:data.2}</td>
  15. </tr>
  16. <!-- END row -->


...wbrew pozorom tutaj nie ma żadnego cache, ta tablica tak nazwana jest tylko po to, żeby nie wczytywać jednego pliku 10 razy do takiego samego bloku smile.gif Brak instrukcji warunkowych i pętli bo... nie wiem jak to ma wyglądać? Przecież w końcu po to są szablony, żeby nie umieszczać logiki pomiędzy styl?

Tak więc proszę o uwagi i pozdrawiam

Dodałem link do kodu ze swojego serwera, bo ten wyżej jak widzę padł albo usunął kod...
http://77.88.178.156/priv/

btw, nie oczekuję nie wiem jakiej odpowiedzi, chociaż wskazówkę jak to zrobić poprawnie w OOP smile.gif

Ten post edytował l0ud 10.03.2008, 15:56:57


--------------------
XMPP: l0ud@chrome.pl
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:50