function uc_extra_fields_pane_form_validate in Extra Fields Checkout Pane 6
File
- ./
uc_extra_fields_pane.module, line 134
Code
function uc_extra_fields_pane_form_validate($form, &$form_state) {
$field = $form_state['values']['ucxf']['add_one_more_field'];
// No label.
if (!$field['label']) {
form_set_error('ucxf][add_one_more_field][label', t('Add new field: you need to provide a label.'));
}
// No field name.
if (!$field['field_name']) {
form_set_error('ucxf][add_one_more_field][field_name', t('Add new field: you need to provide a field name.'));
}
else {
$field_name = $field['field_name'];
// Add the 'uc_extra_' prefix.
if (substr($field_name, 0, 8) != 'uc_extra_') {
$field_name = 'ucxf_' . $field_name;
form_set_value($form['ucxf']['add_one_more_field']['field_name'], $field_name, $form_state);
}
// Invalid field name.
if (!preg_match('!^ucxf_[a-z0-9_]+$!', $field_name)) {
form_set_error('ucxf][add_one_more_field][field_name', t('Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores.', array(
'%field_name' => $field_name,
)));
}
// considering prefix uc_extra_ and suffix _billing/_delivery : no more than 23 characters (32 max for a db field)
if (strlen($field_name) > 23) {
form_set_error('ucxf][add_one_more_field][field_name', t('Add new field: the field name %field_name is too long. The name is limited to 23 characters, including the \'ucxf_\' prefix.', array(
'%field_name' => $field_name,
)));
}
// Field name already exists.
$count = db_result(db_query("select count(*) from {uc_extra_fields} where field_db_name='%s'", $field_name));
if ((int) $count > 0) {
form_set_error('ucxf][add_one_more_field][field_name', t('Add new field: the field name %field_name already exists.', array(
'%field_name' => $field_name,
)));
}
}
}