¿Cómo verifico si una casilla de verificación de encendido / apagado está marcada?

8

No parece haber ninguna forma de marcar el valor de una sola casilla de verificación de encendido / apagado (booleano) en el selector de datos para el módulo Reglas. Si "field-MyField" = marcado o "field-MyField" = 1, entonces haga 'blah'. ¿Pueden las reglas hacer esto? Debo estar perdiendo algo

usuario785179
fuente
Usar PHP personalizado no funciona cuando hago esto: echo ([node: field-MyField] == 1) ;. PHP está funcionando porque si solo devuelvo true ;, entonces funciona. ¿¡¿¿¿Entonces qué está pasando???!?
user785179
Bueno, resulta que no puedes usar tokens en el PHP personalizado.
user785179

Respuestas:

6

Aquí hay una combinación de detalles correctos e incorrectos, por lo que intentaré resolverlos. Esto es para Reglas en Drupal 7, y se aplica al trabajo con un campo booleano.

Para hacer una condición que verifique el estado booleano de un campo (verdadero / falso, sí / no, marcado / no marcado), primero asegúrese de que puede acceder al campo en el selector de datos. Como Bojan mencionó anteriormente, y como se menciona en la página de administración en sí,

Para que los campos de entidad aparezcan en el selector de datos, es posible que deba usar la condición 'entidad tiene campo' (o 'el contenido es de tipo').

El operador que desea elegir es "igual".

Para el campo "Valor de datos", puede ingresar valores en dos modos, asegúrese de estar usando el "modo de entrada directa". Entonces debería poder marcar la casilla de verificación que representa VERDADERO para ese campo.

Traducido, lo que estás diciendo es: "¿Es este campo igual a VERDADERO?" También puede negarlo dejándolo sin marcar o usando la opción "negar" a continuación.

ezrock
fuente
Le agradezco que se haya tomado el tiempo para explicar esto. No he tenido que tocar algo como esto otra vez, pero su explicación tiene sentido. Espero que ayude a los demás.
user785179
3

Simplemente agregue una condición de "Comparación de datos", especifique el nombre del campo e ingrese "1" como valor. Si el campo no aparece en la lista de campos, primero agregue una condición "La entidad tiene campo" y seleccione el campo allí. Luego agregue la "Comparación de datos" a continuación.

Bojan Zivanovic
fuente
Pongo un 1 en el valor de datos y obtengo: El selector de datos 1 para el valor del parámetro no es válido. ¿Alguna otra idea? Para aclarar, mis datos para comparar el campo es nodo: field-MyField. La comparación se establece en IGUAL. El valor de los datos se establece en 1.
user785179
2

Después de muchas horas de prueba y error, terminé resolviendo el problema. No me pidas que explique esto porque no tiene sentido para mí. Si alguien puede explicar, ¡eso sería muy apreciado!

Establecí una nueva condición usando COMPARACIÓN DE DATOS. Luego selecciono "node: field-MyField: 0" (en realidad hay hasta 4 de estos: node: field-MyField: 1, node: field-MyField: 2, etc.). Luego establecí la COMPARACIÓN en IGUAL. Luego, en la segunda parte del selector de datos, ya no es un selector de datos de cuadro de entrada de texto, sino que ahora aparece como un selector de datos de casilla de verificación. Cuando hago clic en el selector de datos de la casilla de verificación y presiono guardar, ahora el módulo de reglas funciona correctamente.

golpea la cabeza en la pared

usuario785179
fuente
0

En la versión actualizada (¿fija?) De Reglas, para hacer esto, agregue una condición de Comparación de datos, seleccione el campo apropiado en el selector de datos node:field-to-check, luego, en el siguiente paso, deje el operador de comparación como equals. En el grupo de valor de datos, habrá una casilla de verificación útil que se denominará "Reglas de valor de datos" y se comparará con el valor de la casilla de verificación presentada en esta página.

Zxaos
fuente
0

Lo más probable es que tenga que usar el Soporte de formularios de reglas .

Una vez que active las reglas del formulario para un formulario específico, puede usar la condición como: El elemento del formulario tiene valor . Esta condición se puede usar cuando el formulario se está creando o validando .

Otro módulo a considerar son las Reglas de la entidad .

kenorb
fuente