template.php: pętla zagnieżdżona - jak użyć?

0

Mam pytanko co do klasy template z Coyote.

Stworzyłem sobie listę filmów w postaci tabeli (coś na kształt spisu userów na 4p) i jedna z kolumn to 'aktorzy'.
Tu chciałem dać kolejną pętlę aby wyświetlić aktorów w postaci linków.

Wygląda to tak (dla potrzeb postu skróciłem i dodałem entery):

<!--BEGIN:MOVIE_LIST-->
<tr>
 <td>.....</td>
 <td>
  <!--BEGIN:ACTORS-->
  <a href="<!--SITE_URL-->actor/?a=<!--ACTORS.ACTOR_ID-->">
   <!--ACTORS.ACTOR_NAME--></a>
 <!--END:ACTORS-->
 </td>
</tr>
<!--END:MOVIE_LIST-->

I pojawia się problem. Za chińskiego boga nie umiem sprawić, aby lista aktorów się wypełniła.
Próbowałem różnych sztuczek zarówno ze zmianą nazwy na takie fikuśne: MOVIE_LIST.ACTORS.ACTOR_ID etc. jak i grzebanie w PHP.

Wydaje mi się, że problem jest w tym, że funkcja:
$template->assign_block('MOVIE_LIST', $a_movie);
wykonywana jest dopiero na końcu, więc $template->assign_block('ACTORS'....) widzi tylko jeden wiersz (z .tpl) a nie tyle, ile filmów (czyli ile było rekordów w $a_movie).

No ale w takim razie powinienem zobaczyć aktorów choć dla pierwszego filmu - a patrząc na kod strony zostają wszystkie komentarze z ACTORS :/

Pilnie proszę o pomoc :)

P.S.
Oczywiście poprawiłem u siebie ten błąd: http://4programmers.net/coyote/bug.php?id=119

0

Hmm... przyjrze sie temu. Twoj problem jednak mozna rozwiazac inaczej... zakladajac, ze masz liste aktorow w tablicy:

  $ary['James'] = 1;
  $ary['Arnolg'] = 2;
  
  $string = '';
  
  foreach ( $ary as $name => $id )
  {
      $string .= '<a href="http://127.0.0.1/user.php?id=' . $id . '">' . $name . '</a> ';
  }
  
  echo $string;

Zmienna $string zawiera ciag, ktory mozesz wstawic do szablonu.
Ale rozumiem, ze blad to blad i nie o to tutaj chodzi...

0

czy przypadkiem tak samo nie dzieje sie w RR ?

0

No akurat w moim przypadku kod zaproponowany przez Adama mógłby przejść, choć tracę na tym, że rzeczy należne skórkom muszę pisać w kodzie PHP (URL, etc.).

Jednak przy bardziej skomplikowanych pętlach wypełniających przydałaby się możliwość wykonywania skórkowych pętli BEGIN:TAG .. END:TAG w postaci zagnieżdżonej.

Należy by się zastanowić jak to rozwiązać, gdyż każda wewnętrzna pętla może być inna dla każdej iteracji zewnętrznej.
Przykład:

Wiersz nr

i jeśli <font color="brown">A</span> będzie miało pole <font color="brown">NR</span> od <font color="brown">1</span> do <font color="brown">3</span> a <font color="brown">B</span> będzie miało pole <font color="brown">COSTAM</span> równe <font color="brown">a,b,c</span> dla <font color="brown">NR=1</span>, <font color="brown">f</span> dla <font color="brown">NR=2</span> i <font color="brown">k,v</span> dla <font color="brown">NR=3</span> to wynik powinien być taki:

Wiersz nr 1

  1. a
  2. b
  3. c
Wiersz nr 2
  1. f
Wiersz nr 3
  1. k
  2. v

W obecnej wersji klasy template takie coś jest chyba niemożliwe.
Oczywiście być może trzeba będzie użyć nazwy zagnieżdżonej.. hmm, np.

zamiast:

lub coś w ten deseń

1 użytkowników online, w tym zalogowanych: 0, gości: 1