{critério IN valor1, valor2[, valor3,..., valorN]}

{... IN ...} limita a exibição aos resultados que tenham um critériopertencente a um conjunto finito.

  • Apparu en : SPIP 1.8

{xxxx IN a,b,c,d} limita a exibição aos resultados com o critério xxxx igual a a, b, c ou d.

Os resultados são ordenados na ordem indicada (excepto se houver uma solicitação explícita de um outro critério de ordenação). Também é possível selecionar as strings, por exemplo, com {titre IN 'China', 'Japão'}

Passar uma matriz como argumento

É possível, e é também o único meio, passar dinamicamente uma lista de valor com o critério IN.

Exemplo:

#SET{minhas_secoes, #LISTE{1,2,3}}
<BOUCLE_a(ARTICLES){id_rubrique IN #GET{minhas_secoes}}>
	<h3>#TITRE</h3>
</BOUCLE_a>

Pode ser uma matriz definida pelas tags

ou uma matriz proveniente de uma tag #GET ou #ENV**{meu_post}.

Se #ENV{meu_post} for uma matriz (vinda, por exemplo, de entradas de formulário em que o atributo nome termine por []), e se os filtros de análise foram desativados pelo sufixo de asterisco duplo, então cada elemento da matriz será considerado como argumento de IN, o SPIP aplicará os filtros de segurança em cada um deles [1].

O template padrão fornecido em plugins-dist/forum/formulaires/inc-forum_previsu.html fornece um exemplo de uso com um loop MOTS com o critério {id_mot IN #ENV**{ajouter_mot}}:
este loop seleciona apenas as palavras-chave pertencentes a um conjunto indicado dinamicamente. Aqui, este conjunto terá sido construído pelo formulário do template padrão «choix_mots», que usa o atributo name=ajouter_mot[].

Negação do operador IN em critério de loop

<BOUCLE_a(ARTICLES) {id_article !IN 11,12,13}>

… só exibirá as matérias cujo id não consta da lista IN (ver critério !operador valor).

Uso condicional do operador IN num critério de loop

Exemplo:

Se #ID_ARTICLE estiver presente no ambiente:

-  <BOUCLE_a(ARTICLES) {id_article ?IN 11,12,13}>... só exibirá as matérias cujo l’id consta da lista IN.

-  <BOUCLE_a(ARTICLES) {id_article ?!IN 11,12,13}>... só exibirá as matérias cujo id não consta da lista IN.

Se, ao contrário, #ID_ARTICLE não estiver presente no ambiente, estes critérios condicionais não se aplicarão e, portanto, estes dois loops exibirão todas as matérias, seja qual for o seu id.

Ver também

Critérios condicionais

Operadores lógicos

Operadores

Autor Ricardo Porto Publié le :

Traductions : English, français, Português