Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Smarty]Przypisywanie do zmiennej tablicy wewnątrz szablonu
xamil
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 9.01.2005

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


Witam.

Jak mogę wewnątrz szablonu przypisać do zmiennej jakąś tablice? Czyli na poziomie szablonu chcę wykonać coś co na poziomie php wyglądałoby tak:
  1. <?php
  2. $zmienna=array('a','b','c','d')
  3. ?>


Pozdrawiam, Kamil
Go to the top of the page
+Quote Post
php programmer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


W manualu nic nie pisze na ten temat,
a nie lepiej zrobić takie przypisanie w php,
a potem tablica przypisać do zmiennej smarty?
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
W manualu nic nie pisze na ten temat,
Czy oby napewno?
http://smarty.php.net/manual/en/language.function.php.php
Oczywiscie jesli ciagle mowimy o smarty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
php programmer
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


nospor: Ale przecież pytanie nie dotyczyło wstawki php,
tylko jak zrobić w smarty coś co w php zrobiło by się tak.
Go to the top of the page
+Quote Post
bigZbig
post
Post #5





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Mozna uzyc {assign}, ale tylko do przypisania wartosci bedacej stringiem. Jesli chcesz przypisac tablice to niestety jedyna mozliwosc daje uzycie bloku {php} o ktorym pisal nospor (@php programer - moim zdaniem odpowiedz nospora jest jak najbardziej wlasciwa bo w smarty do robienia takich rzeczy jak w php sluza wlasnie znaczniki {php}, co nie zmienia faktu, ze jest to generalnie kiepski pomysl aby robic w szablonie cos co powinno sie dziac poza nim)
Go to the top of the page
+Quote Post
nazihipi
post
Post #6





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 14.07.2006

Ostrzeżenie: (10%)
X----


Cytat(xamil @ 22.08.2006, 08:46 ) *
Jak mogę wewnątrz szablonu przypisać do zmiennej jakąś tablice?[/php]

nie da się jeśli chodzi Ci o coś takiego
  1. { $arrCopy = $array }

możesz użyć bloku {php} o którym wspomnieli koledzy wyżej...

Ten post edytował nazihipi 22.08.2006, 10:51:02
Go to the top of the page
+Quote Post
xamil
post
Post #7





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 9.01.2005

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


Cytat(php programmer @ 22.08.2006, 09:10 ) *
a nie lepiej zrobić takie przypisanie w php,
a potem tablica przypisać do zmiennej smarty?
Myślałem, że wrażnie napisałem co chce osiągnąć?(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wiem, że tak się da ale po prostu mam inną potrzebe. Krótkie wyjaśnienie. Mam szablon w którym na dzień dzisiejszy mam listę jakiś 6 powiedzmy linków. Poza jedną zmienną rzeczą nie różnią się praktycznie niczym więc fajnie by było zamiast 6 razy coś wypisywać lepiej zrobić pętle na tych 6 elementach. Łatwiejsze w modyfikowaniu i przejrzystsze. Nie ma żadnych szans aby liczba tych opcji kiedykolwiek się zwiększyła więc nie ma sensu ich assignować w php. W sumie to jeśli by to było tylko tyle to mimo wszystko bym je assignował ale jest jeszcze jedna rzecz. Szablon jest wyykorzystywany w wielu metodach php. Za każdym razem każda z tych metod musiałaby skądś czytać liste opcji i ją assignować do template'a. Dlatego rozwiązanie w stylu
  1. <?php
  2. {$tablica=array('element1',element2',element3',element4',element5')}{section name=id loop=tablica}{$tablica[id]}{/section}
  3. ?>
wydawało mi się dobrym pomysłem... szkoda, że nie działa.

Dziękuje wszystkim wam za odpowiedzi. Chyba wykorzystam tą metodę co opisałem czyli będę przypisywał w poszczególnych metodach a liste elementów będę brał z konfiguracji

Pozdrawiam
Go to the top of the page
+Quote Post
php programmer
post
Post #8





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Cytat
Szablon jest wykorzystywany w wielu metodach php.
Za każdym razem każda z tych metod musiałaby skądś czytać liste opcji i ją assignować do template'a

Chyba mijasz się z podstawową ideą szblonów,
szblon ma pokazywać jedynie efekt końcowy,
a nie wykonywać operacje logiczne,

Cytat
Za każdym razem każda z tych metod musiałaby skądś czytać liste opcji i ją assignować do template'a

No to co za problem wsadzić to w php do funkcji,
po to stworzono funkcję aby wsadzać tam kod, który ma
być wielokrotnie wykorzystywany.

Ten post edytował php programmer 23.08.2006, 08:46:11
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




A jesli juz tak bardzo sie upierasz, by miec to w szablonie, to napisze se plugin, ktory bedzie assign robil do szablonu, a plugin ten wywoluj w szablonie.
Go to the top of the page
+Quote Post
Mordor
post
Post #10





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 5.09.2006

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


Witam

Sam również miałem potrzebę przypisania do zmiennej w szablonie tablicy. Rozwiązanie znalazłem na stronie http://smarty.incutio.com/?page=SmartyTips.

Wygląda ono następująco :


  1. {assign var="tablica" value=","|split:"wartosc1,wartosc2,wartosc3"}
  2.  
  3. lub, gdzie zmienna to string np. wiersz1,wiersz2,wiersz3
  4.  
  5. {assign var="tablica" value=","|split:$zmienna }
  6.  
  7. "," jest separatorem elementów tablicy.


Jakoś nie mogłem znaleźć nigdzie w dokumentacji smarty informacji na temat modyfikatora split, ale rozwiązanie działa.

Pozdrawiam
Marcin
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: 4.04.2026 - 20:43