SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Descargar

#FOREACH

Abril de 2010

Todas las versiones de este artículo:


La baliza #FOREACH permite iterar sobre un contenido equivalente a una array calculado en el esqueleto, aplicando para cada uno de sus elementos un modelo SPIP.

#FOREACH{baliza, modelo}

Ejemplos

-  En un esqueleto cualquiera, la utilización de #FOREACH{env} mostrará todas las variables de la baliza #ENV de la siguiente manera:

  • page=> test_boucle
  • date=> 2009-12-22 22:44:27
  • date_default=> 1
  • date_redac=> 2009-12-22 22:44:27
  • date_redac_default=> 1

Dicho de otra forma, para cada elemento del array asociativo PHP que representa la baliza #ENV, #FOREACH aplicará el modelo foreach.html (cf. más abajo).

-  Se puede querer mostrar el contenido de otra baliza. #CONFIG, por ejemplo. Para eso, se pasará el nombre de la baliza como primer parámetro:

#FOREACH{config} mostrará por tanto a continuación:

  • charset_sql_base=> utf8
  • charset_collation_sql_base=> utf8_general_ci
  • charset_sql_connexion=> utf8
  • version_installee=> 14558
  • nouvelle_install=> 1
  • plugin=> a:3:{s:3:"CFG";a:4:{s:3:"nom";s:90:"<multi> [fr]cfg: moteur de configuration [de]cfg: Konfigurationsmotor </multi>";s:4:"etat";s:6:"stable";s:3:"dir";s:8:"auto/cfg";s:7:"version";s:6:"1.14.1";}}
  • derniere_modif_rubrique=> 1260746188
  • ...=> ...

Y para toda baliza SPIP que represente un array PHP se obtendrá un resultado similar (ver #ARRAY).

Fabricar un modelo dedicado

El modelo foreach.html es el que se aplica por defecto. Se le encuentra en squelettes-dist/modeles/. Es posible modificarlo, pero también se puede fabricar un modelo dedicado a una baliza y colocarlo en su propia carpeta squelettes/modeles/.

El modelo foreach_balise.html corresponde a #FOREACH{balise}.

También se puede querer crear modelos generales y utilizarlos para una u otra baliza.
Por ejemplo, para listas no enumeradas, un modelo llamado squelettes/modeles/foreach_ul_li.html, que contendrá: <li><a href="#ENV{valeur}">#ENV{cle}</a></li> sería llamado por [<ul>(#FOREACH{ENV, foreach_ul_li})</ul>] y mostraría (código HTML):

<ul>
<li><a href="test_boucle">page</a></li>
<li><a href="2009-12-22 22:54:40">date</a></li>
<li><a href="1">date_default</a></li>
<li><a href="2009-12-22 22:54:40">date_redac</a></li>
<li><a href="1">date_redac_default</a></li>
</ul>

Más valores

Finalmente, en los casos más complejos, se pueden pasar más valores al modelo respetando la siguiente estructura de array para la baliza que se haya pensado:

y proporcionando un modelo adaptado:

#ENV{val1}, #ENV{val2}, #ENV{val3} et #ENV{val4}

Ver el esqueleto de esta página Sitio desarrollado con SPIP | Espace de traduction | Espacio privado