Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty i zmienne obiektowe, tworzenie obiektu w szablonie
gaza
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 22.06.2003

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


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
zYm3N
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 29.08.2004
Skąd: POLAND

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


3 razy czytałem i nie rozumiem o co chodzi w pytaniu.. możesz łopatologicznie ? :-)
Dzięki.
Go to the top of the page
+Quote Post
DeyV
post
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




  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>
Go to the top of the page
+Quote Post
gaza
post
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 22.06.2003

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


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 '=' ?

Ten post edytował gaza 7.11.2004, 12:10:18
Go to the top of the page
+Quote Post

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: 22.08.2025 - 14:37