[SMARTY] błąd przy wyświetlaniu tablicy wielowymiarowej

0

Witam.
Czy ktoś mi może powiedzieć, jak to powinno wyglądać i co źle robię? Bo mnie zaraz cos "trafi" :/.
Mam taki problem:
Mam tablicę postaci:

array(1) {
  [1]=>
  array(1) {
    [1]=>
    array(3) {
      ["value"]=>
      string(1384) "jakis tam string"
      ["type"]=>
      string(4) "text"
      ["other"]=>
      NULL
    }
  array(1) {
    [2]=>
    array(3) {
      ["value"]=>
      string(1384) "jakis tam string2"
      ["type"]=>
      string(4) "text"
      ["other"]=>
      NULL
    }
  }
  [2]=>
  array(1) {
    [1]=>
    array(3) {
      ["value"]=>
      string(1384) "jakis tam string"
      ["type"]=>
      string(4) "text"
      ["other"]=>
      NULL
    }
  array(1) {
    [2]=>
    array(3) {
      ["value"]=>
      string(1384) "jakis tam string2"
      ["type"]=>
      string(4) "text"
      ["other"]=>
      NULL
    }
  }
}

przekazuję ją do szablonu: $smarty->assign('item', $data);
nastepnie chce wyswietlic jej cala zawartosc w szablonie i nie wiem jak to uczynić:(. Męczę się już z tym drugi dzień.
Próbowałem na wiele sposobów, ostatni wygląda tak:

{section name=x loop=$item}
	{section name=y loop=$item[x]}
    {$item[x][y].type}
    {if $item[x][y].type=="text"}
    	<p>{$item[x][y].value}</p>
    {/if}
    {/section}
{/section}
0
{section name=x loop=$item}
        {section name=y loop=$item[$smarty.section.x.index]}
    {$item[$smarty.section.x.index][$smarty.section.y.index].type}
    {if $item[$smarty.section.x.index][$smarty.section.y.index].type=="text"}
            <p>{$item[$smarty.section.x.index][$smarty.section.y.index].value}</p>
    {/if}
    {/section}
{/section}

krótko mowiąc:
wszystkie 'x' na '$smarty.section.x.index' i to samo z y..

0

To już chyba lepiej zrobić to za pomocą wstawek php ;-P

<?php foreach($item as $x): ?>
   <?php foreach ($x as $y): 
   echo $y['type'];
   if ($y['type'] == 'text'):
   ?>
      <p><?php echo $y['value']; ?></p>
   <?php 
   endif;
   endforeach; 
endforeach; ?>

0

To w takim razie po co stosowac smarty?

0

W celu utrudnienia sobie tej bardzo nieskomplikowanej pracy...

0

Moment, czy ja mam coś z nadmiernym uwielbieniem {foreach} ponad {section}, czy wystarczy po prostu:

{foreach from=$item item=one}
    {foreach from=$one item=two}
         {foreach from=$two item=three}
            {$three.value} {$three.type}
         {/foreach}
    {/foreach}
{/foreach}

O ile się nie pomyliłem w ilości poziomów. Ewentualnie zamiast pierwszego foreacha jeśli tablica ma tylko jedno pole to wystarczy w drugim zaczynać od $item.1.

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