How to set a php condition with field value ?

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.

More
3 years 10 months ago #82011 by micker
1 dans les tutos il y a des choses sur le fait de faire son template, apres tu ne trouvera pas TON tuto mais il faut fouiller
2 si je regarde le code proposer rien qu'en lisant je vois que ton code est faux
il est important de bien lire les choses
ce qui est recommander pour du code en render only
Code:
<?php echo $item->fields["fieldname"]->display; ?>
donc ta condition est mal faite
Code:
<?php if ( $item->fields["fieldname"]->display === 1){ echo 'ton resultat' } ?>
Attention les informations de ton champs sont enregistrés en 2 elements, la valeur et le label de valeur
En soit dans ton champs dans la section apparence c'est a toi de choisir que qui sort (la valeur ou la label) et tu dois donc adapter la condition en fonction

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 #82017 by bendeb
Code:
<?php echo $item->fields["fieldname"]->display; ?>
C'est bien cette syntaxe que j'utilise pour afficher mes champs. Parfois il faut mettre $this au lieu de $item sinon ça ne marche pas. J'ai pas bien compris pourquoi.
Le code que je donne qui est faux était un test pour essayer une condition sur la valeur d'un champ, mais ça ne fonctionne pas. Et c'est cette syntaxe que je cherche et pour laquelle j'ai demandé votre aide.

Ce code ci fonctionne bien par contre :
Code:
<?php if ($item->fields['fieldname']->display != NULL) { echo 'blablabla'; }?>
Ou en mettant l'inverse ça marche aussi :
Code:
<?php if ($item->fields['fieldname']->display == NULL) { echo 'blablabla'; }?>

Mais si les valeurs de mon champ sont des nombres (1 à 9) et qu'à la place de !=NULL ou ==NULL je met ===1 (ou ===2, etc.), ça ne fonctionne pas.

Dans les paramètres de ce champ, il affiche le label.

Mais en base de données, les values de ce champ sont bien des entiers, et uniquement ça (1 à 9 donc)
Donc comment faire une condition sur ce champ précis en fonction de cette value ? Quelle est la bonne syntaxe ?

Merci.


   

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 #82018 by bendeb
D'autres syntaxes que j'ai essayé et qui ne fonctionnent pas :
Code:
<?php if ($this->fields['fieldname']->value === 1) { echo 'blablabla'; }?> <?php if ($item->fields['fieldname']->value === 1) { echo 'blablabla'; }?> <?php if ($this->fields['fieldname']->value == 1) { echo 'blablabla'; }?> <?php if ($item->fields['fieldname']->value == 1) { echo 'blablabla'; }?>

Ou encore celles-ci :
Code:
<?php if ($this->fields['fieldname']->value->display === 1) { echo 'blablabla'; }?> <?php if ($item->fields['fieldname']->value->display === 1) { echo 'blablabla'; }?>


Etc.
Aucune ne fonctionne. :(

Pourtant, il existe forcément un moyen simple ?

Flexicontent 4.1.0b1
Joomla 3.9.18
Last edit: 3 years 10 months ago by bendeb.

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

More
3 years 10 months ago #82020 by micker
$this c'est quand tu es dans le template de l'article cela fait référence à celui qui est afficher
$item c'est quand tu es dans une vue catégorie c'est l'article qui est dans la boucle
SVP lit correctement mon post
tu continus a faire
Code:
<?php if ($this->fields['fieldname']->value === 1) { echo 'blablabla'; }?>
alors que c'est
Code:
<?php if ($this->fields['fieldname']->display === 1) { echo 'blablabla'; }?>
en esperant que
Code:
<?php echo $this->fields['fieldname']->display;?>
renvoi bien 1
oui c'est simple QUAND on es rigoureux ! lol courage c'est pas simple a debut j'en convient

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 #82022 by bendeb
Ok pour this et item. C'est bien ce que j'avais compris donc.
Je ne continue pas de faire le code ci-dessus, je testais juste.

J'applique bien le code que tu donnes et ça ne fonctionne pas.
Code:
<?php if ($this->fields['fieldname']->display === 1) { echo 'blablabla'; }?>
C'est même le tout premier truc que j'ai essayé.

Pourtant, le display du même champ m'affiche bien 1 comme résultat. Et en base de données, value est bien égal à 1.
Donc il y a un truc qui coince.

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 #82023 by micker
oui mais si tu remets toujours le même code je ne suis pas devin lol
tu peu aussi partir du preincipe que ton 1 n'est pas un chiffre mais un caractére
il faut donc essayer
Code:
<?php if ($this->fields['fieldname']->display === '1') { echo 'blablabla'; }?>
mais là on travaille a l'aveugle sans connaitre le contexte
la syntaxe est bonne c'est les valeurs retournée à tester qui n remplisse pas les conditions

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 - 3 years 10 months ago #82024 by bendeb
J'ai essayé avec les guillemets autour du 1, ça ne fonctionne pas non plus.
Mais il s'agit bien d'un champ texte.

Par contre, je viens de faire un test avec un champ de type select, en mettant des valeurs numériques.
Et avec la condition, ça fonctionne bien. Avec des guillemets autour des chiffres dans la condition (sinon ça ne marche pas).

Comment faire dans ce cas pour que ça fonctionne avec un champ de type texte si les guillemets ne changent rien ?

Flexicontent 4.1.0b1
Joomla 3.9.18
Last edit: 3 years 10 months ago by bendeb.

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

More
3 years 10 months ago - 3 years 10 months ago #82025 by micker
c'est que la condition n'est pas bonne, c'est pas la syntaxe qui pose soucis c'est la validation de la condition
ton champs ne vaut pas 1 il faut définir quoi sinon  fait comme je l'ai proposer, dis a ton champs d'afficher la valeur plutot que le label de la valeur

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.

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