How to set a php condition with field value ?

More
3 years 10 months ago #81985 by bendeb
J'utilise déjà des requêtes dans mes fichiers templates, comme celle-ci par exemple :
Code:
<?php if ($this->fields['my_field']->display ==NULL) { ?> <link rel="stylesheet" type="text/css" href="style.css" /> <?php } else {} ?> 
>>> Si mon champ "my_field" n'est pas renseigné, ça charge style.css. Sinon, ça ne charge pas style.css

Autre exemple, dans les templates de catégorie, on a ceci :
Code:
<?php foreach ($items as $i => $item) : ?>               *** code HTML ***     <?php endforeach; ?>

Ce que je demande n'est pas si compliqué il me semble. Je souhaite juste une condition qui affiche tous les items (avec un foreach j'imagine, comme l'exemple code n°2 ci-dessus) mais qui pour chaque valeur d'un champ custom (ex : my_field) de ces items, les regroupe ensemble et affiche un bout de code HTML avant :

Comme ceci :

*** code HTML n°1 ***
>>> liste de tous les items qui ont "1" comme valeur dans my_field


*** code HTML n°2 ***
>>> liste de tous les items qui ont "2" comme valeur dans my_field


*** code HTML n°3 ***
>>> liste de tous les items qui ont "3" comme valeur dans my_field

etc.

C'est si compliqué à faire ?
Pour moi oui. Mais je ne suis pas développeur.

J'ai essayé ce genre de syntaxe mais ça ne fonctionne pas :
Code:
<?php foreach ($items as $i => $item AND $item->fields['my_field']->display === '1')     <h1>Niveau 1</h1>

foreach n'accepte apparemment pas les opérateurs logiques. Je cherche donc une syntaxe précise qui permette de reproduire l'affichage que je veux suivant la valeur du champ "my_field". Et ce pour chaque valeur de ce champ.

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago - 3 years 10 months ago #81986 by micker
Hello déjà
1 my_field tu le remplace bien par le nom de ton champs ?
2 ton champs my_field est bien dans un position de ton template ? Sinon il faut Uil soit dans la position render
3 pour le foreach je te recommande de regarder dans la documentation de PHP
Sinon une recherche sur le web a foreach and group by value va te donner ça
stackoverflow.com/questions/49356181/php-foreach-group-by-value
Courage

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]
Last edit: 3 years 10 months ago by micker.

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81987 by bendeb
1) oui bien sûr :)
2) dans les réglages du template, je le met dans la position table. Cela fait-il une différence avec la position renderonly ?
3) merci pour le lien, je vais regarder ça.

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81988 by bendeb
Je suis allé voir ton lien, mais je n'arrive pas à reproduire le code sur mon template.

Je veux faire reproduire cette condition :
Si la valeur de mon champ 'my_field' est égale à 1, afficher 1
Si la valeur de mon champ 'my_field' est égale à 2, afficher 2
...
Quelle est la syntaxe précise stp ?

J'ai essayé ceci mais ça ne fonctionne pas :
if($item->fields->value == 1) {
echo '1';
}

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81989 by bendeb
J'ai mis ceci pardon, mais ça ne fonctionne pas :
Code:
if($item->fields['my_field']->value == 1) { echo '1'; }

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81991 by bendeb
Est-ce si compliqué de faire une condition sur la valeur d'un champ ?

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago - 3 years 10 months ago #81992 by micker
Bonjour je me permet de te répondre sans réponse....
Nous offrons gratuitement un composant plus complet je pense
Nous offrons aussi un support a l'utilisation de ce composant gratuitement et nous sommes plutôt rapide à répondre...
La la question c'est de la programmation PHP non lier au composant
J'ai déjà donner des liens des solutions (certe) cela ne te convient pas totalement
Nous envoyer x message par jour en nous rappelant qu'à ton avis cela devait être simple à faire et je pense légèrement déplacer
En tout amitiés bien sûr...
Oui cela peut être complexe de faire ce que tu veus surtout avec les soucis de pagination et de performance
Je vais essayer de voir si j'ai du temps dans la semaine prochaine.... Mais sans garantie
En espérant que tu comprennes merci

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]
Last edit: 3 years 10 months ago by micker.

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81993 by bendeb
Désolé pour toutes mes questions, mais même si c'est du php ça concerne le composant quand même car les fichiers item.php ou category.php (ou autres) dans les templates peuvent se modifier.
Pour ma question en premier message de ce topic, c'est sans doute compliqué, mais ma dernière question est pourtant simple je pense :
Quelle est la syntaxe précise pour faire une condition (avec if) suivant la valeur d'un champ ?
J'ai essayé cette syntaxe mais ça ne fonctionne pas (j'ai également essayé des tas d'autres syntaxes sans succès) :
Code:
if($item->fields['my_field']->value == 1) {echo '1'; }

Je souhaite juste savoir ça et ensuite j'essaierai de me débrouiller.

Merci pour tes réponses.
J'ai toujours trouvé Flexicontent génial, on peut faire des tas de choses simplement, c'est très complet et ultra performant. J'utilise ce composant depuis de nombreuses années. Au fil des ans, FC s'est nettement amélioré, en partie grâce aux utilisateurs qui font leurs retours, que ce soit pour reporter un bug, ou demander une amélioration.
Je m'efforce donc, à ma petite échelle, de faire évoluer ce composant en participant à ces retours.

Les fichiers php des templates sont bourrés de condition php, de boucles et autres.
Je souhaite juste connaître la syntaxe pour récupérer dans une variable la valeur d'un champ.
Y a-t-il une doc à ce sujet quelque part ? J'ai cherché dans les DOCS/TUTOS en français et en anglais mais je ne trouve rien de concluant.

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #81994 by micker
Hello
1 as tu regarder la partie tutorial et FAQ du site
2 as tu regarder le générateur de code que je t'ai donner? Dans chaque template tu peus éditer les fichier et juste en dessous tu a un générateur de code pour t'aider
3 il te faut apprendre les bases du code en apprenant à debugger
Fait un écho de la valeur de ton champs pour vérifier si tu reçois une valeur et si ta comparaison est bonne
Je me répète c'est du code PHP et de la logique PHP rien avoir précisément avec l'utilisation de flexi

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
3 years 10 months ago #82009 by bendeb
1) Oui, si tu parles bien du lien au-dessus DOCS/TUTOS.
2) Oui, mais la seule chose que je vois c'est pour afficher tous les champs d'une position ou afficher un champ en mode renderonly.
3) J'ai testé plein de choses, sans résultat. :(

Flexicontent 4.1.0b1
Joomla 3.9.18

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline
Save