Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Szablon w szablonie
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Chciałbym zrobić tak :
- mam sablon strony głównej w której przechowuję szkielet strony (divy i kolumny - jako główny widok).W szablonie tym zawartość każdego diva to zmienna (do której przesyłamy dane jak w szablonach).Tymi zmiennymi miały by być inne szablony (tworzone przez new Smarty).

Czy jest to możliwe do zrealizowania ? Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




url=http://www.martinfowler.com/eaaCatalog/twoStepView.html]http://www.martinfowler.com/eaaCatalog/twoStepView.html[/url]
Już kiedyś pisałem : >

1. Część pierwsza (logiczna) - strona www z układem logicznym elementów (np. menu, newsy, logo)
2. Część druga - mały widok, czyli pojednyńcza instancja smarty w twoim przypadku (albo jakoś tak - zależy od implementacji)

hello.tpl
  1. Hello {$user}


układ.tpl
  1. <html>
  2. <head></head>
  3. <body>
  4. <div>
  5. <?php $view->get('hello'); ?>
  6. </div>
  7. </body>
  8. </html>


// funckja w jakiejśc klasie view - uproszczona implementacja, bo nie wiem jak to dokładnie jest w smarty
  1. <?php
  2. function get($view){
  3. $obj=new Smarty();
  4. $obj->assign();
  5. $obj->display();
  6. }
  7. ?>


plusy:
+ Eleminuje konieczność zmian w wielu plikach, gdy dokonujemy zmiany w obrębie jednego templata.
+ Łatwość implementacji z wieloma silnikami (smarty, opt itp.), bo wystarczą odpowiednie wersje metody get() - dla każdego systemu szablonów jedna.

minusy:
- Wymaga to nieco pracy np. nad stworzenem klas kolekcji przechowujących dane, nazwy widoków.
- Nie jest oryginalnie przeznaczony (wzorzec) do stron www (z ajaxem jest już lepiej)

Ten post edytował Cysiaczek 6.06.2007, 08:05:09
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: 5.10.2025 - 22:55