function views_handler_argument::default_argument_form
Same name in other branches
- 7.x-3.x handlers/views_handler_argument.inc \views_handler_argument::default_argument_form()
Provide a form for selecting the default argument when the default action is set to provide default argument.
1 call to views_handler_argument::default_argument_form()
- views_handler_argument_date::default_argument_form in handlers/
views_handler_argument_date.inc - Add an option to set the default value to the current date.
1 method overrides views_handler_argument::default_argument_form()
- views_handler_argument_date::default_argument_form in handlers/
views_handler_argument_date.inc - Add an option to set the default value to the current date.
File
-
handlers/
views_handler_argument.inc, line 377
Class
- views_handler_argument
- Base class for arguments.
Code
function default_argument_form(&$form, &$form_state) {
$plugins = views_fetch_plugin_data('argument default');
$options = array();
// This construct uses 'hidden' and not markup because process doesn't
// run. It also has an extra div because the dependency wants to hide
// the parent in situations like this, so we need a second div to
// make this work.
$form['default_options_div_prefix'] = array(
'#type' => 'hidden',
'#id' => 'views-default-options',
'#prefix' => '<div><fieldset id="views-default-options"><legend>' . t('Provide default argument options') . '</legend>',
'#process' => array(
'views_process_dependency',
),
'#dependency' => array(
'radio:options[default_action]' => array(
'default',
),
),
);
$form['default_argument_skip_url'] = array(
'#type' => 'checkbox',
'#title' => t('Skip default argument for view URL'),
'#default_value' => $this->options['default_argument_skip_url'],
'#description' => t('Select whether to include this default argument when constructing the URL for this view. Skipping default arguments is useful e.g. in the case of feeds.'),
);
$form['default_argument_type'] = array(
'#prefix' => '<div id="edit-options-default-argument-type-wrapper">',
'#suffix' => '</div>',
'#type' => 'radios',
'#id' => 'edit-options-default-argument-type',
'#title' => t('Default argument type'),
'#default_value' => $this->options['default_argument_type'],
);
foreach ($plugins as $id => $info) {
if (!empty($info['no ui'])) {
continue;
}
$plugin = $this->get_plugin('argument default', $id);
if ($plugin) {
if ($plugin->access() || $this->options['default_argument_type'] == $id) {
$form['argument_default'][$id] = array(
'#type' => 'item',
'#input' => TRUE,
// trick it into checking input to make #process run
'#process' => array(
'views_process_dependency',
),
'#dependency' => array(
'radio:options[default_action]' => array(
'default',
),
'radio:options[default_argument_type]' => array(
$id,
),
),
'#dependency_count' => 2,
);
$options[$id] = $info['title'];
$plugin->options_form($form['argument_default'][$id], $form_state);
}
}
}
$form['default_options_div_suffix'] = array(
'#value' => '</fieldset></div>',
);
asort($options);
$form['default_argument_type']['#options'] = $options;
}