web-dev-qa-db-fra.com

Comment puis-je vérifier si une seule case on / off est cochée?

Il ne semble pas y avoir de moyen de vérifier la valeur d'une seule case on/off (booléenne) dans le sélecteur de données pour le module Rules. Si "field-MyField" = coché ou "field-MyField" = 1, faites "blah". Les règles peuvent-elles faire cela? J'ai dû louper quelque chose

8
user785179

Après plusieurs heures d'essais et d'erreurs, j'ai fini par résoudre le problème. Ne me demandez pas d'expliquer cela car cela n'a aucun sens pour moi. Si quelqu'un peut expliquer, alors ce serait grandement apprécié!

J'ai défini une nouvelle condition à l'aide de COMPARAISON DES DONNÉES. Je sélectionne ensuite le "node: field-MyField: 0" (il y en a jusqu'à 4 - node: field-MyField: 1, node: field-MyField: 2, etc.). J'ai ensuite réglé la COMPARAISON sur EQUALS. Ensuite, dans la deuxième partie du sélecteur de données, il ne s'agit plus d'un sélecteur de données de zone de saisie de texte, mais apparaît maintenant comme un sélecteur de données de case à cocher. Lorsque je clique sur ce sélecteur de données de case à cocher et que je clique sur Enregistrer, le module de règles fonctionne désormais correctement.

frappe la tête sur le mur

2
user785179

Il y a un mélange de détails corrects et incorrects ici, donc je vais essayer de les trier. C'est pour les règles sur Drupal 7, et s'applique au travail avec un champ booléen.

Pour créer une condition qui vérifie l'état booléen d'un champ (vrai/faux, oui/non, coché/décoché), assurez-vous d'abord que vous pouvez accéder au champ dans le sélecteur de données. Comme Bojan l'a mentionné ci-dessus, et comme il l'a mentionné sur la page d'administration elle-même,

Pour faire apparaître les champs d'entité dans le sélecteur de données, vous devrez peut-être utiliser la condition "l'entité a un champ" (ou "le contenu est de type").

L'opérateur que vous souhaitez choisir est "égal".

Pour le champ "Data Value", vous pouvez entrer des valeurs dans deux modes, assurez-vous que vous utilisez "direct input mode". Vous devriez alors être en mesure de cocher la case qui représente VRAI pour ce champ.

Traduit, ce que vous dites est: "Ce champ est-il égal à VRAI?" Vous pouvez également le nier en le laissant décoché ou en utilisant l'option "nier" ci-dessous.

6
ezrock

Vous ajoutez simplement une condition de "comparaison de données", spécifiez le nom du champ et entrez "1" comme valeur. Si le champ n'apparaît pas dans la liste des champs, ajoutez d'abord une condition "L'entité a un champ" et sélectionnez-y le champ. Ensuite, ajoutez la "comparaison de données" suivante.

3
Bojan Zivanovic

Vous devrez probablement utiliser Support des formulaires de règles .

Une fois que vous avez activé les règles de formulaire pour un formulaire spécifique, vous pouvez utiliser la condition comme: L'élément de formulaire a une valeur . Cette condition peut être utilisée lorsque le formulaire est en cours de construction ou validé .

Un autre module à considérer est Règles d'entité .

0
kenorb

Dans la version mise à jour (fixe?) Des règles, pour ce faire, ajoutez une condition de comparaison de données, sélectionnez le champ approprié dans le sélecteur de données node:field-to-check, puis à l'étape suivante, laissez l'opérateur de comparaison sur equals. Dans le groupe Valeur de données, il y aura une case à cocher nommée utilement "Les règles de valeur de données" compareront avec la valeur de la case à cocher telle que soumise sur cette page.

0
Zxaos