spipzine

Accueil > Ateliers > Bricolage > Filtres de test - Qui a dit impossible ?

Filtres de test - Qui a dit impossible ?

mercredi 21 juin 2006, par Vincent ROBERT

Depuis que SPIP a introduit dans sa version 1.8 les filtres de test, il est possible de faire des squelettes conditionnels, sans utiliser ni connaitre le php. Exemples de filtres un peu fou. Débutant s’abstenir.

Pré-requis :

Reprise d’un exemple de la documentation officielle

Ce filtre se place dans une boucle rubrique, il permet de réaliser des accords orthographiques.

Si #TOTAL_BOUCLE renvoie un résultat supérieur à 1, c’est qu’il y a plus d’un article dans la rubrique, et donc on affiche "articles" (avec un "s").

Sinon c’est qu’il y a un article ou moins dans la rubrique, et donc on affiche article (sans le "s").

Oui mais voilà, on a le problème suivant : S’il n’y a aucun article dans la rubrique, avec le code ci-dessus, on va afficher "0 article dans cette rubrique.", ce qui est stupide, autant ne rien afficher du tout.

Si #TOTAL_BOUCLE est nul, alors ne rien afficher.

Sinon afficher "articles" ou "article" suivant la valeur de #TOTAL_BOUCLE, en respectant l’interprétation précédement donnée.

Niveau débutant avancé

Premier filtre de test (extrait du code de BliP 0.9x, directement inspiré de la documentation) qui se place dans une boucle article :

Si la popularité de l’article est strictement inférieure à 3, alors ne rien faire.

Sinon, inclure le squelette inc_article_decompte_popularite.html dans la page en cours, l’inclusion passant l’identifiant de l’article en paramètre.

Remarque : Comme on procède a une inclusion, l’écriture du filtre est légèrement différente.

Il ne faut surtout pas faire :

car ce code produirait une erreur.

Niveau intermédiaire

Alors ici, on teste une variable qui a été passée en paramètre (via l’url par exemple).

Si la variable tri vaut documents, alors inclure le fichier sommaire_documents.html dans le fichier en cours, Sinon ne rien faire.

(on teste de même pour savoir si tri vaut "commentaires" ou "articles".)

Si la variable tri est vide, alors inclure le fichier sommaire_articles.html dans le fichier en cours, Sinon ne rien faire.

Les experts en SPIP suggéraient de faire ceci :

mais attention aux brèches de sécurité, car si un indélicat charge l’url ...?tri=toto, alors si le fichier sommaire_toto.html existe, il sera inclus.

Niveau avancé

A lire avant de commencer : (spip-dev) Filtres imbriqués


Voir en ligne : Article publié initialement sur cent20.net.

Messages