#SET en #GET

Het baken #SET definieert een variabele die in het gehele skelet kan worden toegepast.
Het baken #GET leest vervolgens deze variabele uit.

#SET{variabele,waarde}
#GET{variabele} retourneert "waarde".

De met #SET gedefinieerde variabele kan een tekenreeks of een tabel zijn.

-  Een tekenreeks:
#SET{mijn_var, artikel van #NOM}

#GET{mijn_var} geeft weer:
artikel van Toto

-  Een tabel [1]:
#SET{mijn_tab, #ARRAY{a,een,b,twee,c,drie,d,vier}}

[(#GET{mijn_tab}|foreach)] geeft weer:

  • a => een
  • b => twee
  • c => drie
  • d => vier

Bevat je reeks komma’s, dan moet je hem tussen aanhalingstekens zetten:
[(#SET{fruit,'appel, peer, banaan'}]

Geavanceerde toepassing van tekenreeksen

-  Een regexp (reguliere expressie):

#SET{reg1, '(^.*/[^/]+[/])'}
#SET{reg2, '\.[\w-_]+?'}
<BOUCLE_def(DOCUMENTS){tout}>
[(#FICHIER|replace{#GET{reg2}}|replace{#GET{reg1}})]<hr>
</BOUCLE_def>


onttrekt en toont de naam van het bestand van een document, ontdaan van zijn path en extensie.
Is bijvoorbeeld #FICHIER het bestand IMG/pdf/Statistieken_311207.pdf dan is het resultaat Statistieken_311207.

Het belang van het gebruik van de bakens #SET en #GET met regexp is de toepassing van rechte haakjes ([ en ]) in het filter |replace.

-  Het resultaat van een INCLURE:

[(#SET{mijn_var, #INCLURE{fond=berekening}})]

Standaardwaarde

Wanneer variabele niet voorafgaand werd gedefinieerd door een #SET{variabele, waarde}, kan een standaardwaarde aan het baken #GET worden toegevoegd:
#GET{variabele, standaardwaarde} retourneert «standaardwaarde» als «variabele» niet vooraf werd gedefinieerd.

Let op: deze methode wijst «standaardwaarde» niet toe aan «variabele».

Een met #SET gedefinieerde waarde doorgeven

De met het baken #SET gedefinieerde waardes kunnen alleen binnen het skelet zelf worden gebruikt.

Dus een waarde die werd gedefinieerd door een #SET in een ingesloten bestand, dan kan die niet worden gebruikt in het aanroepende skelet.

Weet waar je de #SET plaatst

Wanneer je wilt dat een lus één of meerdere waardes levert aan een met #SET gedefinieerde variabele, dan plaats je de definiërende #SET vóór het eerste baken dat de lus opent.

Dit is met name belangrijk wanneer de lus wordt gedeclareerd met de volledige syntax (want een definiërende #SET geplaatst tussen <B_..> en <BOUCLE_...> wordt pas uitgevoerd na het uitvoeren van de lus.)

Voetnoot

[1Lees ook het artikel over tabellen.

Auteur Hanjo Gepubliceerd op: Aangepast: 28/06/23

Vertalingen: عربي, català, English, Español, français, Nederlands