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:
array (
'cle' => array (
'val1' => 'valeur1'
'val2' => 'valeur2'
'val3' => 'valeur3'
'val4' => 'valeur4'
)
'cle2' => array (
'val1' => 'valeur1bis'
'val2' => 'valeur2bis'
'val3' => 'valeur3bis'
'val4' => 'valeur4bis'
)
)
en daarvoor gebruik je een aangepast model:
#ENV{val1}, #ENV{val2}, #ENV{val3} en #ENV{val4}