How to set a php condition with field value ?

More
2 years 8 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
2 years 8 months ago - 2 years 8 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: 2 years 8 months ago by micker.

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

More
2 years 8 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
2 years 8 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
2 years 8 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
2 years 8 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.

Moderators: vistamediajoomlacornerggppdk
Time to create page: 0.392 seconds
Save
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