Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Klasa i smarty
Forum PHP.pl > Forum > Przedszkole
elldiablo
Witam,

Mam problem z clasami i smarty.

tworze prostą stronę www (wizytówkę) i chciałbym aby stron abyła w "miarę" poprawnie zakodowana.

chcę utworzyc klase która bedzie zwracała mi menu strony

wyysliłem cos takiego :

  1. class Menu {
  2.  
  3. public $_Menu = array (
  4. 'about' => array('O mnie'),
  5. 'offer' => array('Oferta'),
  6. 'works' => array('Moje prace'),
  7. 'contact' => array ('Formularz kontaktowy')
  8. );
  9.  
  10. public function _DisplayMenu() {
  11. foreach ($this->_Menu as $_Page => $_PageTitle) {
  12. for ( $i = 0; $i < count($_PageTitle); $i++ ) {
  13. echo '<br/><a href="index.php?'.$_Page.'">'.$_PageTitle[$i].'</a><br />';
  14. }
  15. }
  16. }
  17. }


teraz bym chciał aby menu wyswielane było w plikach smarty, wiec pojawil sie problem

zrobilem cos takiego

  1. $menu = new Menu;
  2. $smarty->assign('_DisplayMenu', $menu->_DisplayMenu());
  3. $smarty->display('index.tpl');


problem w tym że menu nie wyświetla sie w pliku smarty tylko w index.php

podejrzewam że musze cos zrobic jeszcze w clasie, tylko nie wiem co,

Prosze o pomoc
viking
Taka klasa żadnego sensu nie ma. Wyświetlaniem powinno zajmować się smarty a nie klasa. Poza tym nawet jeśli to dlaczego 2 różne pętle w środku?
nospor
oczywiscie to co napisal viking to wszystko prawda i ta klasa sensu nie ma.

Ja ci jednak napisze jaki zrobiles blad z tym wyswietlaniem:
Przeciez w metodzie _DisplayMenu() robisz teraz "echo " to logiczne ze od razu sie wyswietla co nie? przeciez echo sluzy do wyswietlania.... Jak chcesz by ta metoda zwracala tekst do wyswietlenia to ma zawierac "return" a nie "echo"

I miejze litosc i nie uzywaj _ na pcozatku kazdej metody czy zmiennej... Wiesz w ogole po co sie tego uzywa? Kiedys tego uzywano by odroznic metody/wlasciwosci prywatne od publicznych a ty walisz tym na oslep na lewo i prawo :/ A najlpiej poczytaj o standardzie PSR i stosuj sie do ogolnie przyjetego nazewnictwa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.