Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#1 2010-12-13 06:26:43
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
[fr-fr] contenu conditionnel si article_image horizontale ou verticale
Salut à tous ! J’ai un petit casse-tête à vous soumettre…
Je cherche à définir si l’image associée à l’article (article_image
) est verticale ou horizontale pour afficher un contenu conditionnel.
N’étant pas développeur PHP, je me suis dit qu’avec la pléthore de plugins actuellement disponibles, je devrais y arriver assez facilement : ben non !
Je peux facilement récupérer les valeurs numériques de la hauteur et de la largeur :
Largeur : <txp:upm_article_image><txp:upm_img_full_width /></txp:upm_article_image>
Hauteur : <txp:upm_article_image><txp:upm_img_full_height /></txp:upm_article_image>
Et tout aussi facilement les passer dans une variable :
<txp:variable name="largeur" value="<txp:upm_article_image><txp:upm_img_full_width /></txp:upm_article_image>" />
<txp:variable name="hauteur" value="<txp:upm_article_image><txp:upm_img_full_height /></txp:upm_article_image>" />
Dans les deux cas, je confirme que ça fonctionne et que ça retourne bien la bonne valeur numérique.
Mais quand j’utilise (sans doute mal) le plugin txp:smd_if, pour vérifier si la hauetur et plus grande que la largeur, quelle que soit la valeur donnée dans value=""
, le résultat est toujours faux, que ça soit la variable largeur ou même une simple une valeur numérique (‘ai essayé avec 1 et 999999 et j’obtiens le même résultat, “VERTICAL” ce qui est absurde. C’est comme si txp:smd_if ne reconnaissait pas ma variable hauteur du tout :
<txp:smd_if field="txpvar:hauteur" operator="gt" value="999999">
VERTICAL
<txp:else />
HORIZONTAL
</txp:smd_if>
Est-ce que quelqu’un connait ou imagine une méthode possible (pas forcément en utilisant txp:smd_if qui, visiblement vole bien au dessus de mes compétences) ?
Last edited by Niconemo (2010-12-13 06:30:03)
Nico
Offline
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Salut nico
Déjà au niveau du code:
<txp:variable name="hauteur" value="<txp:upm_article_image><txp:upm_img_full_height /></txp:upm_article_image>" />
je ne vois comment ça marche car il faut utiliser une quote simple pour faire marcher le tag dans un autre tag comme ceci :
<txp:variable name="hauteur" value='<txp:upm_article_image><txp:upm_img_full_height /></txp:upm_article_image>' />
En regardant la doc de smd_if il parle d’utliser gt:NUM pour forcer une comparaison numérique, mais je n’ai pas testé!
A+
Offline
#3 2010-12-13 09:21:35
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
OK ! Merci pour ces deux pistes !
J’avais complètement oublié le coup de la simple quote (avant que ça soit possible dans Textpattern j’utilisais un plugin pour imbriquer les tags…). Cela dit ça marche bien en apparence dans ce cas précis.
Je commence quand-même par corriger ça et puis j’explore la piste gt:NUM si ça ne suffit pas.
Et si ça ne suffit pas, je vais faire 2-3 tests avec d’autres valeur pour déterminer plus précisément où ça coince.
Nico
Offline
#4 2010-12-13 09:34:51
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Bingo !
Merci encore, c’est bien le coup de la simple quote.
Bizarrement ça arrivait à afficher le bon résultat mais pas à inclure celui-ci dans un calcul. Et ça foirait aussi dans adi_calc (voir plus bas) du coup je me suis dit qu’effectivement il y a un truc que je faisais mal.
Du coup j’ai deux pistes possibles à mon problème :
- soit vérifier si la hauteur est plus grande que la largeur
- soit calculer (avec adi_calc) si h/l supérieur ou inférieur à 1
Ça revient au même mais je testerai les deux pour garder la plus pratique ou la plus élégante.
Edit. : ah… Non. ça ne marche pas mieux en fait… Je pousse les tests un peu plus loin.
Last edited by Niconemo (2010-12-13 09:43:50)
Nico
Offline
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Ben je pense que la 1 est la plus simple cela t’évite d’utiliser un deuxième plugin (adi_calc) non?
Offline
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Si jamais tu n’a pas de solution avec smd_if.
Le plug’in “smd_gallery” permet de filter à l’aide de l’attribut aspect
les images dans les différents formats :
aspect : filter images by this list of aspect ratios. Choose from any of portrait, landscape or square
Ensuite appliquer un contenu conditionnel à l’intérieur du tag ou grâce à des variables.
Last edited by sacripant (2010-12-13 16:18:38)
Offline
#7 2010-12-14 13:52:10
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
y compris avec les images associées à l’article (article_image) et dans un modèle d’article ?
Je vais jeter un oeil…
Nico
Offline
#8 2010-12-15 16:11:04
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Bon. Après un test repris à zéro, au propre et au calme, sur un module d’article tout neuf…
Ça marche très bien.
Voici le code pour ceux que ça intéressent :
<!-- passage des variables -->
<txp:variable name="hauteur-image" value='<txp:upm_article_image><txp:upm_img_full_height /></txp:upm_article_image>' />
<txp:variable name="largeur-image" value='<txp:upm_article_image><txp:upm_img_full_width /></txp:upm_article_image>' />
<!-- comparaison -->
<txp:smd_if field="txpvar:largeur-image" operator="gt:NUM" value='<txp:variable name="hauteur-image" />'>
<p>Largeur > Hauteur (paysage)</p>
<txp:else />
<p>Largeur < Hauteur (portrait)</p>
</txp:smd_if>
le plus drôle, c’est que je n’en ai plus besoin, j’ai trouvé un truc bien plus élégant pour mon problème d’affichage. Mais j’aime pas rester sur un échec… Ça me servira bien un jour :-D
Pour SMD_gallery : je n’ai pas encore eu l’occasion de tester à fond ce plugin très intéressant (normal; c’est encore du SMD !). Mais pour le portfolio sur lequel je travaille (le mien, en fait, j’en ai marre d’être plus mal chaussé que mes clients), je tiens à rester en mode article, avec une image associée à l’article, pour plus de souplesse. Hors SMD_gallery travaille sur la base de la liste des images.
Last edited by Niconemo (2010-12-15 16:18:57)
Nico
Offline
#9 2010-12-16 13:51:51
- Niconemo
- Member
- From: Rhône-Alpes, France
- Registered: 2005-04-18
- Posts: 557
Re: [fr-fr] contenu conditionnel si article_image horizontale ou verticale
Argh ! Bloke (alias SMD) vient juste de m’ouvrir les yeux sur un tout nouveau tag txp:image_info
qui peut récupérer ce type d’info en natif (associé à un autre nouveau tag txp:images
, avec un “s”). J’ai installé TXP 4.3 bêtement, sans même regarder les nouvelles fonctions…
Du coup
<txp:images>
<txp:smd_if field='<txp:image_info type="w" />' operator="gt" value='<txp:image_info type="h" />'>
<p>Largeur > Hauteur (paysage)</p>
<txp:else />
<p>Largeur < Hauteur (portrait)</p>
</txp:smd_if>
</txp:images>
C’est quand même plus élégant non ?
Last edited by Niconemo (2010-12-16 15:01:37)
Nico
Offline