#SET e #GET

A tag #SET define uma variável que será utilizável no âmbito do template.
A tag #GET permite então recuperar essa variável.

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

Autor Ricardo Porto Publié le : Mis à jour : 10/03/25

Traductions : عربي, català, English, Español, français, Nederlands, Português