1 views_handler_argument.inc | views_handler_argument::default_argument_form(&$form, &$form_state) |
Provide a form for selecting the default argument when the default action is set to provide default argument.
File
- core/
modules/ views/ handlers/ views_handler_argument.inc, line 560 - @todo.
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();
$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' => 'select',
'#id' => 'edit-options-default-argument-type',
'#title' => t('Type'),
'#default_value' => $this->options['default_argument_type'],
'#states' => array(
'visible' => array(
':input[name="options[default_action]"]' => array('value' => 'default'),
),
),
// Views custom key, moves this element to the appropriate container
// under the radio button.
'#argument_option' => 'default',
);
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']['#argument_option'] = 'default';
$form['argument_default'][$id] = array(
'#prefix' => '<div id="edit-options-argument-default-options-' . $id . '-wrapper">',
'#suffix' => '</div>',
'#id' => 'edit-options-argument-default-options-' . $id,
'#type' => 'item',
// Even if the plugin has no options add the key to the form_state.
'#input' => TRUE,
'#states' => array(
'visible' => array(
':input[name="options[default_action]"]' => array('value' => 'default'),
':input[name="options[default_argument_type]"]' => array('value' => $id),
),
),
);
$options[$id] = $info['title'];
$plugin->options_form($form['argument_default'][$id], $form_state);
}
}
}
asort($options);
$form['default_argument_type']['#options'] = $options;
}