function views_fieldsets_fieldset_field_handler::options_form in Views fieldsets 7
Same name and namespace in other branches
- 7.2 views/views_fieldsets_fieldset_field_handler.inc \views_fieldsets_fieldset_field_handler::options_form()
Default options form provides the label widget that all fields should have.
Overrides views_handler_field::options_form
File
- views/
views_fieldsets_fieldset_field_handler.inc, line 33 - A handler to provide a Views Fieldsets field.
Class
- views_fieldsets_fieldset_field_handler
- @file A handler to provide a Views Fieldsets field.
Code
function options_form(&$form, &$form_state) {
// These options are required by Views.
$keep_form_elements = element_children($form);
// These options are useful for a fieldset.
$keep_form_elements[] = 'custom_label';
$keep_form_elements[] = 'label';
$keep_form_elements[] = 'alter';
// These options are useful 'alter' options. Most aren't.
$keep_rewrite_elements = array(
'alter_text',
'text',
'help',
'trim_whitespace',
'nl2br',
);
// Get the plentiful usual suspects.
parent::options_form($form, $form_state);
// Remove options that aren't relevant.
foreach (element_children($form) as $name) {
if (!in_array($name, $keep_form_elements)) {
$form[$name]['#access'] = FALSE;
}
}
// Alter custom_label (always ON).
$element =& $form['custom_label'];
$element['#default_value'] = $element['#value'] = TRUE;
$element['#type'] = 'hidden';
// Alter label to make it fit our needs.
$element =& $form['label'];
unset($element['#dependency']);
$element['#title'] = t('Fieldset title');
$element['#required'] = TRUE;
$element['#description'] = t('The back-end admin label and default front-end fieldset legend. You can override the fieldset legend by rewriting below. Will be translated either way.');
// Open 'alter' fieldset.
$form['alter']['#collapsed'] = $form['alter']['#collapsible'] = FALSE;
$form['alter']['#description'] = t('This will alter the fieldset <code><legend></code>. Default would be the above <em>Fieldset title</em>.');
// Hide most 'alter' stuff.
foreach (element_children($form['alter']) as $name) {
if (!in_array($name, $keep_rewrite_elements)) {
$form['alter'][$name]['#access'] = FALSE;
}
}
// Don't hide 'hide_empty', because it's useful for empty fieldsets (due to empty fields).
unset($form['hide_empty']['#access'], $form['hide_empty']['#fieldset']);
$form['hide_empty']['#weight'] = 200;
// Add 'fieldset' tree with the usual fieldset stuff.
$form['fieldset'] = array(
'#tree' => TRUE,
);
$fieldset_types = array(
'fieldset' => '<fieldset>',
'div' => '<div>',
);
$form['fieldset']['type'] = array(
'#type' => 'select',
'#title' => t('Display type'),
'#options' => $fieldset_types,
'#default_value' => $this->options['fieldset']['type'],
'#description' => t('A <code><fieldset></code> will always show its title as <code><legend></code>. A <code><div></code> will never show the title.'),
);
$form['fieldset']['classes'] = array(
'#type' => 'textfield',
'#title' => t('HTML classes'),
'#default_value' => $this->options['fieldset']['classes'],
'#description' => t('The usual Views row tokens are available. If you leave this empty, the untranslated <em>Fieldset title</em> will be added.'),
);
$form['fieldset']['id'] = array(
'#type' => 'textfield',
'#title' => t('HTML ID'),
'#default_value' => $this->options['fieldset']['id'],
'#description' => t('The usual Views row tokens are available.') . ' ' . t('You want to make sure this ID is very unique by using tokens.'),
);
$form['fieldset']['collapsible'] = array(
'#type' => 'checkbox',
'#title' => t('Collapsible'),
'#default_value' => $this->options['fieldset']['collapsible'],
);
$form['fieldset']['collapsed'] = array(
'#type' => 'checkbox',
'#title' => t('Collapsed'),
'#default_value' => $this->options['fieldset']['collapsed'],
);
}