![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 2 Dołączył: 5.02.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
witam
mam w php funkcje którą rejestruje w smarty funkcja przyjmuje 3 parametry i zwraca tablice Kod function make_seed() { list($usec,$sec) = explode(" ", microtime()); return ((float)$sec+(float)$usec) * 100000; } mt_srand(make_seed()); function randomArray($params, &$smarty) { $tmp = array(); while(count($tmp) < $params['counter']) { $rand = mt_rand($params['from'],$params['to']); if(! in_array($rand,$tmp)) $tmp[] = $rand; } return $tmp; } $smarty->register_function('randomArray','randomArray'); w szablonie mam tak Kod {capture name=returned_array} {randomArray counter=5 from=0 to=30} {/capture} {assign var=randArr value=$smarty.capture.returned_arry} {$randArr[0]} i oczywiście nie działa pomożecie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzięki za pomoc Ten post edytował pawel.b 27.03.2009, 11:03:31 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Funkcje w Smartym nie są tym samym, co w PHP (w ogóle nawet nie wiem, czemu nazwali to w ten sposób). Ten system szablonów automatycznie wyświetla to, co zwrócą, jako tekst wynikowy. Skoro Twoja "funkcja" zwraca tablicę, to sam sobie odpowiedz, dlaczego nie działa, wiedząc że
produkuje tekst "Array" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Zamiast zwracać wartość, powinieneś wykorzystać dostarczany obiekt $smarty i przypisać wynik do jakiejś zmiennej metodą assign(). A tak ogólnie to jeśli nie jesteś na jakimś zaawansowanym etapie prac, gorąco polecam zmienić system szablonów na jakiś bardziej rozgarnięty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 12:05 |