Não parece haver nenhuma maneira de marcar o valor de uma única caixa de seleção liga / desliga (booleano) no seletor de dados do módulo Regras. Se "field-MyField" = marcado ou "field-MyField" = 1, faça 'blah'. Regras podem fazer isso? Eu devo estar esquecendo alguma coisa
8
Respostas:
Há uma mistura de detalhes corretos e incorretos aqui, então vou tentar resolvê-los. Isso se aplica às regras do Drupal 7 e se aplica ao trabalho com um campo booleano.
Para criar uma condição que verifique o estado booleano de um campo (verdadeiro / falso, sim / não, marcado / desmarcado), primeiro verifique se você pode acessar o campo no seletor de dados. Como Bojan mencionou acima, e como mencionado na própria página de administração,
O operador que você deseja escolher é "igual".
Para o campo "Valor dos dados", você pode inserir valores em dois modos, verifique se está usando o "modo de entrada direta". Você deve poder marcar a caixa de seleção que representa VERDADEIRO para esse campo.
Traduzido, o que você está dizendo é: "Este campo é igual a VERDADEIRO?" Você também pode negá-lo, deixando desmarcado ou usando a opção "negar" abaixo.
fonte
Você acabou de adicionar uma condição "Comparação de dados", especificar o nome do campo e inserir "1" como o valor. Se o campo não aparecer na lista de campos, adicione primeiro uma condição "A entidade possui campo" e selecione o campo lá. Em seguida, adicione a "Comparação de dados" a seguir.
fonte
Depois de muitas horas de tentativa e erro, acabei resolvendo o problema. Não me peça para explicar isso, porque não faz sentido para mim. Se alguém puder explicar, isso seria muito apreciado!
Defino uma nova condição usando DATA COMPARISON. Em seguida, seleciono o "node: field-MyField: 0" (na verdade existem até 4 deles - node: field-MyField: 1, node: field-MyField: 2, etc.). Em seguida, defino a COMPARAÇÃO para IGUAL. Na segunda parte do seletor de dados, ele não é mais um seletor de dados da caixa de entrada de texto, mas agora aparece como um seletor de dados da caixa de seleção. Quando clico no seletor de dados da caixa de seleção e pressiono salvar, agora o módulo de regras está funcionando corretamente.
bate a cabeça na parede
fonte
Na versão atualizada (fixa?) Das Regras, para isso, adicione uma condição de Comparação de Dados, selecione o campo apropriado no seletor de dados e
node:field-to-check
, na próxima etapa, deixe o operador de comparação comoequals
. No grupo de valores Dados, haverá uma caixa de seleção útil, chamada "Valor de Dados". As regras serão comparadas com o valor da caixa de seleção, conforme enviado nesta página.fonte
Provavelmente você precisará usar o Suporte a formulários de regras .
Depois de ativar as regras do formulário para um formulário específico, você pode usar a condição como: O elemento Form tem valor . Essa condição pode ser usada quando o formulário está sendo criado ou validado .
Outro módulo a considerar são as Regras de entidade .
fonte