![]() |
![]() ![]() |
![]() |
![]()
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: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://www.smarty.net/manual/en/plugins.php http://www.smarty.net/manual/en/plugins.functions.php popraw bbcode edit: no dobra, widze ze zrobiles to przy pomocy tego: http://www.smarty.net/manual/en/api.register.function.php wlacz sobie wyswietlanie bledow to moze jakis blad zobaczysz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 2 Dołączył: 5.02.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
problemem nie jest rejestracja funkcji w smarty tylko przypisywanie jej wyniku do zmiennej w szablonie smarty. twierdze że tak jest ponieważ inne funkcje mi działają a rejestruje je identyczne.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
to nie mogles od razu napisac w czym problem?
widze pewną niescisclosc miedzy slowem: returned_array a: returned_arry bbcode dla php to [php] a nie [code] |
|
|
![]()
Post
#5
|
|
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) . |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 2 Dołączył: 5.02.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) racja
ale dalej nie działa tak jak chce Kod {$smarty.capture.returned_array} // wypisuje Array {$smarty.capture.returned_array[0]} // nie wypisuje nic {$smarty.capture.returned_array[1]} // wypisuje A {$smarty.capture.returned_array[1]} // wypisuje r niestety zmiana silnika szablonych odpada pomóżcie jak uzyskać efekt o który pisze wyżej czyli wygenerować x losowych liczb z danego zakresu (a,(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Ten post edytował pawel.b 27.03.2009, 11:44:49 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no ale zyx ci juz odpowiedzial:
Cytat produkuje tekst "Array" Cytat Zamiast zwracać wartość, powinieneś wykorzystać dostarczany obiekt $smarty i przypisać wynik do jakiejś zmiennej metodą assign()
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:57 |