1 text.module | text_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) |
Implements hook_field_widget_form().
File
- core/
modules/ field/ modules/ text/ text.module, line 564 - Defines simple text field types.
Code
function text_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$summary_widget = array();
$main_widget = array();
switch ($instance['widget']['type']) {
case 'text_textfield':
$main_widget = $element + array(
'#type' => 'textfield',
'#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL,
'#size' => $instance['widget']['settings']['size'],
'#attributes' => array('class' => array('text-full')),
);
// If the field itself has a maxlength include that on the widget.
if (isset($field['settings']['max_length'])) {
$main_widget['#maxlength'] = $field['settings']['max_length'];
}
break;
case 'text_textarea_with_summary':
$display = !empty($items[$delta]['summary']) || !empty($instance['settings']['display_summary']);
$summary_widget = array(
'#type' => $display ? 'textarea' : 'value',
'#default_value' => isset($items[$delta]['summary']) ? $items[$delta]['summary'] : NULL,
'#title' => t('Summary'),
'#rows' => $instance['widget']['settings']['summary_rows'],
'#description' => t('Leave blank to use trimmed value of full text as the summary.'),
'#attached' => array(
'js' => array(backdrop_get_path('module', 'text') . '/js/text.js'),
),
'#attributes' => array('class' => array('text-summary')),
'#prefix' => '<div class="text-summary-wrapper">',
'#suffix' => '</div>',
'#weight' => -10,
);
// Fall through to the next case.
case 'text_textarea':
$main_widget = $element + array(
'#type' => 'textarea',
'#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL,
'#rows' => $instance['widget']['settings']['rows'],
'#attributes' => array('class' => array('text-full')),
);
break;
}
if ($main_widget) {
// Conditionally alter the form element's type if text processing is enabled.
if ($instance['settings']['text_processing']) {
$element = $main_widget;
$element['#type'] = 'text_format';
$element['#format'] = isset($items[$delta]['format']) ? $items[$delta]['format'] : NULL;
$element['#allowed_formats'] = $instance['settings']['allowed_formats'];
$element['#editor_uploads'] = TRUE;
$element['#base_type'] = $main_widget['#type'];
}
else {
$element['value'] = $main_widget;
}
}
if ($summary_widget) {
$element['summary'] = $summary_widget;
}
return $element;
}