Como alterar um valor de campo com uma ação de regras?

20

Estou tentando configurar uma ação de regras que pode alterar o valor de um campo. Criei um conjunto de ações com um tipo de dados Nó. Quando vou criar uma ação de regras, tenho acesso a todos os campos do nó Drupal padrão, mas nenhum campo.

Isso simplesmente não é possível? Preciso de algum outro módulo para fazer isso funcionar?

Joren
fonte

Respostas:

15

Você primeiro precisa adicionar uma condição para verificar se o campo existe nesse nó, somente então ele está disponível para as ações. Há uma condição específica para fazer isso.

Berdir
fonte
11
Também precisa ser um conjunto de regras para ter acesso às condições aparentemente.
JOREN #
6

O uso da condição "A entidade possui campo" (ou "o conteúdo é do tipo") tornará os campos disponíveis com a seleção de dados na Ação "Definir um valor de dados".

jcarballo
fonte
2

Para não contradizer as duas respostas anteriores, mas na IMO estão faltando (ignorando?) Uma parte crucial da pergunta, que é " ... eu criei um conjunto de ações ... ". É verdade que parte da solução é, com certeza, " Entity has field" (como na resposta do jcarballo ). Porém, por design de um conjunto de ações de regras , você não pode incluir nenhuma condição de regras nele. Portanto, é necessário um dos seguintes procedimentos para concluir a resposta a esta pergunta:

Com o exposto acima, você poderá criar uma Ação de Regras como (por exemplo) "Definir um valor de dados" para o seu campo, se você também adicionar uma condição de Regras Entity has field(relacionada ao campo para o qual deseja definir um valor) . E certifique-se de adicionar essa Entity has fieldcondição ANTES de outras Regras Condições nas quais você pode consultar este campo (se houver alguma dessas condições em sua regra).

Isso também é mencionado na interface do usuário do Rules, por exemplo, quando você adiciona uma condição de "comparação de dados": em algum lugar diz " O seletor de dados ajuda a detalhar os dados disponíveis para o Rules. Para fazer com que os campos de entidade apareçam no seletor de dados , pode ser necessário usar a condição 'entidade possui campo' (ou 'conteúdo é do tipo') ".

Para um tutorial em vídeo que ilustra a importância dessa Entity has fieldcondição, consulte Tipos de dados e seleção de dados , especialmente o que é mostrado entre 13:30 e 17:30.

Pierre.Vriens
fonte
Re: essa segunda opção, como eu o entendo, você pode usar conjuntos de ações , não conjuntos de regras , como ações disponíveis em Views Bulk Operations (VBO). Aparentemente, isso ocorre porque o View deve assumir o ônus de verificar se as entidades a serem processadas são legítimas que o usuário deseja (usando os Filtros de visualizações [regulares e / ou contextuais] e marcando as caixas de seleção apenas das entidades desejadas processar), portanto, as condições não devem ser necessárias. Mas isso efetivamente coloca a chave do cofrinho dentro do cofrinho. Portanto, as regras condicionais podem ser exatamente o que o médico ordenou.
Joel MMCC