function field_jquery_tabs_field_widget_form in jQuery Tabs Field 7
Same name and namespace in other branches
- 7.4 field_jquery_tabs.module \field_jquery_tabs_field_widget_form()
- 7.2 field_jquery_tabs.module \field_jquery_tabs_field_widget_form()
- 7.3 field_jquery_tabs.module \field_jquery_tabs_field_widget_form()
Implements hook_field_widget_form().
File
- ./
field_jquery_tabs.module, line 37 - jQuery Tabs Field module allows you to create jQuery tabs field.
Code
function field_jquery_tabs_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$base = $element;
$settings = $instance['settings'];
$element += array(
'#type' => 'fieldset',
'#tree' => TRUE,
'#title' => isset($instance['label']) ? $instance['label'] : NULL,
'#description' => isset($instance['description']) ? $instance['description'] : NULL,
'#prefix' => '<div id="jquery-tabs-wrapper">',
'#suffix' => '</div>',
);
$field_name = $field['field_name'];
$field_data = array(
'field_name' => $field_name,
'langcode' => $langcode,
'delta' => $delta,
);
$form_state['jquery_tabs']['field_data'] = $field_data;
// Build the fieldset with the proper number of names. We'll use
// $form_state['num_names'] to determine the number of textfields to build.
if (empty($form_state['num_names'])) {
if (isset($items[$delta])) {
$form_state['num_names'] = _field_jquery_tabs_entered_tab_count($items[$delta]);
}
else {
$form_state['num_names'] = 1;
}
}
for ($i = 1; $i <= $form_state['num_names']; $i++) {
$element['tab_title_' . $i] = array(
'#type' => 'textfield',
'#title' => t('Tab @value Title', array(
'@value' => $i,
)),
'#size' => 50,
'#maxlength' => 50,
'#description' => t('Enter title for the Tab @value', array(
'@value' => $i,
)),
'#required' => $delta == 0 && $instance['required'] && $i == 1 ? TRUE : FALSE,
'#default_value' => isset($items[$delta]['tab_title_' . $i]) ? $items[$delta]['tab_title_' . $i] : NULL,
);
$element['tab_body_' . $i] = array(
'#type' => 'textarea',
'#title' => t('Tab @value Body', array(
'@value' => $i,
)),
'#cols' => 60,
'#rows' => 5,
'#description' => t('Enter body for the Tab @value', array(
'@value' => $i,
)),
'#default_value' => isset($items[$delta]['tab_body_' . $i]) ? $items[$delta]['tab_body_' . $i] : NULL,
);
}
if ($form_state['num_names'] < 7) {
$element['add_jquery_tab'] = array(
'#type' => 'submit',
'#value' => t('Add one more'),
'#submit' => array(
'_field_jquery_tabs_add_more_add_one',
),
'#ajax' => array(
'callback' => '_field_jquery_tabs_add_more_callback',
'wrapper' => 'jquery-tabs-wrapper',
),
);
}
if ($form_state['num_names'] > 1) {
$element['remove_jquery_tab'] = array(
'#type' => 'submit',
'#value' => t('Remove one'),
'#submit' => array(
'_field_jquery_tabs_add_more_remove_one',
),
'#ajax' => array(
'callback' => '_field_jquery_tabs_add_more_callback',
'wrapper' => 'jquery-tabs-wrapper',
),
);
}
return $element;
}