function msnf_step_validate_name in Multistep Nodeform 7
Same name and namespace in other branches
- 6 includes/msnf.steps.inc \msnf_step_validate_name()
API for step name validation.
Pulled into separate function to be re-usable.
File
- includes/
msnf.steps.inc, line 280 - Step crud functions.
Code
function msnf_step_validate_name($step, $type_name) {
$errors = array();
// No label.
if (!$step['label']) {
$errors['label'][] = t('You need to provide a label.');
}
// No step name.
if (!$step['step_name']) {
$errors['step_name'][] = t('You need to provide a step name.');
}
else {
$step_name = $step['step_name'];
$step['step_type'] = !empty($step['step_type']) ? $step['step_type'] : 'standard';
// Add the 'step_' prefix.
if (drupal_substr($step_name, 0, 6) != 'step_') {
$step_name = 'step_' . $step_name;
}
// Invalid field name.
if (!preg_match('!^step_[a-z0-9_]+$!', $step_name)) {
$errors['step_name'][] = t('The step name %step_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores.', array(
'%step_name' => $step_name,
));
}
if (drupal_strlen($step_name) > 32) {
$errors['step_name'][] = t('The step name %step_name is too long. The name is limited to 32 characters, including the "step_" prefix.', array(
'%step_name' => $step_name,
));
}
// Group name already exists.
$steps = msnf_steps($type_name);
if (isset($steps[$step_name])) {
$errors['step_name'][] = t('The step name %step_name already exists.', array(
'%step_name' => $step_name,
));
}
if (empty($errors['step_name'])) {
$step['step_name'] = $step_name;
}
}
return array(
'step_name' => $step['step_name'],
'errors' => $errors,
);
}