function views_handler_argument::default_argument_form

Same name in other branches
  1. 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;
}