Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] Jak przekazać zmienną będącą tablicą do funkcji w smarty, tytuł zawiły ale sprawa prosta.. gorzej z rozwiązaniem :)
MariuszT
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.06.2003
Skąd: Tomaszów Mazowiecki

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


Tytuł zawiły ale w gruncie rzeczy prosta sprawa tylko nie wiem jak to nazwać. Poniższy przykład jest specjalnie przygotowany aby było łatwiej go zrozumieć. Muszę przekazać wartość tablicy o indeksie id do własnej funkcji/pluginu. Póki robię to tak jak jest w pierwszej linijce index.tpl to wszystko działa. Niestety mam trochę większe potrzeby ale o tym na końcu. Oto przykładowa aplikacja:

index.php
  1. <?php
  2. // tutaj ustawienia smarty, inicjacja klasy itd.
  3.  
  4. $zmienna[0]['id']=1;
  5. $smarty->assign('zmienna', $zmienna);
  6. $smarty->display('index.tpl');
  7. ?>


index.tpl
  1. {test testujemy=$zmienna[0].id}
  2. {test testujemy="$zmienna[0].id"}
  3. {test testujemy="$zmienna[0][id]"}
  4. {test testujemy="$zmienna[0]['id']"}


wynik
Cytat
1
Array.id

Array['id']


Skompilowany plik:
  1. <?php echo smarty_function_test(array('testujemy' => $this->_tpl_vars['zmienna'][0]['id']), $this);?>
  2.  
  3. <?php echo smarty_function_test(array('testujemy' => ($this->_tpl_vars['zmienna'][0]).".id"), $this);?>
  4.  
  5. <?php echo smarty_function_test(array('testujemy' => ($this->_tpl_vars['zmienna'][0][$this->_sections['id']['index']])), $this);?>
  6.  
  7. <?php echo smarty_function_test(array('testujemy' => ($this->_tpl_vars['zmienna'][0])."['id']"), $this);?>


No i kto mi teraz doradzi jak ja mam przekazać wartość zmiennej $zmienna[0]['id'] skoro w rzeczywistości tak używam mojego pluginu:
Cytat
{zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona=WARTOSC_NASZEJ_ZMIENNEJ" order='sort' limit='1'}

Jak widać w pliku index.tpl próbowałem różnych sposobów i nic nie wychodzi :/ Widać wyraźnie w skompilowanym pliku, że smarty głupieje :/

Co prawda znalazłem rozwiązanie ale wcale mi się ono nie podoba. Robię coś takiego:
Cytat
{assign var='zdjecie_id' value=$zdjecie[0].id}
{zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona=$zdjecie_id" order='sort' limit='1'}

Działa ale to takie... nieeleganckie ;P

Jakieś pomysły na rozwiązanie?

Ten post edytował MariuszT 17.01.2008, 11:35:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Cytat
{zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona="|cat:$zmienna[0].id order='sort' limit='1'}

więcej o łączeniu stringów tutaj.

Ten post edytował Cezar708 17.01.2008, 12:05:30
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.09.2025 - 15:05