Utilização
#SET{variável,valor}
#GET{variável}
devolve "valor".
A variável definida por #SET
pode ser uma string ou uma matriz.
Uma string
#SET{minha_string, matéria de #NOM}
#GET{minha_string}
… exibirá: matéria de Toto
Se a sua string contém vírgulas, é preciso usar aspas:
#SET{sabores,'Baunilha, morango, chocolate'}
#GET{Sabores}
… exibirá: Baunilha, morango, chocolate
Uma matriz
#SET{minha_matriz, #ARRAY{a,um,b,dois,c,três,d,quatro}}
[(#GET{minha_matriz}|foreach)]
… exibirá:
- a => um
- b => dois
- c => três
- d => quatro
Como para a tag #ENV
é possível aceder diretamente a um dos valores da matriz com a ajuda de um /
. Com a matriz do exemplo precedente, #GET{minha_matriz/b}
devolve dois
.
Uso avançado com as strings
- Uma expressão regular:
#SET{reg1, '(^.*/[^/]+[/])'}
#SET{reg2, '\.[\w-_]+?'}
<BOUCLE_def(DOCUMENTS){tout}>
[(#FICHIER|replace{#GET{reg2}}|replace{#GET{reg1}})]<hr>
</BOUCLE_def>
... permite recuperar e exibir o nome do ficheiro de um documento, limpo do seu caminho (path) e da sua extensão.
Por exempl, se #FICHIER
for IMG/pdf/Stats_Pernoite_em_20241231.pdf será exibido nous afficherons Stats_Pernoite_em_20241231.
O objectivo aqui de usar as tags #SET
e #GET
para a expressão regular é permitir a utilização de parêntesis rectos ([ e ]) no filtro |replace
.
- o resultado devolvido pro um INCLURE
:
#SET{meu_retorno, #INCLURE{fond=calculs}}
Definir um valor por padrão para #GET
Em vez da tag #ENV, pode-se definir um valor por padrão na inserção da tag #GET:
#GET{variável, valor_padrao}
… devolverá «valor_padrao» se «variável» não tiver sido definida anteriormente.
Atenção: este método não atribui «valor_padrao» à
«variável».
Âmbito da variável definida por #SET
Os valores definidos pela tag #SET
permanecem locais ao template em que foram definidas.
Assim, o valor de uma variável definida por um SET num ficheiro incluído não poderá ser recuperada pelo GET correspondente no ficheiro que o incluiu.
Saber onde colocar a sua declaração #SET
Quando se pretende que um loop forneça um ou mais valores a uma variável declarada com #SET
convém colocar a declaração desse #SET
antes da primeira tag de abertura do loop.
Isto é particularmente importante quando o loop é declarado com a sua sintaxe completa (com efeito, uma declaração #SET
colocada entre <B_..>
e <BOUCLE_...>
será inicializada após a execução do loop.)
Ver também
As tags matriz
Critérios