Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty i obiekty
Forum PHP.pl > Forum > Gotowe rozwiązania
ganimedes
Przykładowo mam taką tablice z objektami
  1. <?
  2. (
  3. [items_list] => Array
  4. (
  5. [0] => NewsModel Object
  6. (
  7. [0] => 6
  8. [news_id] => 6
  9. [1] => 1
  10. [user_id] => 1
  11. [2] => topic 1
  12. [topic] => topic 1
  13. [3] => short_content 1
  14. [short_content] => short_content 1
  15. [4] => content 1
  16. [content] => content 1
  17. [5] => 2004-12-24 13:56:15
  18. [date] => 2004-12-24 13:56:15
  19. [6] => n
  20. [approved] => n
  21. )
  22.  
  23. [1] => NewsModel Object
  24. (
  25. [0] => 7
  26. [news_id] => 7
  27. [1] => 2
  28. [user_id] => 2
  29. [2] => topic 2
  30. [topic] => topic 2
  31. [3] =>short_content 2
  32. [short_content] => short_content 2
  33. [4] => content 2
  34. [content] => content 2
  35. [5] => 2004-12-24 13:56:15
  36. [date] => 2004-12-24 13:56:15
  37. [6] => n
  38. [approved] => n
  39. )
  40. )
  41.  
  42. )
  43.  
  44. ?>

i jak ją wyświetlić w smarty?? Proshe tylko nie odsyłać mnie do innych stron bo dopiero zaczynam używać klase smarty...

Metody ktore użyłem
  1. <?
  2. public function news(){
  3. $query = &#092;"SELECT * FROM news\";
  4. $result = $this->_connection->query($query);
  5. $result_arr = array();
  6. while ($line = $result->fetchArray() ){
  7. $result_arr[] = new NewsModel($line);
  8. }
  9.  return $result_arr;
  10. }
  11.  
  12. // class newsmodel
  13.  
  14. <?php
  15. class NewsModel{ 
  16. public function __construct($data_array){ 
  17. foreach ($data_array as $k => $v){
  18. $this->$k = $v;
  19. }
  20. }
  21. }
  22. ?>
nospor
najpierw przypisujesz ją do smarty'ego:
  1. <?php
  2.  
  3. $smarty->assign('tablica',$tablica)
  4.  
  5. ?>


a w smartym:
Kod
{foreach from=$tablica item=element}
//cos robisz. np {$element->news_id}
{/foreach}


powinno dzialac
ganimedes
A jak to by wyglądało w sekcjach?? Czy wogole sposób umieszczania w smarty obiektów jest dobry? Jeśli nie to w jaki sposób można to zrobic.

OKi zrobiłem: ale pytania nadal są aktualne
Kod
<?
<table width="100%">
{section name=index loop=$items_list}
<tr bgcolor="{cycle values="#aaaaaa,#bbbbbb"}">
<td>
{$items_list[index]->news_id}
</td>
<td>
{$items_list[index]->content}
</td>
</tr>
{/section}
</table>
?>


A tak przy okazji sie zapytam do display można załatować pliki w tablicy i w jakiej kolejności będą wyświetlane??

  1. <?
  2. $smarty->display( $array );
  3. ?>
nospor
mozna osadzać obiekty. Raz testowalem szybkość. Raz jest lepsza, raz gorsza.
Alternatywą mogą być plugins, ale nie wiem czy do twojego zastosowaniua to się przyda. Ja używałem ich na przemian, w zależności od wydajnopści
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.