Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty i zmienne obiektowe
Forum PHP.pl > Forum > PHP > Object-oriented programming
gaza
Witam.
Pytanie dotyczy zmiennych obiektowych w szablonach smarty.

Mam klase ktora tworzy system zakladek.
Nie ma problemu jezeli tworze te zakladki bezposrednio w skrypcie php.
  1. <?php
  2.  
  3. requre_once('klasy.inc');
  4.  
  5. $Zakladki = new Klasa_Zakladki();
  6. $Zakladki.dodaj(&#092;"nr\",\"Napis na zakladce\");
  7. $Zakladki.pokaz();
  8.  
  9. ?>

Dziala bez zarzutu. Niestety torche nieelegancko przy zastosowaniu Smarty.
W zwazku z tym mam pytanie w jaki sposob zrobic to w szablonie tpl.
W materialach ktore przegladalem jest to dosyc skapo opisane.
Tlumaczenie rzseattle.piwko.pl manuala tez niewiele mowi.

Moze ktos robil juz cos podobnego ?
zYm3N
3 razy czytałem i nie rozumiem o co chodzi w pytaniu.. możesz łopatologicznie ? :-)
Dzięki.
DeyV
  1. <?php
  2. //plik php
  3.  
  4. $Smarty = new Smarty();
  5.  
  6. $Obiekt = new KlasaTestowa();
  7. $Obiekt->setCos( 'cos' );
  8.  
  9. $Smarty->assign( 'Obiekt', $Obiekt );
  10.  
  11. ?>


  1. //tpl
  2. {$Obiekt->getCos()}
  3. <br />
  4. {$Obiekt->sJakiasZmienna}
  5. </body>
  6. </html>
gaza
Tak , w ten sposob dziala.

Cytat(DeyV @ 2004-11-06 11:43:20)
  1. <?php
  2. //plik php
  3.  
  4. $Smarty = new Smarty();
  5.  
  6. $Obiekt = new KlasaTestowa();
  7. $Obiekt->setCos( 'cos' );
  8.  
  9. $Smarty->assign( 'Obiekt', $Obiekt );
  10.  
  11. ?>


  1. //tpl
  2. {$Obiekt->getCos()}
  3. <br />
  4. {$Obiekt->sJakiasZmienna}
  5. </body>
  6. </html>

Tylko mi chodzi raczej o cos takiego
  1. //tpl
  2. {$Obiekt = new KlasaTestowa()}
  3. {$obiekt->dodaj('cos')}
  4. {$obiekt->dodaj('cos innego')}
  5.  
  6. <table border='1'>
  7. <tr>
  8. <td>{$obiekt->pokaz('cos')}</td>
  9. <td>{$obiekt->pokaz('cos innego')}</td
  10. </tr>
  11. </table>


Dokladnie pytanie brzmi :
Czy mozna deklarowac zmienne obiektowe w szablonie Smarty , tak jak powyzej ?
Czy moze trzeba w szablonie otworzyc sekcje kodu php zadeklarowac sobie zmienna obiektowa , przypisac co trzeba , zamknac sekcje php ?
--------------------------------------------------------------------------------------------
Poki co , to zrobilem to tak
  1. <?php
  2. //index.php
  3.  
  4. $obiekt = new KlasaTestowa()
  5.  
  6. $smarty -> assign('obiekt',$obiekt);
  7. $smarty -> display('index.tpl');
  8.  
  9. ?>


szablon
  1. //index.tpl
  2.  
  3. {$obiekt -> dodaj('cos')}
  4.  
  5. <table border='1'>
  6. <tr>
  7. <td> {$obiekt -> pokaz('cos')}</td>
  8. </tr>

I dziala .

Jednak gdy przed wywolaniem metody dodaj('cos') , chce ustawic jakies pola obiektu $obiekt.
  1. //index.tpl
  2. {$obiekt -> KolorTla = "#ffaabb"}

Pojawia sie problem.
Wyskakuje blad skladni "invalid atribute name '=' "

Dlaczego nie moge uzywac '=' ?
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-2025 Invision Power Services, Inc.