Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty i wyświetlanie klas
Maslav
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 6.02.2004

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


Postaram się nie pokręcić czegoś,więc będę pisał powolij.

Ze Smarty jestem już całkiem nieźle obyty, tylko że dotychczas pisałem wszystko proceduralnie. Niedawno zacząłem się zaznajamiać z OOP i na razie nie mam z samymi klasami problemu. Więc o co mi chodzi? Mianowicie, dotychczas jeśli chciałem wyświetlić newsa i komentarze do niego to robiłem tak (kod oczywiście przykładowy):

  1. <?
  2. $smarty->register_function("ShowNews", "shownews");
  3. function shownews() { $kod; }
  4. $smarty->register_function("ShowComm", "showcomm");
  5. function showcomm() { $kod;}
  6. if($cmd == "news") { $smarty->display('news.tpl'); } 
  7. ?>


  1. //news.tpl
  2. <div>{ShowNews}</div>
  3. <div>{ShowComm}</div>


Może nie jest to modelowe rozwiązanie ale się do niego przyzwyczaiłem. Dzięki temu mogę sobie wstawiać funkcje za pomocą Smarty do html'a gdzie chcę.

I teraz nadchodzi problem/właściwe zagadnienie. Narazie nie udało mi się rozgryźć podobnego rozwiązania jeśli idzie o wykożystanie klas.

Pierwsze moje rozwiązanie wyglądało tak;

  1. <?php
  2. $smarty->register_function("News", "news");
  3. function news() {
  4. include(newsclass.php);
  5.  $news = new News();
  6.  $news->showNews();
  7. }
  8. ?>


Oczywiście rozwiązanie nie jest zbyt fortunne bo nie poto tworzy się klasy żeby do każdą metodę odpowiedzialną za wyświetlanie czegoś pakować do funkcji. Drugie rozwiązanie też raczej złe :

  1. <?php
  2. $smarty->display(siteHeader.tpl);
  3. $news->showNews();
  4. $comm->showComm();
  5. $smarty->display(siteFooter.tpl);
  6. ?>


Tutaj teoretycznie to rozwiązanie mimo wad (rozwalenie indexu na dwie polowy) dalo by radę tylko w polowie. Bo gdybym chcial osadzić obydwie metody w osobnych divach tak jak w pierwszym przykładzie musiałbym nieziemsko kombinować w szablonach. Ale przeciez nie o to chodzi.

No i tutaj moja proźba, gyby ktoś mógł wskazać mi drogę która pewnie jest dość oczywista i prosta ale sam jakoś tego nie mogę wykombinować.

elo rap guitar.gif winksmiley.jpg

Ten post edytował Maslav 20.02.2006, 03:41:39


--------------------
generalfailure
fabrykadrobiu*dot*com
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: 19.08.2025 - 04:23