function views_content_plugin_display_ctools_context::options_form

Provide the default form for setting options.

Overrides views_plugin_display::options_form

File

views_content/plugins/views/views_content_plugin_display_ctools_context.inc, line 145

Class

views_content_plugin_display_ctools_context
The plugin that handles a block.

Code

public function options_form(&$form, &$form_state) {
    // It is very important to call the parent function here:
    parent::options_form($form, $form_state);
    switch ($form_state['section']) {
        case 'row_plugin':
            // This just overwrites the existing row_plugin which is using the wrong options.
            $form['row_plugin']['#options'] = views_fetch_plugin_names('row', 'normal', array(
                $this->view->base_table,
            ));
            break;
        case 'admin_title':
            $form['#title'] .= t('Administrative title');
            $form['admin_title'] = array(
                '#type' => 'textfield',
                '#default_value' => $this->get_option('admin_title'),
                '#description' => t('This is the title that will appear for this view context in the configure context dialog. If left blank, the view name will be used.'),
            );
            break;
        case 'inherit_panels_path':
            $form['#title'] .= t('Inherit path from panel display');
            $form['inherit_panels_path'] = array(
                '#type' => 'select',
                '#options' => array(
                    1 => t('Yes'),
                    0 => t('No'),
                ),
                '#default_value' => $this->get_option('inherit_panels_path'),
                '#description' => t('If yes, all links generated by Views, such as more links, summary links, and exposed input links will go to the panels display path, not the view, if the display has a path.'),
            );
            break;
        case 'argument_input':
            $form['#title'] .= t('Choose the data source for view arguments');
            $argument_input = $this->get_argument_input();
            ctools_include('context');
            ctools_include('dependent');
            $form['argument_input']['#tree'] = TRUE;
            $converters = ctools_context_get_all_converters();
            ksort($converters);
            foreach ($argument_input as $id => $argument) {
                $form['argument_input'][$id] = array(
                    '#tree' => TRUE,
                );
                $safe = str_replace(array(
                    '][',
                    '_',
                    ' ',
                    ':',
                ), '-', $id);
                $type_id = 'edit-argument-input-' . $safe;
                $form['argument_input'][$id]['type'] = array(
                    '#type' => 'select',
                    '#options' => array(
                        'none' => t('No argument'),
                        'context' => t('From context'),
                    ),
                    '#id' => $type_id,
                    '#title' => t('@arg source', array(
                        '@arg' => $argument['name'],
                    )),
                    '#default_value' => $argument['type'],
                );
                $form['argument_input'][$id]['context'] = array(
                    '#type' => 'select',
                    '#title' => t('Required context'),
                    '#description' => t('If "From context" is selected, which type of context to use.'),
                    '#default_value' => $argument['context'],
                    '#options' => $converters,
                    '#dependency' => array(
                        $type_id => array(
                            'context',
                        ),
                    ),
                );
                $form['argument_input'][$id]['context_optional'] = array(
                    '#type' => 'checkbox',
                    '#title' => t('Context is optional'),
                    '#description' => t('This context need not be present for the pane to function. If you plan to use this, ensure that the argument handler can handle empty values gracefully.'),
                    '#default_value' => $argument['context_optional'],
                    '#dependency' => array(
                        $type_id => array(
                            'context',
                        ),
                    ),
                );
            }
            break;
    }
}