function rules_admin_form_add_rule_set_validate in Rules 6
Validates the set and builds it -> $form_state['set']
File
- rules_admin/
rules_admin.sets.inc, line 247
Code
function rules_admin_form_add_rule_set_validate($form, &$form_state) {
// Validate machine name.
rules_admin_validate_machine_name('rule_sets', 'name', $form_state['values']['name']);
//validate the arguments
unset($form_state['values']['args']['rules_more']);
foreach ($form_state['values']['args'] as $i => $values) {
if (array_filter($values)) {
foreach (array(
'name',
'type',
'label',
) as $key) {
if (!$values[$key]) {
form_set_error(implode('][', array(
'args',
$i,
$key,
)), t('All fields of an argument are required.'));
}
}
if (!preg_match('/^[a-z][a-z0-9_]*$/', $values['name'])) {
form_set_error(implode('][', array(
'args',
$i,
'name',
)), t('The name may contain only digits, numbers and underscores.'));
}
}
else {
unset($form_state['values']['args'][$i]);
}
}
//build the set
$set_info = array(
'arguments' => array(),
);
$set_info['label'] = $form_state['values']['label'];
$set_info['name'] = $form_state['values']['name'];
foreach ($form_state['values']['args'] as $i => $values) {
if (isset($set_info['arguments'][$values['name']])) {
form_set_error('args][' . $i . '][name', t('Each name may be used only once.'));
}
else {
$set_info['arguments'][$values['name']] = array(
'label' => $values['label'],
'type' => $values['type'],
);
}
}
$form_state['set'] = $set_info;
}