function rules_admin_form_add_condition in Rules 6
Returns the form for the first condition add page
File
- rules_admin/
rules_admin.rule_forms.inc, line 320
Code
function rules_admin_form_add_condition(&$form_state, &$element, $parent) {
if (!isset($parent['#type']) || isset($parent['#logical_op']) && $parent['#logical_op']) {
$vars = $form_state['proxy']
->get_available_variables(0);
$all_conditions = rules_get_conditions();
$satisfied_conditions = rules_admin_filter_info($vars, $all_conditions);
$unsatisfied_conditions = array_filter(array_diff_assoc($all_conditions, $satisfied_conditions), 'rules_admin_element_filter');
$form['name'] = array(
'#type' => 'select',
'#title' => t('Select the condition to add'),
'#options' => rules_admin_get_grouped_labels($satisfied_conditions),
'#required' => TRUE,
);
if (!empty($unsatisfied_conditions)) {
// Hold all the actions that are disabled because argument(s) are missing.
$form['unsatisfied'] = array(
'#type' => 'fieldset',
'#title' => format_plural(count($unsatisfied_conditions), '1 condition is not configurable', '@count conditions are not configurable'),
'#description' => t("The following conditions aren't available in this context because they require arguments that don't exist in your rule. If you want to use any of these conditions, you must first add some action that adds variables of this kind in a previous rule, or have an event that passes the required variables."),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['unsatisfied']['items'] = array(
'#type' => 'item',
'#unsatisfied_grouped_options' => $unsatisfied_conditions,
'#theme' => 'rules_admin_unsatisfied_elements',
);
}
$form['submit'] = array(
'#type' => 'submit',
'#weight' => 10,
'#value' => t('Next'),
'#submit' => array(
'rules_admin_form_add_submit',
),
);
return $form;
}
}