function footable_plugin_style_footable::options_form in FooTable 7.2
Render the given style.
Overrides views_plugin_style_table::options_form
File
- views/
footable_plugin_style_footable.inc, line 64 - Contains the FooTable style plugin.
Class
- footable_plugin_style_footable
- Style plugin to render a FooTable.
Code
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
// Check if fields have been added. Table style plugin will set
// error_markup if fields are not added.
// @see views_plugin_style_table::options_form()
if (isset($form['error_markup'])) {
return;
}
// Override default plugin theme.
$form['#theme'] = 'footable_style_plugin_table';
$columns = $this
->sanitize_columns($this->options['columns']);
foreach ($columns as $field => $column) {
$safe = str_replace(array(
'][',
'_',
' ',
), '-', $field);
$form['info'][$field]['type'] = array(
'#type' => 'select',
'#options' => array(
'' => t('Automatic'),
'number' => t('Number'),
'date' => t('Date'),
'text' => t('Text'),
'html' => t('HTML'),
),
'#default_value' => !empty($this->options['info'][$field]['type']) ? $this->options['info'][$field]['type'] : '',
'#dependency' => array(
'edit-style-options-columns-' . $safe => array(
$field,
),
),
);
}
$form['footable'] = array(
'#type' => 'fieldset',
'#title' => t('FooTable settings'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['footable']['expand_all'] = array(
'#type' => 'select',
'#title' => t('Expand all rows'),
'#description' => t('Whether or not to expand all rows of the table.'),
'#options' => array(
FALSE => t('Disabled'),
TRUE => t('Enabled'),
),
'#default_value' => $this->options['footable']['expand_all'],
);
$form['footable']['expand_first'] = array(
'#type' => 'select',
'#title' => t('Expand first row'),
'#description' => t('Whether or not to expand the first row of the table.'),
'#options' => array(
FALSE => t('Disabled'),
TRUE => t('Enabled'),
),
'#default_value' => $this->options['footable']['expand_first'],
'#states' => array(
'invisible' => array(
':input[name="style_options[footable][expand_all]"]' => array(
'value' => 1,
),
),
),
);
$form['footable']['show_header'] = array(
'#type' => 'select',
'#title' => t('Show header'),
'#description' => t('Whether or not to display a header row in the table.'),
'#options' => array(
TRUE => t('Yes'),
FALSE => t('No'),
),
'#default_value' => $this->options['footable']['show_header'],
);
$form['footable']['toggle_column'] = array(
'#type' => 'select',
'#title' => t('Expandable column'),
'#description' => t('Specify which column the toggle is appended to in a row.'),
'#options' => array(
'first' => t('First'),
'last' => t('Last'),
),
'#default_value' => $this->options['footable']['toggle_column'],
);
// Icons.
$icons = footable_icons();
$form['footable']['icon_collapsed'] = array(
'#type' => 'select',
'#title' => t('Collapsed icon style'),
'#description' => t('The icon displayed when a row is collapsed.'),
'#options' => $icons,
'#default_value' => $this->options['footable']['icon_collapsed'],
);
$form['footable']['icon_expanded'] = array(
'#type' => 'select',
'#title' => t('Expanded icon style'),
'#description' => t('The icon displayed when a row is expanded.'),
'#options' => $icons,
'#default_value' => $this->options['footable']['icon_expanded'],
);
// Bootstrap style configuration.
if (variable_get('footable_plugin_type', 'standalone') == 'bootstrap') {
$form['footable']['bootstrap'] = array(
'#type' => 'fieldset',
'#title' => t('Bootstrap'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['footable']['bootstrap']['striped'] = array(
'#type' => 'checkbox',
'#title' => t('Striped'),
'#default_value' => $this->options['footable']['bootstrap']['striped'],
);
$form['footable']['bootstrap']['bordered'] = array(
'#type' => 'checkbox',
'#title' => t('Bordered'),
'#default_value' => $this->options['footable']['bootstrap']['bordered'],
);
$form['footable']['bootstrap']['hover'] = array(
'#type' => 'checkbox',
'#title' => t('Hover'),
'#default_value' => $this->options['footable']['bootstrap']['hover'],
);
$form['footable']['bootstrap']['condensed'] = array(
'#type' => 'checkbox',
'#title' => t('Condensed'),
'#default_value' => $this->options['footable']['bootstrap']['condensed'],
);
}
// Components.
$form['footable']['component'] = array(
'#type' => 'fieldset',
'#title' => t('Components'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
// Filtering.
$form['footable']['component']['filtering'] = array(
'#type' => 'fieldset',
'#title' => t('Filtering'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['footable']['component']['filtering']['enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enabled'),
'#default_value' => $this->options['footable']['component']['filtering']['enabled'],
);
$form['footable']['component']['filtering']['delay'] = array(
'#type' => 'textfield',
'#title' => t('Delay'),
'#description' => t('The number of milliseconds before a search input filter is applied after it changes.'),
'#default_value' => $this->options['footable']['component']['filtering']['delay'],
'#element_validate' => array(
'element_validate_integer_positive',
),
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['filtering']['ignore_case'] = array(
'#type' => 'select',
'#title' => t('Ignore case'),
'#description' => t('Whether or not to ignore case when filtering.'),
'#options' => array(
TRUE => t('Yes'),
FALSE => t('No'),
),
'#default_value' => $this->options['footable']['component']['filtering']['ignore_case'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['filtering']['min'] = array(
'#type' => 'textfield',
'#title' => t('Minimum characters'),
'#description' => t('The minimum number of characters in the search input before auto applying the filter.'),
'#default_value' => $this->options['footable']['component']['filtering']['min'],
'#element_validate' => array(
'element_validate_integer_positive',
),
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['filtering']['placeholder'] = array(
'#type' => 'textfield',
'#title' => t('Placeholder'),
'#description' => t('The placeholder text displayed within the search input.'),
'#default_value' => $this->options['footable']['component']['filtering']['placeholder'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['filtering']['position'] = array(
'#type' => 'select',
'#title' => t('Position'),
'#description' => t('The position of the search input within the filter row.'),
'#options' => array(
'right' => t('Right'),
'left' => t('Left'),
'center' => t('Center'),
),
'#default_value' => $this->options['footable']['component']['filtering']['position'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['filtering']['space'] = array(
'#type' => 'select',
'#title' => t('Space'),
'#description' => t('How to treat whitespace.'),
'#options' => array(
'AND' => 'AND',
'OR' => 'OR',
),
'#default_value' => $this->options['footable']['component']['filtering']['space'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][filtering][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
// Paging.
$form['footable']['component']['paging'] = array(
'#type' => 'fieldset',
'#title' => t('Paging'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['footable']['component']['paging']['enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enabled'),
'#default_value' => $this->options['footable']['component']['paging']['enabled'],
);
$form['footable']['component']['paging']['count_format'] = array(
'#type' => 'textfield',
'#title' => t('Count format'),
'#description' => t('The string used as a format to generate the count text.'),
'#default_value' => $this->options['footable']['component']['paging']['count_format'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][paging][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['paging']['current'] = array(
'#type' => 'textfield',
'#title' => t('Current'),
'#description' => t('The page number to display when first initialized.'),
'#default_value' => $this->options['footable']['component']['paging']['current'],
'#element_validate' => array(
'element_validate_integer_positive',
),
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][paging][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['paging']['limit'] = array(
'#type' => 'textfield',
'#title' => t('Limit'),
'#description' => t('The maximum number of page links to display in the pagination control.'),
'#default_value' => $this->options['footable']['component']['paging']['limit'],
'#element_validate' => array(
'element_validate_integer_positive',
),
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][paging][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['paging']['position'] = array(
'#type' => 'select',
'#title' => t('Position'),
'#description' => t('The position of the pagination control within the paging row.'),
'#options' => array(
'right' => t('Right'),
'left' => t('Left'),
'center' => t('Center'),
),
'#default_value' => $this->options['footable']['component']['paging']['position'],
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][paging][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['footable']['component']['paging']['size'] = array(
'#type' => 'textfield',
'#title' => t('Size'),
'#description' => t('The number of rows per page.'),
'#default_value' => $this->options['footable']['component']['paging']['size'],
'#element_validate' => array(
'element_validate_integer_positive',
),
'#states' => array(
'visible' => array(
':input[name="style_options[footable][component][paging][enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
// Sorting.
$form['footable']['component']['sorting'] = array(
'#type' => 'fieldset',
'#title' => t('Sorting'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['footable']['component']['sorting']['enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enabled'),
'#default_value' => $this->options['footable']['component']['sorting']['enabled'],
);
// Breakpoints overwrite.
$form['footable']['overwrite'] = array(
'#type' => 'fieldset',
'#title' => t('Overwrite breakpoints'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
foreach (footable_breakpoint_load_multiple() as $breakpoint) {
$form['footable']['overwrite'][$breakpoint->machine_name] = array(
'#type' => 'textfield',
'#title' => check_plain($breakpoint->name),
'#default_value' => isset($this->options['footable']['overwrite'][$breakpoint->machine_name]) ? $this->options['footable']['overwrite'][$breakpoint->machine_name] : NULL,
'#element_validate' => array(
'element_validate_integer_positive',
),
'#field_suffix' => 'px',
'#attributes' => array(
'placeholder' => $breakpoint->breakpoint,
),
);
}
// Breakpoints.
$form['footable']['breakpoint'] = array(
'#type' => 'fieldset',
'#title' => t('Collapsed columns'),
'#description' => t('Select the "breakpoints" where a particular column should be hidden.'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$breakpoints = array();
foreach (footable_breakpoint_load_all(TRUE) as $breakpoint) {
$breakpoints[$breakpoint->machine_name] = check_plain($breakpoint->name);
}
foreach ($this->display->handler
->get_field_labels() as $name => $label) {
$form['footable']['breakpoint'][$name] = array(
'#title' => check_plain($label),
'#type' => 'checkboxes',
'#options' => $breakpoints,
'#default_value' => isset($this->options['footable']['breakpoint'][$name]) ? $this->options['footable']['breakpoint'][$name] : array(),
'#multiple' => TRUE,
);
}
}