Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Smarty] Array to string conversion
Kubus
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.11.2004

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


Witam,

Od jakiegos czasu wali mi bledami "Array to string conversion" w Smarty.class.php linijka 1688

  1. <?php
  2. function _run_mod_handler()
  3. {
  4. $_args = func_get_args();
  5. list($_modifier_name, $_map_array) = array_splice($_args, 0, 2);
  6. list($_func_name, $_tpl_file, $_tpl_line) =
  7. $this->_plugins['modifier'][$_modifier_name];
  8.  
  9. $_var = $_args[0];
  10. foreach ($_var as $_key => $_val) {
  11. $_args[0] = $_val;
  12. $_var[$_key] = call_user_func_array($_func_name, $_args);
  13. }
  14. return $_var;
  15. }
  16. ?>


to dokladnie linijka

  1. <?php
  2. $_var[$_key] = call_user_func_array($_func_name, $_args);
  3. ?>


Zaktualizowalem biblioteki do najnowszej wersji i to nic nie dalo, wczesniej tego bledu nie mialem.

Blad pojawia sie przy uzywaniu {section} i wyskakuje tyle razy, ile razy wykonuje sie ta petla.
To moja wina, czy smartiego?
Wywalilem na chwile wszystkie moje modyfikatory, default_modifiers, przejrzalem kod konfiguracyjny smartiego i nic zlego tam nie ma (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Skoro zmiana bibliotek nie pomogła może to oznaczać, że podajesz złe dane do {section}.
Pokaż ten kawałek tpl'a .. no i może php'a gdzie tworzysz tablice wyświetlaną po stronie szablonu.
Go to the top of the page
+Quote Post
Kubus
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.11.2004

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


Ogolnie wszystko wyglada jakby dzialalo bo section wyswietla poprawnie

Tablica

  1. <?php
  2. (
  3. [0] => Array
  4. (
  5. [id] => 1
  6. [tytul] => ala
  7. )
  8. [1] => Array
  9. (
  10. [id] => 2
  11. [tytul] => kot
  12. )
  13. )
  14. ?>


Section

  1. {section name="t" loop=$tmp.test}
  2. {$tmp.test[t].id} - {$tmp.test[t].tytul}
  3. {/section}


Nie bylo problemu do chyba wczoraj, moze cos sie na serwerze zmienilo...
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Hmm rzeczywiście bardzo dziwne.
Zrobiłem dokładnie takie same dane u siebie na lokalu i koncie na webd.pl i nie pokazał mi się żaden komunikat.


Na to by wyglądało, jakbyś miał zdefiniowaną jakąś funkcję ( plugin, modyfikator ), która wywołuje się podczas wywoływania {section} ... ten kod z klasy Smartiego chyba za to odpowiada.
Go to the top of the page
+Quote Post
Kubus
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.11.2004

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


Jak znajde wolna chwile, to jeszcze popatrze, moze cos surowego postawie zeby wyeliminowac sprawe serwera i php...

Witam,

Uporalem sie z bledem, okazalo sie, ze to default_modifiers

  1. <?php
  2. $smarty -> default_modifiers = array ("stripslashes", "trim");
  3. ?>


Przy kazdej petki section wywalalo blad, bo smarty stosowal te funkcje rowniez do tablic, ale stworzylem wlasne

  1. <?php
  2. function smarty_array_stripslashes ($text) {
  3. if (is_array ($text))
  4. return $text;
  5. else
  6. return stripslashes ($text);
  7. }
  8.  
  9. function smarty_array_trim ($text) {
  10. if (is_array ($text))
  11. return $text;
  12. else
  13. return trim ($text);
  14. }
  15. ?>


i tak dziala

  1. <?php
  2. $smarty -> default_modifiers = array ("smarty_array_stripslashes", "smarty_array_trim");
  3. ?>


Jest jakies inne prostsze rozwiazanie? (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)


Dla nie wiedzacych - zeby zmiana default_modifiers zadzialala, nalezy wyczyscic skompilowane szablony z katalogu templates_c (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował Kubus 11.05.2007, 14:29:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.10.2026 - 00:43