Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Szablon - czy i jak?
janusz.master
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 20.05.2007

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


Witam
Problem mam z technika stosowania szablonow(w czystym php).
Mam mala strone strasznie zle napisana, chcialem sie wziac i zrobic w miare porzadnie i ladnie.
Pisze(bynajmniej staram się (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) ) obiektowo. Warstwa bazy danych i ustalania informacji jakos mi idzie, gorzej z przejsciem do wygladu.

Szablony (jesli tak to mozna nazwac) polegaja u mnie na zwyklym dolaczaniu plikow z wygladem strony po zebraniu i ustaleniu informacji.
W index.php mam switcha dla zmiennej okreslajacej podstrone. Po tym switchu mam juz dane.

I teraz wlasnie nie wiem jak to ma wygladac: czy mam miec tez takiego switcha w szablonie i w zaleznosci od podstrony includowac inne podszablony?

Czy moze np. miec klasy np. NewsView które zwracaja kod HTML który zapisuję sobie do zmiennej $tresc np. newsy($tablicaNewsow), cos takiego (jest duzo bledow pewnie w kodzie, ale tym sie nie przejmujcie):
  1. <?php
  2. // index.php:
  3. switch($cat){
  4. case: 'news':
  5. $lista = newsDAO::getNews(5);
  6. $tresc = newsView->view($lista);
  7.  
  8.  
  9. //index.tpl
  10. include('gora.tpl');
  11. echo $tresc;
  12. include('dol.tpl');
  13. ?>
  14.  
  15. // newsView.php
  16. class newsView extends zasobView {
  17. function view(zasob $news)
  18. {
  19. $napis = "Tytul: ".$news->title."<br/>";
  20. $napis .= "Tresc: ".$news->content."<br/>";
  21. if($this->admin) $napis .= "edytuj<br/>";
  22. $napis .= "<br/>";
  23. return $napis;
  24. }
  25.  
  26. function viewAll($newsy)
  27. {
  28. $napis = '';
  29. if(count($newsy) == 0) $napis .= "Brak aktualnosci<br/>";
  30. else {
  31. foreach ($newsy as $news) {
  32. $napis .= $this->view($news);
  33. }
  34. return $napis;
  35. }
  36. }
  37.  
  38. function viewNewsMore(news $news)
  39. {
  40. return $news->content;
  41. }
  42.  
  43. function form(news $news = NULL, $errors = NULL)
  44. {
  45. $napis = '';
  46. $napis .= "Formularz newsa";
  47. return $napis;
  48. }
  49. }

Bo jesli w szablonach wykonywalbym kod bez zadnych funkcji itp to gdybym chcial uzyc podobnego wyswietlania newsa dla admina to musialbym tworzyc osobny szablon w którym byloby prawie to samo.

Jak to ma wygladac?? Nie potrzeba mi strasznie zaawansowanych sposobow, bo strona az taka nie jest.

Ten post edytował janusz.master 24.06.2008, 17:30:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A z jakich szablonów chcesz korzystać bo to chyba trzeba ustalić najpierw.

Poczytaj sobie tu: O szablonach

może coś Ci się rozjaśni.

Ja wcześniej robiłam tak, że miałam specjalną klasę, która po skompletowaniu danych generowała mi kod html, który jedną instrukcją echo był wypluwany na stronę. Teraz bawię się szablonami Smarty i instrukcjami warunkowymi, które pozwalają mi stawiać 'podszablony' w niektórych sekcjach w zależności od danych. Też myślałam nad stworzeniem szablonu smarty dla każdej podstrony, ale większość rzeczy się powtarza, więc zdecydowałam się na dynamiczne dołączanie 'podszablonów'. Nie twierdzę, że to najlepsze rozwiązanie, ale mi pasi.

Ten post edytował JoShiMa 25.06.2008, 09:21:11
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: 11.10.2025 - 02:57