Как программно установить условное поле с функциональностью OR в Drupal 7
В mymodule_form_alter() я программно устанавливаю состояния для моих условных полей. IE
$form['my_field_one']['#states'] = array(
'visible' => array(
':input[name="my_dependee_field[und]"]' => array('value' => 'primary'),
),
);
И это прекрасно работает!
Однако мне нужно присвоить некоторым моим полям функциональность OR (несколько допустимых значений зависимых) и не могу понять, как назначить это программно (пожалуйста, извините за мой ограниченный опыт работы с PHP).
Я пробовал некоторые вещи, такие как...
$form['my_field_one']['#states'] = array(
'visible' => array(
':input[name="my_dependee_field[und]"]' => array('value' => array('0' => 'primary','1' => 'secondary',),),
),
);
... с (очевидно) не везет.
Может ли любая добрая душа протянуть руку помощи или указать мне правильное направление. Крайне важно, чтобы я сделал это программно.
Любая помощь приветствуется.
СПАСИБО!
1 ответ
Решение
Обновите свой #state
используя массив с двумя возможными значениями:
$form['my_field_one']['#states'] = array(
'visible' => array(
':input[name="my_dependee_field[und]"]' => array(
array('value' => 'primary'),
array('value' => 'secondary'),
),
),
);