XOOPS Brasil

 

foreach,foreachelse

Nome do Atributo Tipo Obrigatório Padrão Descrição
from string Sim n/d O nome da matriz que você estará pegando os elementos
item string Yes n/d O nome da variável que é o elemento atual
key string Não n/d O nome da variável que é a chave atual
name string Não n/d O nome do loop foreach para acessar as propriedades foreach

Loops foreach são uma alternativa para loops section. foreach é usado para pegar cada elemento de uma matriz associativa simples. A sintaxe para foreach é muito mais simples do que section, mas tem a desvantagem de poder ser usada apenas para uma única matriz. Tags foreach devem ter seu par /foreach. Os parâmetros requeridos são from e item. O nome do loop foreach pode ser qualquer coisa que você queira, feito de letras, números e sublinhados. Loops foreach podem ser aninhados, e o nome dos loops aninhados devem ser diferentes um dos outros. A variável from (normalmente uma matriz de valores) determina o número de vezes do loop foreach. foreachelse é executado quando não houverem mais valores na variável from.

Example 7.4. foreach


{* este exemplo irá mostrar todos os valores da matriz $custid *}
{foreach from=$custid item=curr_id}
	id: {$curr_id}<br>
{/foreach}

MOSTRA:


id: 1000<br>
id: 1001<br>
id: 1002<br>


Example 7.5. foreach key


{* A key contém a chave para cada valor do loop

A definição se parece com isso:

$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
      array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));

*}

{foreach name=outer item=contact from=$contacts}
  {foreach key=key item=item from=$contact}
    {$key}: {$item}<br>
  {/foreach}
{/foreach}

MOSTRA:


phone: 1<br>
fax: 2<br>
cell: 3<br>
phone: 555-4444<br>
fax: 555-3333<br>
cell: 760-1234<br>


Loop foreach também tem as suas próprias variáveis para manipilar as propriedades foreach. Estas são indicadas assim: {$smarty.foreach.foreachname.varname} com foreachname sendo o nome especificado no atributo name do foreach.

iteration

iteration é usado para mostrar a interação atual do loop.

Iteration sempre começa em 1 e é incrementado um a um em cada interação.

first

first é definido como true se a interação atual do foreach for a primeira.

last

last é definido como true se a interação atual do foreach for a última.

show

show é usado como parâmetro para o foreach. show é um valor booleano, true ou false. Se false, o foreach não será mostrado. Se tiver um foreachelse presente, este será alternativamente mostrado.

total

total é usado para mostrar o número de interações do foreach. Isto pode ser usado dentro ou depois do foreach.