Comment changer une valeur de champ avec une action de règles?


20

J'essaie de configurer une action de règles qui peut changer la valeur d'un champ. J'ai créé un ensemble d'actions avec un type de données Node. Lorsque je vais créer une action de règles, j'ai accès à tous les champs de nœud Drupal par défaut, mais pas de champs.

N'est-ce tout simplement pas possible? Ai-je besoin d'un autre module pour que cela fonctionne?

Réponses:


15

Vous devez d'abord ajouter une condition pour vérifier si le champ existe sur ce nœud, seulement alors il est disponible pour les actions. Il y a une condition spécifique pour ce faire.


1
Il doit également s'agir d'un ensemble de règles afin d'avoir apparemment accès aux conditions.
Joren

6

L'utilisation de la condition "L'entité a un champ" (ou "le contenu est de type") rendra les champs disponibles avec la sélection de données dans l'action "Définir une valeur de données".


2

Pour ne pas contredire les deux réponses précédentes, mais à l'OMI, il leur manque (ignorant?) Une partie cruciale de la question, à savoir " ... J'ai créé un ensemble d'actions ... ". Certes, une partie de la solution est, à peu près sûre, " Entity has field" (comme dans la réponse de jcarballo ). Mais, de par la conception d'un ensemble d'actions de règles , vous ne pouvez y inclure aucune condition de règles. À cet effet, l'un des éléments suivants est nécessaire pour compléter la réponse à cette question:

Compte tenu de ce qui précède, vous devriez pouvoir créer une action de règles comme (par exemple) "Définir une valeur de données" pour votre champ, si vous ajoutez également une condition de règles Entity has field(liée au champ pour lequel vous souhaitez définir une valeur) . Et assurez-vous d'ajouter cette Entity has fieldcondition AVANT d'autres règles Conditions dans lesquelles vous voudrez peut-être faire référence à ce champ (si vous avez de telles conditions dans votre règle).

C'est aussi ce qui est mentionné dans l'interface utilisateur des règles, par exemple lorsque vous ajoutez une condition de "comparaison de données": quelque part il dit " Le sélecteur de données vous aide à explorer les données disponibles pour les règles. 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") ".

Pour un didacticiel vidéo qui illustre l'importance de cette Entity has fieldcondition, reportez-vous à Types de données et sélection de données , en particulier ce qui est affiché entre 13h30 et 17h30 environ.


Re: cette deuxième option, si je comprends bien, vous ne pouvez utiliser que des ensembles d' actions , pas des ensembles de règles , en tant qu'actions disponibles dans Views Bulk Operations (VBO). Apparemment, cela est dû au fait que la vue est censée assumer la charge de vérifier que les entités à traiter sont des entités légitimes que l'utilisateur souhaite (à la fois en utilisant des filtres de vues [réguliers et / ou contextuels] et en cochant les cases à cocher des entités souhaitées uniquement). à traiter), les conditions ne devraient donc pas être nécessaires. Mais cela met effectivement la clé de la tirelire à l' intérieur de la tirelire. Les règles conditionnelles peuvent donc être exactement ce que le médecin a ordonné.
Joel MMCC
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.