Witam,

Stawiam w Smarty pierwsze kroki i napotkałem pierwszą trudność.

Mamy w szablonie taki kod:

  1. <?php
  2. {foreach from=$users key=index item=value}
  3. <td>
  4. {$index}: {$value}
  5. </td>
  6. {/foreach}
  7. ?>


Chciałbym jednak aby wartość $index zamieniana byla na stałą PHP.
Zatem jeśli dla danego wiersza wartości $index i $value są kolejno "name" i "Kowalski", to powyższy kod po przeróbkach powinien być w działaniu analogiczny do:

  1. <?php
  2. {foreach from=$users key=index item=value}
  3. <td>
  4. {$smarty.const.USER_NAME}: {$value}
  5. </td>
  6. {/foreach}
  7. ?>


Gdyby pętla była wykonywana w PHP powyższe miałoby postać:

  1. <?php
  2. foreach($users as $key =>$value){
  3. echo '<td>';
  4. echo constant('USER_'.strtoupper($index)).': '.$value;
  5. echo '</td>';
  6. }
  7. ?>


Innymi słowy, jak osiągnąć to:
  1. <?php
  2. echo constant('USER_'.strtoupper($index)).': '.$value;
  3. ?>

no poziomie kodu Smarty?

Pozdrawiam,
J.