web-dev-qa-db-fra.com

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

J'essaye de mettre en place une Rules Action 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 noeud par défaut Drupal, mais pas de champs.

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

19
Joren

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

15
Berdir

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".

6
jcarballo

Pour ne pas contredire les deux réponses précédentes, mais à l'OMI, il leur manque (ignorant?) Une partie cruciale de la question, qui est "... J'ai créé un ensemble d'actions .. . ". Certes, une partie de la solution est, à peu près sûr, "Entity has field "(comme dans la réponse de jcarballo ). Mais, par conception d'un ensemble de règles Action, vous ne pouvez pas y inclure de condition de règles. À cet effet, soit des éléments suivants sont nécessaires 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é au champ pour lequel vous souhaitez définir une valeur). Et assurez-vous d'ajouter que Entity has field condition 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 également 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, elle indique " Le sélecteur de données vous aide à explorer les données disponibles pour Rules. Pour que les champs d'entité apparaissent dans le sélecteur de données, vous devrez peut-être utiliser le 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 field condition, reportez-vous à Types de données et sélection des données , en particulier ce qui y est affiché entre 13h30 et 17h30 environ.

2
Pierre.Vriens