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

Download

#FOREACH

17 maart

Alle versies van dit artikel:


Met het baken #FOREACH kan worden «gelust» op een inhoud zoals op een in een skelet berekende tabel en op ieder element kan een SPIP model worden losgelaten.

#FOREACH{baken, model}

In SPIP 3 werd dit baken vervangen door de lus DATA.

Voorbeelden

-  In een skelet toont #FOREACH{env} alle variabelen van het baken #ENV op de volgende wijze:

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

Anders gezegd, op elke element van de ze associatieve PHP tabel die het baken #ENV vertegenwoordigt, zal #FOREACH het model foreach.html toepassen (vgl. verderop).

-  Wil je de inhoud van een ander baken weergeven, zoals #CONFIG, dan geef je de naam van dit baken als eerste parameter door:

#FOREACH{config} toont iets dergelijks:

  • 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 [en]cfg: Configuratiemotor </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
  • ...=> ...

En voor ieder SPIP baken dat een PHP tabel vertegenwoordigt, krijg je een soortgelijk resultaat (zie #ARRAY).

Een specifiek model maken

Standaard wordt het model foreach.html gebruikt. Het staat in de map squelettes-dist/modeles/. Je kunt het aanpassen, maar het is beter om zelf een model te maken dat specifiek gebruikt wordt voor een baken en dit te plaatsen in de map squelettes/modeles/.

Het model foreach_baken.html correspondeert met #FOREACH{baken}.

Je kunt ook andere algemene modellen maken en voor een of ander baken gebruiken.
Om bijvoorbeeld een model te maken voor een gewone lijst, maak je squelettes/modeles/foreach_ul_li.html, wat bevat: <li><a href="#ENV{waarde}">#ENV{sleutel}</a></li> zal worden toegepast met [<ul>(#FOREACH{ENV, foreach_ul_li})</ul>] en genereert deze 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>

Meer waardes

In meer ingewikkelde situaties kun je meerdere waardes aan het model doorgeven door de volgende tabelstructuur voor het baken toe te passen:

  1.     'cle' => array (
  2.         'val1' => 'valeur1'
  3.         'val2' => 'valeur2'
  4.         'val3' => 'valeur3'
  5.         'val4' => 'valeur4'
  6.     )
  7.     'cle2' => array (
  8.         'val1' => 'valeur1bis'
  9.         'val2' => 'valeur2bis'
  10.         'val3' => 'valeur3bis'
  11.         'val4' => 'valeur4bis'
  12.     )
  13. )

en daarvoor gebruik je een aangepast model:

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

N.B.

In SPIP 3

#FOREACH is niet meer beschikbaar en vervangen door het baken DATA.

Je gebruikt daarbij de syntax:

  1. <BOUCLE_for(DATA){source tableau,#DE_TABEL}>
  2. #CLE / #VALEUR
  3. </BOUCLE_for>

Lees ook: Voorbeelden met BOUCLE(DATA)


Het skelet van deze bladzijde zien Site gebouwd met SPIP | Vertaalruimte | Privé-site