Mam problem z przekazaniem zmiennych w funkcji oryginalna funkcja wyglada tak:
  1. <?php
  2. public function Drzewo($liczba, $i = 0)
  3. {
  4.  $res = mysql_query("SELECT * FROM ogl_kat WHERE przodek = ".$liczba." ORDER BY nazwa");
  5.  while($row = mysql_fetch_assoc($res))
  6.  {
  7. $z = "";
  8. echo ($liczba == 0) ? '<b>' : '';
  9.  
  10. echo "<option value=\"".$row['id_kat']."\">|-";
  11. for($a=0; $a<$i; $a++)
  12. {
  13.  echo "---";
  14. }
  15. echo $row['nazwa'];
  16. echo ($liczba == 0) ? '</b>' : '';
  17. echo '<br />'."\n";
  18. $this->Drzewo($row['id_kat'], $i+1);
  19.  }
  20. }
  21. ?>


Drzewko w tej funkcji jest wyswietlane idealnie. Przerobilem ta funkcje pod system SMARTY obecnie wyglada tak:
  1. <?php
  2. function smarty_function_drzewo($params, &$smarty)
  3. {
  4. $res = mysql_query("SELECT * FROM ogl_kat WHERE przodek = ".$params['liczba']." ORDER BY nazwa");
  5.  while($row = mysql_fetch_assoc($res))
  6.  {
  7. echo ($params['liczba'] == 0) ? '<b>' : '';
  8.  
  9. echo "<option value=\"".$row['id_kat']."\">|-";
  10. for($a=0; $a<$params['i']; $a++)
  11. {
  12.  echo "---";
  13. }
  14. echo $row['nazwa'];
  15. echo ($params['liczba'] == 0) ? '</b>' : '';
  16. echo '<br />'."\n";
  17.  
  18. $params['liczba'] = $row['id_kat'];
  19. $params['i']++;
  20. smarty_function_drzewo($params, &$smarty);
  21.  }
  22. }
  23. ?>


Niewiem gdzie jest blad. Pierwszy kod funckji wyswietla drzewko:
-KAT1
----podkat1
-------podpodkat1
-------podpodkat2
-KAT2
----podkat2
-------podpodkat1
-------podpodkat2

Po poprawieniu do SMARTY tak:
-KAT1
----podkat1
-------podpodkat1
----------podpodkat2
----KAT2
-------podkat2
----------podpodkat1
-------------podpodkat2

Niewiem dlaczego tak sie dzieje niby wszystko ok. Prosze o pomoc moze ktos z was zauwazy co jest nie tak.