Fork me on GitHub






Problème de conditions & d'opérateur
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
Bonjour, je viens de constater un problème avec la condition if dans un de mes templates ça beug avec mes opérateur.

Voici le problème : Dans mon module Xoopstube j'ai plusieurs catégorie & j'ai un bouton qui s'affiche pour voir le top mais dans certaine de mes catégorie j'ai des sous catégorie donc mon bouton ne sert a rien lorsque je suis dans la catégorie parent d'une comportant des sous catégorie donc dans mon template j'ai ajouté une condition pour contrôler l'affichage de mon bouton. Voici un exemple :

<{if $category_id == 1}>  <div></div>  <{elseif $category_id == or or 10}>  <button  ... >zeTop</button>  <{else}>   <{/if}>


comme ceci ça fonctionne bien la catégorie 1 ne m'affiche rien & dans la 2,5,10 j'ai mon bouton.

Mais comme j'ai des catégories parent de sous catégorie j'ai dû adapter mon code comme ceci :
<{if $category_id == or or }>  <div></div>  <{elseif $category_id == or or 10}>  <button  ... >zeTop</button>  <{else}>   <{/if}>


Et là parfait pour les catégorie parent ( 1,3,8 ) le bouton a disparu sauf qu'il as aussi disparu des autres catégorie ( 2,5,10 ) !?

Bien sur j'ai essayer avec différents opérateur & signe, j'ai testé le or, ||, &&, ... mais rien y fait !?

Petite précision pour la démo du code je vous ais mis que quelques catégorie & sous catégorie (3) mais en vrai j'en ai un peu plus !

Alors question pourquoi, d'où & comment cela se fait-il !?

Posté le : 15/02/2016 20:43

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Problème de conditions & d'opérateur
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
Je viens de tester comme ceci :

<{if $category_id == or or }>  <div></div>  <{elseif $category_id != or or 10}>  <button  ... >zeTop</button>  <{else}>   <{/if}>


Là ça fonctionne quand je rentre dans une catégorie pas de bouton puis je vais dans la sous cat le bouton existe mais si j'ai le malheur de rafraichir la page alors il disparait puis je passe à la page suivante (pagenav) il ré apparait ensuite je reviens à la première page il est de nouveau présent mais si je rafraichis de nouveau il disparait ou ré apparait si clique sur la catégorie parent !

Quand je dit rafraichit c'est quand je clique sur le nom de la catégorie dans le menu en haut de page.

Bon ce n'est pas dramatique mais bizarre quand même je pense c'est PHP c'est le code de la navigation menu qui ne prend le code !?

je pense ça viens de ça :

$xoopsTpl->assign('category_path', $pathstring);
$xoopsTpl->assign('category_id', $cid);

Posté le : 15/02/2016 21:03

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Problème de conditions & d'opérateur
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Bonjour
Je ne sais pas si smarty accepte cette syntaxe, j'en doute, je vais vérifier, mais perso j'écrirais plutôt quelque chose comme ça:
<{if $category_id == or $category_id == or $category_id == }>  <div></div>
<{elseif 
$category_id != or elseif $category_id != or elseif $category_id != 10}>  <button  ... >zeTop</button>  
<{else}>   
<{/if}>


JJDai

Posté le : 16/02/2016 10:42

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Problème de conditions & d'opérateur
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
Pas bête j'avais pas essayé comme ça mais ça ne fonctionne pas. j'ai essayé comme ça :

<{if $category_id == 1}><div></div><{/if}>
<{if $category_id == 3}><div></div><{/if}>
<{if $category_id == 8}><div></div><{/if}>

<{if $category_id != 1 or 3 or 8}>
<button ... >zeTop</button>
<{/if}>

ça fonctionne mais j'ai 2 catégorie qui résiste, persiste & signe !

Je ne comprends pas, par contre lorsque je clique sur celle dont ça fonctionne & ensuite je retourne sur la catégorie parent via le menu pas de bouton hormis les 2 qui résiste. Il doit y'avoir un chinois avec de l'humour de planqué quelque part & qui as décidé que je serais sa tête de turc

Posté le : 17/02/2016 22:14

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Problème de conditions & d'opérateur
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
J'ai vider le cache redémarrer mon navigateur c'est toujours pareils comme au premier Post !

Posté le : 17/02/2016 22:35

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Problème de conditions & d'opérateur
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Cette syntaxe ne me parait pas correcte, voir mon premier post

<{if $category_id != or or 8}>


ça équivaut à mon avis à écrire:
<{if $category_id != or true or true}>

c'est à dire toujours.

JJDai

Posté le : 17/02/2016 22:39

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

40 Personne(s) en ligne (35 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 40 | Plus ...