SPIP Forums

[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.


Accueil du site> Forums de discussion >  Création de squelettes > Ignorer un critère lorsque #ENV n'est pas affecté

Ignorer un critère lorsque #ENV n'est pas affecté

par ubiq - 17 janvier 2009 18:26 - Réponse(s) : 5

Bonjour,

Voici une problématique que je rencontre souvent et à laquelle je n’ai pas trouvé de solutions autres que php (structures conditionnelles php + isset).

J’ai une boucle du type :

Vous l’aurez compris, je cherche à n’afficher que les articles auxquels sont associés le mot-clé éventuellement passé par le biais d’une variable d’environnement (en GET, dans mon cas).

Lorsque la variable d’environnement categorie existe, pas de problème. Lorsqu’elle n’existe pas, plantage de squelette.

Objectif : je voudrais ignorer le critère id_mot=... lorsque #ENVcategorie n’est pas affectée.

Or, 1. il n’est pas possible d’utiliser un filtre SPIP dans un critère.

Et, 2. l’écriture #ENVxxxx,yyyy (voir : http://www.spip.net/fr_article1902.html , bas de page) ne m’est d’aucune utilité, car il n’existe pas de paramètre yyyy signifiant "quelque soit le mot-clé" (comme le * windows par exemple).

Un dénommé Cédric a rencontré le même problème et l’expose dans les commentaires de cet article : http://www.spip-contrib.net/La-bali... (voir les commentaires du 4 novembre 2008)

Merci de m’avoir lu.

Régis


Indiquez l'intérêt que vous portez à cette question

Suivre la vie du site

Ignorer un critère lorsque #ENV n'est pas affecté

17 janvier 2009 18:29 - par ubiq

Zut, on ne voit pas le type de ma boucle, je la répète donc ici :

BOUCLE_ARTICLE (articles) (... criteres divers ...) (id_mot=#ENV(categorie))


Ignorer un critère lorsque #ENV n'est pas affecté

17 janvier 2009 19:01 - par denisb
<BOUCLE_art_mot(ARTICLES) {criteres divers} {id_mot=#ENV{categorie}}>
 ...
</BOUCLE_art_mot>
</B_art_mot>
 <BOUCLE_art_autres(ARTICLES) {criteres divers}>
   ...
 </BOUCLE_art_autres>
<//B_art_mot>

- si la variable « categorie »

  • existe dans l’url
  • et est renseignée
  • et que sa valeur est un id_mot relié à un des articles sélectionnés par {criteres divers}
    - alors la première partie de BOUCLE_art_mot est exécutée et pas la partie alternative.

    - si « categorie »
  • n’est pas passée en url
  • ou est non renseignée
  • ou que sa valeur n’est pas un id_mot relié à un des articles sélectionnés par {criteres divers}
    - alors la première partie de BOUCLE_art_mot ne retourne rien,
    donc c’est la partie alternative (entre </B_art_mot> et <//B_art_mot>) qui est exécutée.

Ignorer un critère lorsque #ENV n'est pas affecté

17 janvier 2009 19:52 - par ubiq

Merci beaucoup ! C’est compris.


Ignorer un critère lorsque #ENV n'est pas affecté

18 janvier 2009 10:16 - par Committo, Ergo Sum

Il y a d’autres solutions :

- les critères conditionnels : {id_mot ?} ne fait une comparaison sur le champ SQL id_mot que si id_mot est présent dans l’environnement (donc il faut seulement que tu renommes Categorie en id_mot dans l’appelant de ton squelette).

- le comparateur == qui fait des comparaisons par RegExp, id_mot == #ENV{categories, %}}

Le % étant le caractère indiquant "toute valeur possible" en SQL.


Ignorer un critère lorsque #ENV n'est pas affecté

18 janvier 2009 18:53 - par ubiq

Fantastique !
Exactement ce qu’il me fallait.

Merci pour ces renseignements.


Répondre à la question


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

  • Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :
  • Installation, mise à jour

    Utilisation de l’espace privé

    Administration, gestion, configuration du site

    Créer ses squelettes

Qui êtes-vous ? (optionnel)
  • [Se connecter]

  • par casp - 15 mars 19:58

    Image_recadre et pourcentage

    Pas de réponse

    Bonjour, j’aurai aimé savoir si quelqun sais si il est possible d’utiliser le filtre image recadre avec non pas des valeur en pixel mais en pourcentage ? Ou peu être plustôt récupérer avec du php les valeurs en pixel en fonction du pourcentage et les (...)

  • par rfissa - 15 mars 19:34

    Problème d'affichage de fichiers flash sur le serveur OVH

    Réponse(s) : 2

    bonjour, je suis chez ovb et j ai le meme probleme, ma www.sweethomeinvest.ch ne s affiche pas correctement y a que le fond qui s affiche au fait, c est une page html faite sur dreamweaver avec 2 elements flash .swf (un menu et une intro) depuis (...)

  • par Suske - 15 mars 16:49

    Banniere, lien vers page accueil

    Réponse(s) : 2

    Ben SPIP permet de faire des sites normaux... C’est multiflex qui est pas normal :-) Le gars s’est amusé avec les inclusions, cfg, un css dynamique... Bref, a priori je dirais que ça se passe dans un fichier appelé par /layouts/layoutX.html, dans la (...)

  • par s t i | g a r d - 15 mars 16:43

    Formulaire visible que par admin

    Réponse(s) : 2

    Merci je ne connaissais pas cette balise. Je tente ce code [(#SESSIONstatut|==0minirezo|oui) <a href="mon lien">Blabla</a>] Cependant, sur la page, spip m’indique que le filtre "oui" est non défini et je suis bien connecté (...)

  • par s t i | g a r d - 15 mars 16:21

    Squelette créé + #ENV

    Réponse(s) : 1 - Résolu

    J’ai modifié le squelette auteur et j’ai modifié les id des formulaires dans la base de donnée pour qu’ils aient le même id que les auteurs.

  • par JC - 15 mars 15:01

    FICHIER et image_masque

    Réponse(s) : 2

    prouvé, mais ne fonctionne pas

  • par ubiq - 13 mars 23:29

    Alternative à age_relative

    Réponse(s) : 2

    L’inspiration m’est venue quand je n’y croyais plus. A la racine de mon squelette, hors de toute boucle, je place : <BOUCLE_EVENEMENTS_A_EXCLURE(evenements) age_relatif>0 doublons evts> </BOUCLE_EVENEMENTS_A_EXCLURE> Que je peux (...)

  • par Guronsan - 13 mars 22:17

    Problème utilisation critère doublons ou unique dans boucle perso

    Réponse(s) : 2

    nope. MY_INSCRIPTIONS a une entrée id_article et id_membre dans la base de données. la boucle MY_MEMBRE récupère l’id_membre dans MY_INSCRIPTION en fonction de l’article déjà défini

  • par blazouf - 13 mars 18:28

    Squelettes, rubriques et sous rubriques

    Réponse(s) : 2 - Résolu

    Super !! J’ai ENFIN compris comment marche ce systeme de squelette ! milles merci pour la réponse rapide !

  • par ubiq - 13 mars 15:08

    Balise FICHIER et crash

    Réponse(s) : 5 - Résolu

    Autre chose, j’ai regardé les dernières entrées de ma table documents par PHPmyAdmin, et la table me paraît "clean".


squelettes-dist/spip.png voir le squelette de cette page