function views_handler_argument::default_argument_form

Same name in other branches
  1. 6.x-3.x handlers/views_handler_argument.inc \views_handler_argument::default_argument_form()

Provide a form for selecting the default argument.

Used 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 602

Class

views_handler_argument
Base class for arguments.

Code

public 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'],
        '#dependency' => array(
            'radio:options[default_action]' => array(
                '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,
                    '#dependency' => array(
                        'radio:options[default_action]' => array(
                            'default',
                        ),
                        'edit-options-default-argument-type' => array(
                            $id,
                        ),
                    ),
                    '#dependency_count' => 2,
                );
                $options[$id] = $info['title'];
                $plugin->options_form($form['argument_default'][$id], $form_state);
            }
        }
    }
    asort($options);
    $form['default_argument_type']['#options'] = $options;
}