' . "\n",
);
if ($field['explain_text']) {
$element[$field_key]['#description'] = $field['explain_text'];
if ($max_length > 0 && $field['max_length_notify']) {
$element[$field_key]['#description'] .= t(' You can enter a maximum of %max characters for this field.', array('%max' => $max_length));
}
}
else if ($max_length > 0 && $field['max_length_notify']) {
$element[$field_key]['#description'] = t('You can enter a maximum of %max characters for this field.', array('%max' => $max_length));
}
return $element;
}
function explainfield_select_validate($element, &$form_state) {
$field_name = $element['#field_name'];
$multiples_count = count($form_state['values'][$field_name]);
$field = content_fields($element['#field_name'], $element['#type_name']);
for ($i = 0; $i < $multiples_count; $i++) {
// If the select/button/check value is not equal to the trigger value, there is
// no reason to save any lingering value for the explain field itself.
if ($form_state['values'][$field_name][$i]['value'] != $field['trigger_value']) {
$form_state['values'][$field_name][$i]['explainfield'] = '';
}
else {
// Now make sure it *is* filled out and correctly so if it's supposed to be.
if (trim($form_state['values'][$field_name][$i]['explainfield']) == '') {
$error_field = $field_name . '][' . $i . '][explainfield';
form_set_error($error_field, t('Please fill the optional form in %label if you select this option.', array('%label' => t($field['widget']['label']))));
}
else {
if ($field['max_length'] > 0) {
$error_field = $field['field_name'] .']['. $i .'][explainfield';
$data = $form_state['values'][$field_name][$i];
if (strlen($data['explainfield']) > $field['max_length']) {
form_set_error($error_field, t('There is a limit of %max characters on %label; your current entry contains %used characters.', array('%max' => $field['max_length'], '%label' => $field['widget']['label'], '%used' => strlen($data['explainfield']))));
}
}
}
}
}
}
function explainfield_buttons_validate($element, &$form_state) {
$field_name = $element['#field_name'];
$multiples_count = count($form_state['values'][$field_name]);
$field = content_fields($element['#field_name'], $element['#type_name']);
for ($i = 0; $i < $multiples_count; $i++) {
// If the select/button/check value is not equal to the trigger value, there is
// no reason to save any lingering value for the explain field itself.
if ($form_state['values'][$field_name][$i]['value'] != $field['trigger_value']) {
$form_state['values'][$field_name][$i]['explainfield'] = '';
}
else {
// Now make sure it *is* filled out and correctly so if it's supposed to be.
if (trim($form_state['values'][$field_name][$i]['explainfield']) == '') {
$error_field = $field_name . '][' . $i . '][explainfield';
form_set_error($error_field, t('Please fill the optional form in %label if you select this option.', array('%label' => t($field['widget']['label']))));
}
else {
if ($field['max_length'] > 0) {
$error_field = $field['field_name'] .']['. $i .'][explainfield';
$data = $form_state['values'][$field_name][$i];
if (strlen($data['explainfield']) > $field['max_length']) {
form_set_error($error_field, t('There is a limit of %max characters on %label; your current entry contains %used characters.', array('%max' => $field['max_length'], '%label' => $field['widget']['label'], '%used' => strlen($data['explainfield']))));
}
}
}
}
}
}