Public Member Functions | Public Attributes

views_plugin_display Class Reference
[Views' display plugins]

The default display plugin handler. More...

Inheritance diagram for views_plugin_display:
views_plugin views_object views_plugin_display_attachment views_plugin_display_block views_plugin_display_default views_plugin_display_page views_plugin_display_feed

List of all members.

Public Member Functions

 init (&$view, &$display, $options=NULL)
 construct ()
 Views handlers use a special construct function so that we can more easily construct them with variable arguments.
 destroy ()
 is_default_display ()
 Determine if this display is the 'default' display which contains fallback settings.
 uses_exposed ()
 Determine if this display uses exposed filters, so the view will know whether or not to build them.
 displays_exposed ()
 Determine if this display should display the exposed filters widgets, so the view will know whether or not to render them.
 use_ajax ()
 Does the display use AJAX?
 use_pager ()
 Does the display have a pager enabled?
 use_more ()
 Does the display have a more link enabled?
 use_group_by ()
 Does the display have groupby enabled?
 use_more_always ()
 Should the enabled display more link be shown when no more items?
 use_more_text ()
 Does the display have custom link text?
 accept_attachments ()
 Can this display accept attachments?
 attach_to ($display_id)
 Allow displays to attach to other views.
 defaultable_sections ($section=NULL)
 Static member function to list which sections are defaultable and what items each section contains.
 option_definition ()
 Information about options for all kinds of purposes will be held here.
 has_path ()
 Check to see if the display has a 'path' field.
 uses_link_display ()
 Check to see if the display has some need to link to another display.
 uses_exposed_form_in_block ()
 Check to see if the display can put the exposed formin a block.
 get_link_display ()
 Check to see which display to use when creating links within a view using this display.
 get_path ()
 Return the base path to use for this display.
 uses_breadcrumb ()
 Check to see if the display needs a breadcrumb.
 is_defaulted ($option)
 Determine if a given option is set to use the default display or the current display.
 get_option ($option)
 Intelligently get an option either from this display or from the default display, if directed to do so.
 uses_fields ()
 Determine if the display's style uses fields.
 get_plugin ($type= 'style', $name=NULL)
 Get the instance of a plugin, for example style or row.
get_handler ($type, $id)
 Get the handler object for a single handler.
 get_handlers ($type)
 Get a full array of handlers for $type.
 get_field_labels ()
 Retrieve a list of fields for the current display with the relationship associated if it exists.
 set_option ($option, $value)
 Intelligently set an option either from this display or from the default display, if directed to do so.
 override_option ($option, $value)
 Set an option and force it to be an override.
 option_link ($text, $section, $class= '', $title= '')
 Because forms may be split up into sections, this provides an easy URL to exactly the right section.
 get_arguments_tokens ()
 Returns to tokens for arguments.
 options_summary (&$categories, &$options)
 Provide the default summary for options in the views UI.
 options_form (&$form, &$form_state)
 Provide the default form for setting options.
 format_themes ($themes)
 Format a list of theme templates for output by the theme info helper.
 options_validate (&$form, &$form_state)
 Validate the options form.
 options_submit (&$form, &$form_state)
 Perform any necessary changes to the form values prior to storage.
 options_override ($form, &$form_state)
 If override/revert was clicked, perform the proper toggle.
 set_override ($section, $new_state=NULL)
 Flip the override setting for the given section.
 query ()
 Inject anything into the query that the display handler needs.
 render_filters ()
 Not all display plugins will support filtering.
 render_pager ()
 Not all display plugins will suppert pager rendering.
 render_more_link ()
 Render the 'more' link.
 render_header ()
 Legacy functions.
 render_footer ()
 Render the footer of the view.
 render_empty ()
 hook_block_list ($delta=0, $edit=array())
 If this display creates a block, implement one of these.
 hook_menu ()
 If this display creates a page with a menu item, implement it here.
 render ()
 Render this display.
 render_area ($area, $empty=FALSE)
 access ($account=NULL)
 Determine if the user has access to this display of the view.
 pre_execute ()
 Set up any variables on the view prior to execution.
 execute ()
 When used externally, this is how a view gets run and returns data in the format required.
 preview ()
 Fully render the display for the purposes of a live preview or some other AJAXy reason.
 get_style_type ()
 Displays can require a certain type of style plugin.
 validate ()
 Make sure the display and all associated handlers are valid.
 is_identifier_unique ($id, $identifier)
 Check if the provided identifier is unique.
 get_special_blocks ()
 Provide the block system with any exposed widget blocks for this display.
 view_special_blocks ($type)
 Render any special blocks provided for this display.
 export_option ($indent, $prefix, $storage, $option, $definition, $parents)
 Override of export_option().
 export_handler ($indent, $prefix, $storage, $option, $definition, $parents)
 Special method to export items that have handlers.
 export_style ($indent, $prefix, $storage, $option, $definition, $parents)
 Special handling for the style export.
 export_plugin ($indent, $prefix, $storage, $option, $definition, $parents)
 Special handling for plugin export.
 unpack_style ($indent, $prefix, $storage, $option, $definition, $parents)
 unpack_plugin (&$translatable, $storage, $option, $definition, $parents)
 Special handling for plugin unpacking.
 unpack_handler (&$translatable, $storage, $option, $definition, $parents)
 Special method to unpack items that have handlers.
 get_argument_text ()
 Provide some helpful text for the arguments.
 get_pager_text ()
 Provide some helpful text for pagers.
 theme_functions ()
 Provide a full list of possible theme templates used by this style.
 additional_theme_functions ()
 Provide a list of additional theme functions for the theme information page.
 summary_title ()
 Returns the summary of the settings in the display.
 plugin_title ()
 Return the human readable name of the display.
 options (&$options)
 Set default options on this object.
 set_default_options ()
 Set default options.
 _set_option_defaults (&$storage, $options, $level=0)
 unpack_options (&$storage, $options, $definition=NULL, $all=TRUE, $check=TRUE, $localization_keys=array())
 Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
 set_definition ($definition)
 Let the handler know what its full definition is.
 export_options ($indent, $prefix)
 unpack_translatables (&$translatable, $parents=array())
 Unpacks each handler to store translatable texts.
 unpack_translatable (&$translatable, $storage, $option, $definition, $parents, $keys=array())
 Unpack a single option definition.

Public Attributes

 $view = NULL
 $handlers = array()
 $extender = array()
 Stores all available display extenders.
 $display = NULL
 $plugin_type = NULL
 The plugin type of this plugin, for example style or query.
 $options = array()
 Except for displays, options for the object will be held here.
 $definition

Detailed Description

The default display plugin handler.

Display plugins handle options and basic mechanisms for different output methods.

Definition at line 26 of file views_plugin_display.inc.


Member Function Documentation

views_plugin_display::accept_attachments (  ) 

Can this display accept attachments?

Definition at line 365 of file views_plugin_display.inc.

                                {
    if (empty($this->definition['accept attachments'])) {
      return FALSE;
    }
    if (!empty($this->view->argument) && $this->get_option('hide_attachment_summary')) {
      foreach ($this->view->argument as $argument_id => $argument) {
        if ($argument->needs_style_plugin() && empty($argument->argument_validated)) {
          return FALSE;
        }
      }
    }
    return TRUE;
  }

views_plugin_display::access ( account = NULL  ) 

Determine if the user has access to this display of the view.

Definition at line 2548 of file views_plugin_display.inc.

References get_plugin().

Referenced by views_plugin_display_attachment::attach_to().

                                   {
    if (!isset($account)) {
      global $user;
      $account = $user;
    }

    // Full override.
    if (user_access('access all views', $account)) {
      return TRUE;
    }

    $plugin = $this->get_plugin('access');
    if ($plugin) {
      return $plugin->access($account);
    }

    // fallback to all access if no plugin.
    return TRUE;
  }

views_plugin::additional_theme_functions (  )  [inherited]

Provide a list of additional theme functions for the theme information page.

Definition at line 518 of file plugins.inc.

References views_theme_functions().

Referenced by options_form().

                                        {
    $funcs = array();
    if (!empty($this->definition['additional themes'])) {
      foreach ($this->definition['additional themes'] as $theme => $type) {
        $funcs[] = views_theme_functions($theme, $this->view, $this->display);
      }
    }
    return $funcs;
  }

views_plugin_display::attach_to ( display_id  ) 

Allow displays to attach to other views.

Reimplemented in views_plugin_display_attachment, and views_plugin_display_feed.

Definition at line 382 of file views_plugin_display.inc.

{ }

views_plugin_display::construct (  ) 

Views handlers use a special construct function so that we can more easily construct them with variable arguments.

Reimplemented from views_object.

Definition at line 221 of file views_plugin_display.inc.

References $extender, views_fetch_plugin_data(), views_get_enabled_display_extenders(), and vpr().

                       {
    // Load extenders as soon as possible
    $this->extender = array();
    $extenders = views_get_enabled_display_extenders();
    // If you update to the dev version the registry might not be loaded yet.
    if (!empty($extenders) && class_exists('views_plugin_display_extender')) {
      foreach ($extenders as $extender) {
        $data = views_fetch_plugin_data('display_extender', $extender);
        if (isset($data['handler']) && class_exists($data['handler'])) {
          $this->extender[$extender] = new $data['handler']($this->view, $this);
        }
        else {
          vpr('Invalid display extender @extender', array('@handler' => $extender));
        }
      }
    }
    parent::construct();
  }

views_plugin_display::defaultable_sections ( section = NULL  ) 

Static member function to list which sections are defaultable and what items each section contains.

Reimplemented in views_plugin_display_feed.

Definition at line 388 of file views_plugin_display.inc.

Referenced by export_option(), options_form(), and set_override().

                                                 {
    $sections = array(
      'access' => array('access', 'access_options'),
      'access_options' => array('access', 'access_options'),
      'cache' => array('cache', 'cache_options'),
      'cache_options' => array('cache', 'cache_options'),
      'title' => array('title'),
      'css_class' => array('css_class'),
      'use_ajax' => array('use_ajax'),
      'hide_attachment_summary' => array('hide_attachment_summary'),
      'group_by' => array('group_by'),
      'query' => array('query'),
      'use_more' => array('use_more', 'use_more_always', 'use_more_text'),
      'link_display' => array('link_display', 'link_url'),

      // Force these to cascade properly.
      'style_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
      'style_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
      'row_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
      'row_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),

      'pager' => array('pager', 'pager_options'),
      'pager_options' => array('pager', 'pager_options'),

      'exposed_form' => array('exposed_form', 'exposed_form_options'),
      'exposed_form_options' => array('exposed_form', 'exposed_form_options'),

      // These guys are special
      'header' => array('header'),
      'footer' => array('footer'),
      'empty' => array('empty'),
      'relationships' => array('relationships'),
      'fields' => array('fields'),
      'sorts' => array('sorts'),
      'arguments' => array('arguments'),
      'filters' => array('filters', 'filter_groups'),
    );

    // If the display cannot use a pager, then we cannot default it.
    if (empty($this->definition['use pager'])) {
      unset($sections['pager']);
      unset($sections['items_per_page']);
    }

    foreach ($this->extender as $extender) {
      $extender->defaultable_sections($sections, $section);
    }

    if ($section) {
      if (!empty($sections[$section])) {
        return $sections[$section];
      }
    }
    else {
      return $sections;
    }
  }

views_plugin_display::displays_exposed (  ) 

Determine if this display should display the exposed filters widgets, so the view will know whether or not to render them.

Regardless of what this function returns, exposed filters will not be used nor displayed unless uses_exposed() returns TRUE.

Reimplemented in views_plugin_display_attachment.

Definition at line 301 of file views_plugin_display.inc.

                              {
    return TRUE;
  }

views_plugin_display::execute (  ) 

When used externally, this is how a view gets run and returns data in the format required.

The base class cannot be executed.

Reimplemented in views_plugin_display_attachment, views_plugin_display_block, views_plugin_display_default, views_plugin_display_feed, and views_plugin_display_page.

Definition at line 2595 of file views_plugin_display.inc.

{ }

views_plugin_display::export_handler ( indent,
prefix,
storage,
option,
definition,
parents 
)

Special method to export items that have handlers.

This method was specified in the option_definition() as the method to utilize to export fields, filters, sort criteria, relationships and arguments. This passes the export off to the individual handlers so that they can export themselves properly.

Definition at line 2757 of file views_plugin_display.inc.

References use_group_by(), views_get_handler(), and views_object_types().

                                                                                      {
    $output = '';

    // cut the 's' off because the data is stored as the plural form but we need
    // the singular form. Who designed that anyway? Oh yeah, I did. :(
    if ($option != 'header' && $option != 'footer' && $option != 'empty') {
      $type = substr($option, 0, -1);
    }
    else {
      $type = $option;
    }
    $types = views_object_types();
    foreach ($storage[$option] as $id => $info) {
      if (!empty($types[$type]['type'])) {
        $handler_type = $types[$type]['type'];
      }
      else {
        $handler_type = $type;
      }
      // If aggregation is on, the group type might override the actual
      // handler that is in use. This piece of code checks that and,
      // if necessary, sets the override handler.
      $override = NULL;
      if ($this->use_group_by() && !empty($info['group_type'])) {
        if (empty($this->view->query)) {
          $this->view->init_query();
        }
        $aggregate = $this->view->query->get_aggregation_info();
        if (!empty($aggregate[$info['group_type']]['handler'][$type])) {
          $override = $aggregate[$info['group_type']]['handler'][$type];
        }
      }
      $handler = views_get_handler($info['table'], $info['field'], $handler_type, $override);
      if ($handler) {
        $handler->init($this->view, $info);
        $output .= $indent . '/* ' . $types[$type]['stitle'] . ': ' . $handler->ui_name() . " */\n";
        $output .= $handler->export_options($indent, $prefix . "['$option']['$id']");
      }

      // Prevent reference problems.
      unset($handler);
    }

    return $output;
  }

views_plugin_display::export_option ( indent,
prefix,
storage,
option,
definition,
parents 
)

Override of export_option().

Because displays do not want to export options that are NOT overridden from the default display, we need some special handling during the export process.

Reimplemented from views_object.

Definition at line 2728 of file views_plugin_display.inc.

References defaultable_sections(), is_default_display(), and is_defaulted().

                                                                                     {
    // The $prefix is wrong because we store our actual options a little differently:
    $prefix = '$handler->display->display_options';
    $output = '';
    if (!$parents && !$this->is_default_display()) {
      // Do not export items that are not overridden.
      if ($this->is_defaulted($option)) {
        return;
      }

      // If this is not defaulted and is overrideable, flip the switch to say this
      // is overridden.
      if ($this->defaultable_sections($option)) {
        $output .= $indent . $prefix . "['defaults']['$option'] = FALSE;\n";
      }
    }

    $output .= parent::export_option($indent, $prefix, $storage, $option, $definition, $parents);
    return $output;
  }

views_plugin_display::export_plugin ( indent,
prefix,
storage,
option,
definition,
parents 
)

Special handling for plugin export.

Plugins other than styles are stored in array with 'type' being the key to the plugin. For modern plugins, the options are stored in the 'options' array, but for legacy plugins (access and cache) options are stored as siblings to the type.

Definition at line 2849 of file views_plugin_display.inc.

References views_plugin::$plugin_type, and get_plugin().

                                                                                     {
    $output = '';
    $plugin_type = end($parents);
    $plugin = $this->get_plugin($plugin_type);
    if ($plugin) {
      // Write which plugin to use.
      $value = $storage[$option];
      $new_prefix = $prefix . "['$plugin_type']";

      $output .= $indent . $new_prefix . "['$option'] = '$value';\n";

      if ($plugin_type != 'access' && $plugin_type!= 'cache') {
        $new_prefix .= "['options']";
      }

      // Pass off to the plugin to export itself.
      $output .= $plugin->export_options($indent, $new_prefix);
    }

    return $output;
  }

views_plugin_display::export_style ( indent,
prefix,
storage,
option,
definition,
parents 
)

Special handling for the style export.

Styles are stored as style_plugin and style_options or row_plugin and row_options accordingly. The options are told not to export, and the export for the plugin should export both.

Definition at line 2810 of file views_plugin_display.inc.

References get_option(), and get_plugin().

                                                                                    {
    $output = '';
    $style_plugin = $this->get_plugin();
    if ($option == 'style_plugin') {
      $type = 'style';
      $options_field = 'style_options';
      $plugin = $style_plugin;
    }
    else {
      if (!$style_plugin || !$style_plugin->uses_row_plugin()) {
        return;
      }

      $type = 'row';
      $options_field = 'row_options';
      $plugin = $this->get_plugin('row');
      // If the style plugin doesn't use row plugins, don't even bother.
    }

    if ($plugin) {
      // Write which plugin to use.
      $value = $this->get_option($option);
      $output .= $indent . $prefix . "['$option'] = '$value';\n";

      // Pass off to the plugin to export itself.
      $output .= $plugin->export_options($indent, $prefix . "['$options_field']");
    }

    return $output;
  }

views_plugin_display::format_themes ( themes  ) 

Format a list of theme templates for output by the theme info helper.

Definition at line 2111 of file views_plugin_display.inc.

Referenced by options_form().

                                  {
    $registry = $this->theme_registry;
    $extension = $this->theme_extension;

    $output = '';
    $picked = FALSE;
    foreach ($themes as $theme) {
      $template = strtr($theme, '_', '-') . $extension;
      if (!$picked && !empty($registry[$theme])) {
        $template_path = isset($registry[$theme]['path']) ? $registry[$theme]['path'] . '/' : './';
        if (file_exists($template_path . $template)) {
          $hint = t('File found in folder @template-path', array('@template-path' => $template_path));
          $template = '<strong title="'. $hint .'">' . $template . '</strong>';
        }
        else {
          $template = '<strong class="error">' . $template . ' ' . t('(File not found, in folder @template-path)', array('@template-path' => $template_path)) . '</strong>';
        }
        $picked = TRUE;
      }
      $fixed[] = $template;
    }

    return implode(', ', array_reverse($fixed));
  }

views_plugin_display::get_argument_text (  ) 

Provide some helpful text for the arguments.

The result should contain of an array with

  • filter value present: The title of the fieldset in the argument where you can configure what should be done with a given argument.
  • filter value not present: The tiel of the fieldset in the argument where you can configure what should be done if the argument does not exist.
  • description: A description about how arguments comes to the display. For example blocks don't get it from url.

Reimplemented in views_plugin_display_page.

Definition at line 2958 of file views_plugin_display.inc.

                               {
    return array(
      'filter value not present' => t('When the filter value is <em>NOT</em> available'),
      'filter value present' => t('When the filter value <em>IS</em> available or a default is provided'),
      'description' => t("This display does not have a source for contextual filters, so no contextual filter value will be available unless you select 'Provide default'."),
    );
  }

views_plugin_display::get_arguments_tokens (  ) 

Returns to tokens for arguments.

This function is similar to views_handler_field::get_render_tokens() but without fields tokens.

Definition at line 1025 of file views_plugin_display.inc.

Referenced by render_more_link().

                                  {
    $tokens = array();
    if (!empty($this->view->build_info['substitutions'])) {
      $tokens = $this->view->build_info['substitutions'];
    }
    $count = 0;
    foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
      $token = '%' . ++$count;
      if (!isset($tokens[$token])) {
        $tokens[$token] = '';
      }

      // Use strip tags as there should never be HTML in the path.
      // However, we need to preserve special characters like " that
      // were removed by check_plain().
      $tokens['!' . $count] = isset($this->view->args[$count - 1]) ? strip_tags(decode_entities($this->view->args[$count - 1])) : '';
    }

    return $tokens;
  }

views_plugin_display::get_field_labels (  ) 

Retrieve a list of fields for the current display with the relationship associated if it exists.

Definition at line 949 of file views_plugin_display.inc.

References views_object::$options, and get_handlers().

                              {
    $options = array();
    foreach ($this->get_handlers('relationship') as $relationship => $handler) {
      if ($label = $handler->label()) {
        $relationships[$relationship] = $label;
      }
      else {
        $relationships[$relationship] = $handler->ui_name();
      }
    }

    foreach ($this->get_handlers('field') as $id => $handler) {
      if ($label = $handler->label()) {
        $options[$id] = $label;
      }
      else {
        $options[$id] = $handler->ui_name();
      }
      if (!empty($handler->options['relationship']) && !empty($relationships[$handler->options['relationship']])) {
        $options[$id] = '(' . $relationships[$handler->options['relationship']] . ') ' . $options[$id];
      }
    }
    return $options;
  }

& views_plugin_display::get_handler ( type,
id 
)

Get the handler object for a single handler.

Definition at line 870 of file views_plugin_display.inc.

References get_handlers().

                                    {
    if (!isset($this->handlers[$type])) {
      $this->get_handlers($type);
    }

    if (isset($this->handlers[$type][$id])) {
      return $this->handlers[$type][$id];
    }

    // So we can return a reference.
    $null = NULL;
    return $null;
  }

views_plugin_display::get_handlers ( type  ) 

Get a full array of handlers for $type.

This caches them.

Definition at line 887 of file views_plugin_display.inc.

References get_option(), use_group_by(), views_get_handler(), and views_object_types().

Referenced by get_field_labels(), get_handler(), is_identifier_unique(), options_form(), and validate().

                               {
    if (!isset($this->handlers[$type])) {
      $this->handlers[$type] = array();
      $types = views_object_types();
      $plural = $types[$type]['plural'];

      foreach ($this->get_option($plural) as $id => $info) {
        // If this is during form submission and there are temporary options
        // which can only appear if the view is in the edit cache, use those
        // options instead. This is used for AJAX multi-step stuff.
        if (isset($_POST['form_id']) && isset($this->view->temporary_options[$type][$id])) {
          $info = $this->view->temporary_options[$type][$id];
        }

        if ($info['id'] != $id) {
          $info['id'] = $id;
        }

        // If aggregation is on, the group type might override the actual
        // handler that is in use. This piece of code checks that and,
        // if necessary, sets the override handler.
        $override = NULL;
        if ($this->use_group_by() && !empty($info['group_type'])) {
          if (empty($this->view->query)) {
            $this->view->init_query();
          }
          $aggregate = $this->view->query->get_aggregation_info();
          if (!empty($aggregate[$info['group_type']]['handler'][$type])) {
            $override = $aggregate[$info['group_type']]['handler'][$type];
          }
        }

        if (!empty($types[$type]['type'])) {
          $handler_type = $types[$type]['type'];
        }
        else {
          $handler_type = $type;
        }

        $handler = views_get_handler($info['table'], $info['field'], $handler_type, $override);
        if ($handler) {
          // Special override for area types so they know where they come from.
          if ($handler_type == 'area') {
            $handler->handler_type = $type;
          }

          $handler->init($this->view, $info);
          $this->handlers[$type][$id] = &$handler;
        }

        // Prevent reference problems.
        unset($handler);
      }
    }

    return $this->handlers[$type];
  }

views_plugin_display::get_link_display (  ) 

Check to see which display to use when creating links within a view using this display.

Definition at line 729 of file views_plugin_display.inc.

References get_option().

Referenced by get_path(), and options_summary().

                              {
    $display_id = $this->get_option('link_display');
    // If unknown, pick the first one.
    if (empty($display_id) || empty($this->view->display[$display_id])) {
      foreach ($this->view->display as $display_id => $display) {
        if (!empty($display->handler) && $display->handler->has_path()) {
          return $display_id;
        }
      }
    }
    else {
      return $display_id;
    }
    // fall-through returns NULL
  }

views_plugin_display::get_option ( option  ) 
views_plugin_display::get_pager_text (  ) 

Provide some helpful text for pagers.

The result should contain of an array within

  • items per page title

Reimplemented in views_plugin_display_page.

Definition at line 2972 of file views_plugin_display.inc.

                            {
    return array(
      'items per page title' => t('Items to display'),
      'items per page description' => t('The number of items to display. Enter 0 for no limit.')
    );
  }

views_plugin_display::get_path (  ) 

Return the base path to use for this display.

This can be overridden for displays that do strange things with the path.

Definition at line 751 of file views_plugin_display.inc.

References get_link_display(), get_option(), and has_path().

Referenced by views_plugin_display_feed::attach_to(), and render_more_link().

                      {
    if ($this->has_path()) {
      return $this->get_option('path');
    }

    $display_id = $this->get_link_display();
    if ($display_id && !empty($this->view->display[$display_id]) && is_object($this->view->display[$display_id]->handler)) {
      return $this->view->display[$display_id]->handler->get_path();
    }
  }

views_plugin_display::get_plugin ( type = 'style',
name = NULL 
)

Get the instance of a plugin, for example style or row.

Parameters:
string $type The type of the plugin.
string $name The name of the plugin defined in hook_views_plugins.
Returns:
views_plugin|FALSE

Definition at line 814 of file views_plugin_display.inc.

References views_object::$options, get_option(), is_defaulted(), views_fetch_data(), and views_get_plugin().

Referenced by access(), views_plugin_display_feed::attach_to(), views_plugin_display_page::execute_hook_menu(), export_plugin(), export_style(), options_form(), options_submit(), options_summary(), options_validate(), pre_execute(), unpack_plugin(), use_pager(), uses_exposed(), uses_fields(), validate(), and view_special_blocks().

                                                     {
    static $cache = array();
    if (!isset($cache[$type][$name])) {
      switch ($type) {
        case 'style':
        case 'row':
          $option_name = $type . '_plugin';
          $options = $this->get_option($type . '_options');
          if (!$name) {
            $name = $this->get_option($option_name);
          }

          break;
        case 'query':
          $views_data = views_fetch_data($this->view->base_table);
          $name = !empty($views_data['table']['base']['query class']) ? $views_data['table']['base']['query class'] : 'views_query';
        default:
          $option_name = $type;
          $options = $this->get_option($type);
          if (!$name) {
            $name = $options['type'];
          }

          // access & cache store their options as siblings with the
          // type; all others use an 'options' array.
          if ($type != 'access' && $type != 'cache') {
            $options = $options['options'];
          }
      }
      $plugin = views_get_plugin($type, $name);

      if (!$plugin) {
        return;
      }
      if ($type != 'query') {
        $plugin->init($this->view, $this->display, $options);
      }
      else {
        $display_id = $this->is_defaulted($option_name) ? $this->display->id : 'default';
        $plugin->localization_keys = array($display_id, $type);

        if (!isset($this->base_field)) {
          $views_data = views_fetch_data($this->view->base_table);
          $this->view->base_field = !empty($views_data['table']['base']['field']) ? $views_data['table']['base']['field'] : '';
        }
        $plugin->init($this->view->base_table, $this->view->base_field, $options);
      }
      $cache[$type][$name] = $plugin;
    }

    return $cache[$type][$name];
  }

views_plugin_display::get_special_blocks (  ) 

Provide the block system with any exposed widget blocks for this display.

Definition at line 2686 of file views_plugin_display.inc.

References uses_exposed_form_in_block().

                                {
    $blocks = array();

    if ($this->uses_exposed_form_in_block()) {
      $delta = '-exp-' . $this->view->name . '-' . $this->display->id;
      $desc = t('Exposed form: @view-@display_id', array('@view' => $this->view->name, '@display_id' => $this->display->id));

      $blocks[$delta] = array(
        'info' => $desc,
        'cache' => DRUPAL_NO_CACHE,
      );
    }

    return $blocks;
  }

views_plugin_display::get_style_type (  ) 

Displays can require a certain type of style plugin.

By default, they will be 'normal'.

Reimplemented in views_plugin_display_feed.

Definition at line 2607 of file views_plugin_display.inc.

Referenced by options_form().

{ return 'normal'; }

views_plugin_display::has_path (  ) 

Check to see if the display has a 'path' field.

This is a pure function and not just a setting on the definition because some displays (such as a panel pane) may have a path based upon configuration.

By default, displays do not have a path.

Reimplemented in views_plugin_display_page.

Definition at line 704 of file views_plugin_display.inc.

Referenced by get_path(), uses_exposed_form_in_block(), uses_link_display(), and validate().

{ return FALSE; }

views_plugin_display::hook_block_list ( delta = 0,
edit = array() 
)

If this display creates a block, implement one of these.

Definition at line 2522 of file views_plugin_display.inc.

{ return array(); }

views_plugin_display::hook_menu (  ) 

If this display creates a page with a menu item, implement it here.

Definition at line 2527 of file views_plugin_display.inc.

{ return array(); }

views_plugin_display::is_default_display (  ) 

Determine if this display is the 'default' display which contains fallback settings.

Reimplemented in views_plugin_display_default.

Definition at line 264 of file views_plugin_display.inc.

Referenced by export_option(), is_defaulted(), and option_definition().

{ return FALSE; }

views_plugin_display::is_defaulted ( option  ) 

Determine if a given option is set to use the default display or the current display.

Returns:
TRUE for the default display

Definition at line 776 of file views_plugin_display.inc.

References is_default_display(), and views_object::options().

Referenced by export_option(), get_option(), get_plugin(), and set_option().

                                 {
    return !$this->is_default_display() && !empty($this->default_display) && !empty($this->options['defaults'][$option]);
  }

views_plugin_display::is_identifier_unique ( id,
identifier 
)

Check if the provided identifier is unique.

Definition at line 2670 of file views_plugin_display.inc.

References get_handlers(), and views_object_types().

                                                  {
    foreach (views_object_types() as $type => $info) {
      foreach ($this->get_handlers($type) as $key => $handler) {
        if ($handler->can_expose() && $handler->is_exposed()) {
          if ($id != $key && $identifier == $handler->options['expose']['identifier']) {
            return FALSE;
          }
        }
      }
    }
    return TRUE;
  }

views_plugin_display::option_definition (  ) 

Information about options for all kinds of purposes will be held here.

 'option_name' => array(
  - 'default' => default value,
  - 'translatable' => TRUE/FALSE (wrap in t() on export if true),
  - 'contains' => array of items this contains, with its own defaults, etc.
      If contains is set, the default will be ignored and assumed to
      be array()

  ),

Each option may have any of the following functions:

  • export_option_OPTIONNAME -- Special export handling if necessary.
  • translate_option_OPTIONNAME -- Special handling for translating data within the option, if necessary.

Reimplemented from views_object.

Reimplemented in views_plugin_display_attachment, views_plugin_display_block, views_plugin_display_feed, and views_plugin_display_page.

Definition at line 446 of file views_plugin_display.inc.

References views_object::$options, and is_default_display().

                               {
    $options = array(
      'defaults' => array(
        'default' => array(
          'access' => TRUE,
          'cache' => TRUE,
          'query' => TRUE,
          'title' => TRUE,
          'css_class' => TRUE,

          'display_description' => FALSE,
          'use_ajax' => TRUE,
          'hide_attachment_summary' => TRUE,
          'pager' => TRUE,
          'pager_options' => TRUE,
          'use_more' => TRUE,
          'use_more_always' => TRUE,
          'use_more_text' => TRUE,
          'exposed_form' => TRUE,
          'exposed_form_options' => TRUE,

          'link_display' => TRUE,
          'link_url' => '',
          'group_by' => TRUE,

          'style_plugin' => TRUE,
          'style_options' => TRUE,
          'row_plugin' => TRUE,
          'row_options' => TRUE,

          'header' => TRUE,
          'footer' => TRUE,
          'empty' => TRUE,

          'relationships' => TRUE,
          'fields' => TRUE,
          'sorts' => TRUE,
          'arguments' => TRUE,
          'filters' => TRUE,
          'filter_groups' => TRUE,
        ),
        'export' => FALSE,
      ),

      'title' => array(
        'default' => '',
        'translatable' => TRUE,
      ),
      'enabled' => array(
        'default' => TRUE,
        'translatable' => FALSE,
        'bool' => TRUE,
      ),
      'display_comment' => array(
        'default' => '',
      ),
      'css_class' => array(
        'default' => '',
        'translatable' => FALSE,
      ),
      'display_description' => array(
        'default' => '',
        'translatable' => TRUE,
      ),
      'use_ajax' => array(
        'default' => FALSE,
        'bool' => TRUE,
      ),
      'hide_attachment_summary' => array(
        'default' => FALSE,
        'bool' => TRUE,
      ),
      // This is legacy code:
      // Items_per/offset/use_pager is moved to the pager plugin
      // but the automatic update path needs this items defined, so don't remove it.
      // @see views_plugin_display::init()
      'items_per_page' => array(
        'default' => 10,
      ),
      'offset' => array(
        'default' => 0,
      ),
      'use_pager' => array(
        'default' => FALSE,
        'bool' => TRUE,
      ),
      'use_more' => array(
        'default' => FALSE,
        'bool' => TRUE,
      ),
      'use_more_always' => array(
        'default' => FALSE,
        'bool' => FALSE,
      ),
      'use_more_text' => array(
        'default' => 'more',
        'translatable' => TRUE,
      ),
      'link_display' => array(
        'default' => '',
      ),
      'link_url' => array(
        'default' => '',
      ),
      'group_by' => array(
        'default' => FALSE,
        'bool' => TRUE,
      ),
      'field_language' => array(
        'default' => '***CURRENT_LANGUAGE***',
      ),
      'field_language_add_to_query' => array(
        'default' => 1,
      ),

      // These types are all plugins that can have individual settings
      // and therefore need special handling.
      'access' => array(
        'contains' => array(
          'type' => array('default' => 'none', 'export' => 'export_plugin', 'unpack_translatable' => 'unpack_plugin'),
         ),
      ),
      'cache' => array(
        'contains' => array(
          'type' => array('default' => 'none', 'export' => 'export_plugin', 'unpack_translatable' => 'unpack_plugin'),
         ),
      ),
      'query' => array(
        'contains' => array(
          'type' => array('default' => 'views_query', 'export' => 'export_plugin'),
          'options' => array('default' => array(), 'export' => FALSE),
         ),
      ),
      // Note that exposed_form plugin has options in a separate array,
      // while access and cache do not. access and cache are legacy and
      // that pattern should not be repeated, but it is left as is to
      // reduce the need to modify older views. Let's consider the
      // pattern used here to be the template from which future plugins
      // should be copied.
      'exposed_form' => array(
        'contains' => array(
          'type' => array('default' => 'basic', 'export' => 'export_plugin', 'unpack_translatable' => 'unpack_plugin'),
          'options' => array('default' => array(), 'export' => FALSE),
         ),
      ),
      'pager' => array(
        'contains' => array(
          'type' => array('default' => 'full', 'export' => 'export_plugin', 'unpack_translatable' => 'unpack_plugin'),
          'options' => array('default' => array(), 'export' => FALSE),
         ),
      ),

      // Note that the styles have their options completely independent.
      // Like access and cache above, this is a legacy pattern and
      // should not be repeated.
      'style_plugin' => array(
        'default' => 'default',
        'export' => 'export_style',
        'unpack_translatable' => 'unpack_style',
      ),
      'style_options' => array(
        'default' => array(),
        'export' => FALSE,
      ),
      'row_plugin' => array(
        'default' => 'fields',
        'export' => 'export_style',
        'unpack_translatable' => 'unpack_style',
      ),
      'row_options' => array(
        'default' => array(),
        'export' => FALSE,
      ),

      'exposed_block' => array(
        'default' => FALSE,
      ),

      'header' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
      'footer' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
      'empty' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),

      // We want these to export last.
      // These are the 5 handler types.
      'relationships' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',

      ),
      'fields' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
      'sorts' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
      'arguments' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
      'filter_groups' => array(
        'contains' => array(
          'operator' => array('default' => 'AND'),
          'groups' => array('default' => array(1 => 'AND')),
        ),
      ),
      'filters' => array(
        'default' => array(),
        'export' => 'export_handler',
        'unpack_translatable' => 'unpack_handler',
      ),
    );

    if (empty($this->definition['use pager'])) {
      $options['defaults']['default']['use_pager'] = FALSE;
      $options['defaults']['default']['items_per_page'] = FALSE;
      $options['defaults']['default']['offset'] = FALSE;
      $options['defaults']['default']['pager'] = FALSE;
      $options['pager']['contains']['type']['default'] = 'some';
    }

    if ($this->is_default_display()) {
      unset($options['defaults']);
    }

    foreach ($this->extender as $extender) {
      $extender->option_definition($options);
    }

    return $options;
  }

views_plugin_display::option_link ( text,
section,
class = '',
title = '' 
)

Because forms may be split up into sections, this provides an easy URL to exactly the right section.

Don't override this.

Definition at line 1002 of file views_plugin_display.inc.

References views_add_js().

Referenced by options_form().

                                                                  {
    views_add_js('ajax');
    if (!empty($class)) {
      $text = '<span>' . $text . '</span>';
    }

    if (!trim($text)) {
      $text = t('Broken field');
    }

    if (empty($title)) {
      $title = $text;
    }

    return l($text, 'admin/structure/views/nojs/display/' . $this->view->name . '/' . $this->display->id . '/' . $section, array('attributes' => array('class' => 'views-ajax-link ' . $class, 'title' => $title, 'id' => drupal_html_id('views-' . $this->display->id . '-' . $section)), 'html' => TRUE));
  }

views_object::options ( &$  options  )  [inherited]

Set default options on this object.

Called by the constructor in a complex chain to deal with backward compatibility.

Reimplemented in views_plugin_style_default.

Definition at line 60 of file base.inc.

Referenced by views_handler_filter_term_node_tid::accept_exposed_input(), views_handler_filter_numeric::accept_exposed_input(), views_handler_filter_in_operator::accept_exposed_input(), views_handler_filter_date::accept_exposed_input(), views_handler_filter::accept_exposed_input(), views_test_plugin_access_test_static::access(), views_test_plugin_access_test_dynamic::access(), views_plugin_access_role::access(), views_plugin_access_perm::access(), views_handler_field::add_additional_fields(), views_handler_field_field::add_field_table(), views_handler_field_user_roles::add_self_tokens(), views_handler_field_profile_list::add_self_tokens(), views_handler_filter_history_user_timestamp::admin_summary(), views_handler_sort::admin_summary(), views_handler_filter_string::admin_summary(), views_handler_filter_numeric::admin_summary(), views_handler_filter_in_operator::admin_summary(), views_handler_filter_boolean_operator::admin_summary(), views_plugin_query_default::build(), views_plugin_style_table::build_sort(), views_plugin_style_table::build_sort_post(), views_plugin_cache_time::cache_expire(), views_plugin_cache_time::cache_set_expire(), views_handler_field_field::click_sort(), views_handler_field::click_sort(), views_handler_field_field::click_sortable(), views_handler_field::construct(), views_handler_argument::default_action(), views_handler_argument::default_argument_form(), views_handler_argument::default_summary(), views_handler_argument::default_summary_form(), views_plugin_display_attachment::displays_exposed(), views_handler_field_user_roles::document_self_tokens(), views_handler_field_profile_list::document_self_tokens(), views_handler_field::element_classes(), views_handler_field::element_label_classes(), views_handler_field::element_label_type(), views_handler_field_user_picture::element_type(), views_handler_field::element_type(), views_handler_field::element_wrapper_classes(), views_handler_field::element_wrapper_type(), views_plugin_style_table::even_empty(), views_plugin_query_default::execute(), views_plugin_pager::execute_count_query(), views_handler_argument_date::export_plugin(), views_handler_filter_term_node_tid::expose_form(), views_handler_sort::expose_form(), views_handler_filter_in_operator::expose_form(), views_handler_filter::expose_form(), views_handler_sort::expose_options(), views_handler_filter_in_operator::expose_options(), views_handler_filter_boolean_operator::expose_options(), views_handler_filter::expose_options(), views_handler_filter::exposed_form(), views_plugin_exposed_form::exposed_form_submit(), views_handler_filter::exposed_info(), views_handler_filter::exposed_translate(), views_handler_filter_user_name::exposed_validate(), views_handler_filter_term_node_tid::exposed_validate(), views_handler_filter_search::exposed_validate(), views_handler_filter_date::exposed_validate(), views_handler_filter_term_node_tid_depth::extra_options_form(), views_handler_filter_term_node_tid::extra_options_form(), views_plugin_access_role::get_access_callback(), views_plugin_access_perm::get_access_callback(), views_plugin_argument_default_raw::get_argument(), views_plugin_argument_default_php::get_argument(), views_plugin_argument_default_fixed::get_argument(), views_plugin_argument_default_user::get_argument(), views_plugin_argument_default_taxonomy_tid::get_argument(), views_handler_field_field::get_base_table(), views_handler_argument_date::get_default_argument(), views_handler::get_field(), views_plugin_pager::get_items_per_page(), views_plugin_pager::get_offset(), get_option(), views_plugin_pager::get_pager_id(), views_plugin_style::get_row_class(), views_handler_field_field::groupby_form(), views_handler::groupby_form(), views_handler_argument::has_default_argument(), views_plugin_style::init(), views_plugin_row::init(), views_plugin_query::init(), views_plugin_pager::init(), views_plugin_exposed_form::init(), views_plugin_cache::init(), views_plugin_argument_validate::init(), views_plugin_argument_default::init(), views_plugin_access::init(), views_handler_field_user_name::init(), views_handler_field_user::init(), views_plugin_argument_validate_taxonomy_term::init(), views_plugin_argument_default_taxonomy_tid::init(), views_handler_relationship_node_term_data::init(), views_handler_filter_term_node_tid::init(), views_handler_field_term_node_tid::init(), views_handler_field_accesslog_path::init(), views_plugin_row_node_view::init(), views_plugin_row_node_rss::init(), views_handler_field_node_revision::init(), views_handler_field_node::init(), views_handler_field_history_user_timestamp::init(), views_handler_field_field::init(), views_handler_field_node_new_comments::init(), views_handler_field_comment::init(), views_handler::init(), views_handler_filter::init(), views_handler_argument::init(), is_defaulted(), views_handler::is_exposed(), views_handler_relationship::label(), views_handler_field::label(), views_handler_area::label(), views_handler_field_field::multiple_options_form(), views_handler_argument::needs_style_plugin(), views_plugin_style_table::options_form(), views_plugin_style_summary_unformatted::options_form(), views_plugin_style_summary_jump_menu::options_form(), views_plugin_style_summary::options_form(), views_plugin_style_rss::options_form(), views_plugin_style_list::options_form(), views_plugin_style_jump_menu::options_form(), views_plugin_style_grid::options_form(), views_plugin_style::options_form(), views_plugin_row_fields::options_form(), views_plugin_row::options_form(), views_plugin_query_default::options_form(), views_plugin_pager_some::options_form(), views_plugin_pager_none::options_form(), views_plugin_pager_full::options_form(), views_plugin_exposed_form_input_required::options_form(), views_plugin_exposed_form::options_form(), options_form(), views_plugin_cache_time::options_form(), views_plugin_argument_validate_php::options_form(), views_plugin_argument_default_raw::options_form(), views_plugin_argument_default_php::options_form(), views_plugin_argument_default_fixed::options_form(), views_plugin_access_role::options_form(), views_plugin_access_perm::options_form(), views_plugin_row_user_view::options_form(), views_plugin_argument_validate_user::options_form(), views_plugin_argument_default_user::options_form(), views_handler_field_user_picture::options_form(), views_handler_field_user_name::options_form(), views_handler_field_user_mail::options_form(), views_handler_field_user_link::options_form(), views_handler_field_user::options_form(), views_handler_relationship_translation::options_form(), views_handler_field_node_language::options_form(), views_plugin_argument_validate_taxonomy_term::options_form(), views_plugin_argument_default_taxonomy_tid::options_form(), views_handler_relationship_node_term_data::options_form(), views_handler_field_term_node_tid::options_form(), views_handler_field_term_link_edit::options_form(), views_handler_field_taxonomy::options_form(), views_handler_argument_term_node_tid_depth::options_form(), views_handler_argument_term_node_tid::options_form(), views_handler_field_file_uri::options_form(), views_handler_field_file_filemime::options_form(), views_handler_field_file::options_form(), views_handler_field_accesslog_path::options_form(), views_plugin_row_search_view::options_form(), views_handler_field_search_score::options_form(), views_plugin_row_node_view::options_form(), views_plugin_row_node_rss::options_form(), views_plugin_argument_validate_node::options_form(), views_handler_field_node_type::options_form(), views_handler_field_node_revision::options_form(), views_handler_field_node_path::options_form(), views_handler_field_node_link::options_form(), views_handler_field_node::options_form(), views_handler_field_history_user_timestamp::options_form(), views_handler_field_locale_link_edit::options_form(), views_handler_field_locale_language::options_form(), views_handler_field_field::options_form(), views_handler_argument_field_list::options_form(), views_handler_field_contact_link::options_form(), views_plugin_row_comment_view::options_form(), views_plugin_row_comment_rss::options_form(), views_handler_field_node_new_comments::options_form(), views_handler_field_comment_username::options_form(), views_handler_field_comment_node_link::options_form(), views_handler_field_comment_link_edit::options_form(), views_handler_field_comment_link::options_form(), views_handler_field_comment::options_form(), views_plugin_row_aggregator_rss::options_form(), views_handler_field_aggregator_title_link::options_form(), views_handler_field_aggregator_category::options_form(), views_handler::options_form(), views_handler_sort_date::options_form(), views_handler_relationship_groupwise_max::options_form(), views_handler_relationship::options_form(), views_handler_field_url::options_form(), views_handler_field_time_interval::options_form(), views_handler_field_serialized::options_form(), views_handler_field_prerender_list::options_form(), views_handler_field_numeric::options_form(), views_handler_field_math::options_form(), views_handler_field_machine_name::options_form(), views_handler_field_date::options_form(), views_handler_field_counter::options_form(), views_handler_field_contextual_links::options_form(), views_handler_field_boolean::options_form(), views_handler_argument_string::options_form(), views_handler_argument_numeric::options_form(), views_handler_argument_null::options_form(), views_handler_argument_many_to_one::options_form(), views_handler_argument::options_form(), views_handler_area_view::options_form(), views_handler_area_text::options_form(), views_handler_area_result::options_form(), views_handler_area::options_form(), views_handler_sort::options_submit(), views_handler_relationship_groupwise_max::options_submit(), views_handler_filter::options_submit(), views_handler_sort::options_validate(), views_handler_filter_date::options_validate(), views_handler_filter::options_validate(), views_handler::placeholder(), views_handler_argument_term_node_tid_depth_modifier::pre_query(), views_plugin_argument_validate_user::process_summary_arguments(), views_plugin_argument_validate_taxonomy_term::process_summary_arguments(), views_handler_argument::process_summary_arguments(), views_plugin_style_summary::query(), views_plugin_row::query(), views_plugin_query_default::query(), views_plugin_pager_some::query(), views_plugin_pager_none::query(), views_plugin_pager_full::query(), views_handler_filter_user_current::query(), views_handler_relationship_translation::query(), views_handler_filter_node_tnid_child::query(), views_handler_filter_node_tnid::query(), views_handler_relationship_node_term_data::query(), views_handler_filter_term_node_tid_depth::query(), views_handler_argument_term_node_tid_depth::query(), views_handler_sort_search_score::query(), views_handler_filter_search::query(), views_handler_field_search_score::query(), views_handler_filter_node_status::query(), views_handler_filter_history_user_timestamp::query(), views_handler_relationship_entity_reverse::query(), views_handler_field_field::query(), views_handler_sort_ncs_last_updated::query(), views_handler_sort_ncs_last_comment_name::query(), views_handler_sort_comment_thread::query(), views_handler_filter_comment_user_uid::query(), views_handler_sort_menu_hierarchy::query(), views_handler_sort_group_by_numeric::query(), views_handler_sort_date::query(), views_handler_sort::query(), views_handler_relationship_groupwise_max::query(), views_handler_relationship::query(), views_handler_filter_string::query(), views_handler_filter_numeric::query(), views_handler_filter_in_operator::query(), views_handler_filter_group_by_numeric::query(), views_handler_filter_boolean_operator_string::query(), views_handler_filter_boolean_operator::query(), views_handler_filter::query(), views_handler_field::query(), views_handler_argument_string::query(), views_handler_argument_numeric::query(), views_handler_argument_many_to_one::query(), views_handler_filter_in_operator::reduce_value_options(), views_plugin_style_summary_jump_menu::render(), views_plugin_style_summary::render(), views_plugin_style_rss::render(), views_plugin_style_jump_menu::render(), views_plugin_row::render(), views_plugin_pager_mini::render(), views_plugin_pager_full::render(), views_handler_field_user_picture::render(), views_handler_field_node_language::render(), views_plugin_row_search_view::render(), views_handler_field_profile_date::render(), views_handler_field_node_path::render(), views_handler_field_history_user_timestamp::render(), views_handler_field_ncs_last_comment_name::render(), views_handler_field_last_comment_timestamp::render(), views_handler_field_comment_node_link::render(), views_handler_field_url::render(), views_handler_field_prerender_list::render(), views_handler_field_numeric::render(), views_handler_field_math::render(), views_handler_field_date::render(), views_handler_field_custom::render(), views_handler_field_counter::render(), views_handler_field_contextual_links::render(), views_handler_field_boolean::render(), views_handler_field_file_size::render(), views_handler_area_view::render(), views_handler_area_text::render(), views_handler_area_result::render(), views_plugin_style::render_grouping_sets(), views_handler_field_prerender_list::render_items(), views_handler_field_taxonomy::render_link(), views_handler_field_file::render_link(), views_handler_field_node_revision::render_link(), views_handler_field_node_link_edit::render_link(), views_handler_field_node_link_delete::render_link(), views_handler_field_node::render_link(), views_handler_field_aggregator_category::render_link(), views_handler_field_node_type::render_name(), views_handler_area_text::render_textarea(), views_handler_argument_term_node_tid_depth::set_breadcrumb(), views_handler_argument_term_node_tid::set_breadcrumb(), views_plugin_pager_full::set_current_page(), views_object::set_default_options(), views_plugin_pager::set_items_per_page(), views_plugin_pager::set_offset(), set_option(), set_override(), views_handler::set_relationship(), views_handler_sort::show_expose_button(), views_handler_filter::show_expose_button(), views_handler::show_expose_form(), views_handler_sort::show_sort_form(), views_handler_filter::store_exposed_input(), views_handler_argument_string::summary_query(), views_handler_argument_many_to_one::summary_query(), views_plugin_pager_some::summary_title(), views_plugin_pager_none::summary_title(), views_plugin_pager_mini::summary_title(), views_plugin_pager_full::summary_title(), views_plugin_cache_time::summary_title(), views_plugin_access_role::summary_title(), views_plugin_access_perm::summary_title(), views_plugin_row_user_view::summary_title(), views_plugin_row_node_view::summary_title(), views_plugin_row_node_rss::summary_title(), views_handler_argument_numeric::title(), views_handler_argument_many_to_one::title(), views_handler_field::tokenize_value(), views_handler::ui_name(), views_object::unpack_translatables(), views_plugin_pager_full::update_page_info(), views_handler_argument::uses_breadcrumb(), views_plugin_display_attachment::uses_exposed(), views_plugin_style::uses_tokens(), views_handler_filter_in_operator::validate(), views_handler_argument_null::validate_argument_basic(), views_handler_argument::validate_fail(), views_handler_filter_term_node_tid::validate_term_strings(), views_handler_filter_user_name::value_form(), views_handler_filter_term_node_tid::value_form(), views_handler_filter_history_user_timestamp::value_form(), views_handler_filter_string::value_form(), views_handler_filter_numeric::value_form(), views_handler_filter_in_operator::value_form(), views_handler_filter_equality::value_form(), views_handler_filter_boolean_operator::value_form(), and views_handler_filter_term_node_tid::value_validate().

{ }

views_plugin_display::options_form ( &$  form,
&$  form_state 
)

Provide the default form for setting options.

Reimplemented from views_plugin.

Reimplemented in views_plugin_display_attachment, views_plugin_display_block, views_plugin_display_feed, and views_plugin_display_page.

Definition at line 1359 of file views_plugin_display.inc.

References views_object::$options, views_plugin::additional_theme_functions(), defaultable_sections(), format_themes(), get_handlers(), get_option(), get_plugin(), get_style_type(), option_link(), views_object::options(), views_plugin::theme_functions(), views_fetch_plugin_data(), views_fetch_plugin_names(), views_language_list(), and views_ui_standard_display_dropdown().

                                              {
    parent::options_form($form, $form_state);
    if ($this->defaultable_sections($form_state['section'])) {
      views_ui_standard_display_dropdown($form, $form_state, $form_state['section']);
    }
    $form['#title'] = check_plain($this->display->display_title) . ': ';

    // Set the 'section' to hilite on the form.
    // If it's the item we're looking at is pulling from the default display,
    // reflect that. Don't use is_defaulted since we want it to show up even
    // on the default display.
    if (!empty($this->options['defaults'][$form_state['section']])) {
      $form['#section'] = 'default-' . $form_state['section'];
    }
    else {
      $form['#section'] = $this->display->id . '-' . $form_state['section'];
    }

    switch ($form_state['section']) {
      case 'display_id':
        $form['#title'] .= t('The machine name of this display');
        $form['display_id'] = array(
          '#type' => 'textfield',
          '#description' => t('This is machine name of the display.'),
          '#default_value' => !empty($this->display->new_id) ? $this->display->new_id : $this->display->id,
          '#required' => TRUE,
          '#size' => 64,
        );
        break;
      case 'display_title':
        $form['#title'] .= t('The name and the description of this display');
        $form['display_title'] = array(
          '#title' => t('Name'),
          '#type' => 'textfield',
          '#description' => t('This name will appear only in the administrative interface for the View.'),
          '#default_value' => $this->display->display_title,
        );
        $form['display_description'] = array(
          '#title' => t('Description'),
          '#type' => 'textfield',
          '#description' => t('This description will appear only in the administrative interface for the View.'),
          '#default_value' => $this->get_option('display_description'),
        );
        break;
      case 'display_comment':
        $form['#title'] .= t("This display's comments");
        $form['display_comment'] = array(
          '#type' => 'textarea',
          '#description' => t('This value will be seen and used only within the Views UI and can be used to document this display. You can use this to provide notes for other or future maintainers of your site about how or why this display is configured.'),
          '#default_value' => $this->get_option('display_comment'),
        );
        break;
      case 'title':
        $form['#title'] .= t('The title of this view');
        $form['title'] = array(
          '#type' => 'textfield',
          '#description' => t('This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc.'),
          '#default_value' => $this->get_option('title'),
        );
        break;
      case 'css_class':
        $form['#title'] .= t('CSS class');
        $form['css_class'] = array(
          '#type' => 'textfield',
          '#description' => t('The CSS class names will be added to the view. This enables you to use specific CSS code for each view. You may define multiples classes separated by spaces.'),
          '#default_value' => $this->get_option('css_class'),
        );
        break;
      case 'use_ajax':
        $form['#title'] .= t('Use AJAX when available to load this view');
        $form['description'] = array(
          '#markup' => '<div class="description form-item">' . t('If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This means the entire page will not refresh. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content.') . '</div>',
        );
        $form['use_ajax'] = array(
          '#type' => 'radios',
          '#options' => array(1 => t('Yes'), 0 => t('No')),
          '#default_value' => $this->get_option('use_ajax') ? 1 : 0,
        );
        break;
      case 'hide_attachment_summary':
        $form['#title'] .= t('Hide attachments when displaying a contextual filter summary');
        $form['hide_attachment_summary'] = array(
          '#type' => 'radios',
          '#options' => array(1 => t('Yes'), 0 => t('No')),
          '#default_value' => $this->get_option('hide_attachment_summary') ? 1 : 0,
        );
        break;
      case 'use_more':
        $form['#title'] .= t('Add a more link to the bottom of the display.');
        $form['use_more'] = array(
          '#type' => 'checkbox',
          '#title' => t('Create more link'),
          '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above. You can override the url at the link display setting."),
          '#default_value' => $this->get_option('use_more'),
        );
        $form['use_more_always'] = array(
          '#type' => 'checkbox',
          '#title' => t('Do not display more link unless there is more content'),
          '#description' => t("This will display the more link even if there are no more items to display."),
          '#default_value' => !$this->get_option('use_more_always'),
            '#dependency' => array(
              'edit-use-more' => array(TRUE),
            ),
        );
        $form['use_more_text'] = array(
          '#type' => 'textfield',
          '#title' => t('More link text'),
          '#description' => t("The text to display for the more link."),
          '#default_value' => $this->get_option('use_more_text'),
          '#dependency' => array(
            'edit-use-more' => array(TRUE),
          ),
        );
        break;
      case 'group_by':
        $form['#title'] .= t('Allow grouping and aggregation (calculation) of fields.');
        $form['group_by'] = array(
          '#type' => 'checkbox',
          '#title' => t('Aggregate'),
          '#description' => t('If enabled, some fields may become unavailable. All fields that are selected for grouping will be collapsed to one record per distinct value. Other fields which are selected for aggregation will have the function run on them. For example, you can group nodes on title and count the number of nids in order to get a list of duplicate titles.'),
          '#default_value' => $this->get_option('group_by'),
        );
        break;
      case 'access':
        $form['#title'] .= t('Access restrictions');
        $form['access'] = array(
          '#prefix' => '<div class="clearfix">',
          '#suffix' => '</div>',
          '#tree' => TRUE,
        );

        $access = $this->get_option('access');
        $form['access']['type'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('access', NULL, array($this->view->base_table)),
          '#default_value' => $access['type'],
        );

        $access_plugin = views_fetch_plugin_data('access', $access['type']);
        if (!empty($access_plugin['uses options'])) {
          $form['markup'] = array(
            '#prefix' => '<div class="form-item description">',
            '#markup' => t('You may also adjust the !settings for the currently selected access restriction.', array('!settings' => $this->option_link(t('settings'), 'access_options'))),
            '#suffix' => '</div>',
          );
        }

        break;
      case 'access_options':
        $access = $this->get_option('access');
        $plugin = $this->get_plugin('access');
        $form['#title'] .= t('Access options');
        if ($plugin) {
          $form['#help_topic'] = $plugin->definition['help topic'];
          $form['#help_module'] = $plugin->definition['module'];

          $form['access_options'] = array(
            '#tree' => TRUE,
          );
          $form['access_options']['type'] = array(
            '#type' => 'value',
            '#value' => $access['type'],
          );
          $plugin->options_form($form['access_options'], $form_state);
        }
        break;
      case 'cache':
        $form['#title'] .= t('Caching');
        $form['cache'] = array(
          '#prefix' => '<div class="clearfix">',
          '#suffix' => '</div>',
          '#tree' => TRUE,
        );

        $cache = $this->get_option('cache');
        $form['cache']['type'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('cache', NULL, array($this->view->base_table)),
          '#default_value' => $cache['type'],
        );

        $cache_plugin = views_fetch_plugin_data('cache', $cache['type']);
        if (!empty($cache_plugin['uses options'])) {
          $form['markup'] = array(
            '#prefix' => '<div class="form-item description">',
            '#suffix' => '</div>',
            '#markup' => t('You may also adjust the !settings for the currently selected cache mechanism.', array('!settings' => $this->option_link(t('settings'), 'cache_options'))),
          );
        }
        break;
      case 'cache_options':
        $cache = $this->get_option('cache');
        $plugin = $this->get_plugin('cache');
        $form['#title'] .= t('Caching options');
        if ($plugin) {
          $form['#help_topic'] = $plugin->definition['help topic'];
          $form['#help_module'] = $plugin->definition['module'];

          $form['cache_options'] = array(
            '#tree' => TRUE,
          );
          $form['cache_options']['type'] = array(
            '#type' => 'value',
            '#value' => $cache['type'],
          );
          $plugin->options_form($form['cache_options'], $form_state);
        }
        break;
      case 'query':
        $query_options = $this->get_option('query');
        $plugin_name = $query_options['type'];

        $form['#title'] .= t('Query options');
        $this->view->init_query();
        if ($this->view->query) {
          if (isset($this->view->query->definition['help topic'])) {
            $form['#help_topic'] = $this->view->query->definition['help topic'];
          }

          if (isset($this->view->query->definition['module'])) {
            $form['#help_module'] = $this->view->query->definition['module'];
          }

          $form['query'] = array(
            '#tree' => TRUE,
            'type' => array(
              '#type' => 'value',
              '#value' => $plugin_name,
            ),
            'options' => array(
              '#tree' => TRUE,
            ),
          );

          $this->view->query->options_form($form['query']['options'], $form_state);
        }
        break;
      case 'field_language':
        $form['#title'] .= t('Field Language');

        $entities = entity_get_info();
        $entity_tables = array();
        $has_translation_handlers = FALSE;
        foreach ($entities as $type => $entity_info) {
          $entity_tables[] = $entity_info['base table'];

          if (!empty($entity_info['translation'])) {
            $has_translation_handlers = TRUE;
          }
        }

        // Doesn't make sense to show a field setting here if we aren't querying
        // an entity base table. Also, we make sure that there's at least one
        // entity type with a translation handler attached.
        if (in_array($this->view->base_table, $entity_tables) && $has_translation_handlers) {
          $languages = array(
            '***CURRENT_LANGUAGE***' => t("Current user's language"),
            '***DEFAULT_LANGUAGE***' => t("Default site language"),
            LANGUAGE_NONE => t('Language neutral'),
          );
          $languages = array_merge($languages, views_language_list());

          $form['field_language'] = array(
            '#type' => 'select',
            '#title' => t('Field Language'),
            '#description' => t('All fields which support translations will be displayed in the selected language.'),
            '#options' => $languages,
            '#default_value' => $this->get_option('field_language'),
          );
          $form['field_language_add_to_query'] = array(
            '#type' => 'checkbox',
            '#title' => t('When needed, add the field language condition to the query'),
            '#default_value' => $this->get_option('field_language_add_to_query'),
          );
        }
        else {
          $form['field_language']['#markup'] = t("You don't have translatable entity types.");
        }
        break;
      case 'style_plugin':
        $form['#title'] .= t('How should this view be styled');
        $form['#help_topic'] = 'style';
        $form['style_plugin'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('style', $this->get_style_type(), array($this->view->base_table)),
          '#default_value' => $this->get_option('style_plugin'),
          '#description' => t('If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary.'),
        );

        $style_plugin = views_fetch_plugin_data('style', $this->get_option('style_plugin'));
        if (!empty($style_plugin['uses options'])) {
          $form['markup'] = array(
            '#markup' => '<div class="form-item description">' . t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->option_link(t('settings'), 'style_options'))) . '</div>',
          );
        }

        break;
      case 'style_options':
        $form['#title'] .= t('Style options');
        $style = TRUE;
        $type = 'style_plugin';
        $name = $this->get_option('style_plugin');

      case 'row_options':
        if (!isset($name)) {
          $name = $this->get_option('row_plugin');
        }
        // if row, $style will be empty.
        if (empty($style)) {
          $form['#title'] .= t('Row style options');
          $type = 'row_plugin';
        }
        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
        if ($plugin) {
          if (isset($plugin->definition['help topic'])) {
            $form['#help_topic'] = $plugin->definition['help topic'];
            $form['#help_module'] = $plugin->definition['module'];
          }
          $form[$form_state['section']] = array(
            '#tree' => TRUE,
          );
          $plugin->options_form($form[$form_state['section']], $form_state);
        }
        break;
      case 'row_plugin':
        $form['#title'] .= t('How should each row in this view be styled');
        $form['#help_topic'] = 'style-row';
        $form['row_plugin'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('row', $this->get_style_type(), array($this->view->base_table)),
          '#default_value' => $this->get_option('row_plugin'),
        );

        $row_plugin = views_fetch_plugin_data('row', $this->get_option('row_plugin'));
        if (!empty($row_plugin['uses options'])) {
          $form['markup'] = array(
            '#markup' => '<div class="form-item description">' . t('You may also adjust the !settings for the currently selected row style.', array('!settings' => $this->option_link(t('settings'), 'row_options'))) . '</div>',
          );
        }

        break;
      case 'link_display':
        $form['#title'] .= t('Which display to use for path');
        foreach ($this->view->display as $display_id => $display) {
          if ($display->handler->has_path()) {
            $options[$display_id] = $display->display_title;
          }
        }
        $options['custom_url'] = t('Custom URL');
        if (count($options)) {
          $form['link_display'] = array(
            '#type' => 'radios',
            '#options' => $options,
            '#description' => t("Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."),
            '#default_value' => $this->get_option('link_display'),
          );
        }

        $options = array();
        $count = 0; // This lets us prepare the key as we want it printed.
        foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
          $options[t('Arguments')]['%' . ++$count] = t('@argument title', array('@argument' => $handler->ui_name()));
          $options[t('Arguments')]['!' . $count] = t('@argument input', array('@argument' => $handler->ui_name()));
        }

        // Default text.
        // We have some options, so make a list.
        $output = '';
        if (!empty($options)) {
          $output = t('<p>The following tokens are available for this link.</p>');
          foreach (array_keys($options) as $type) {
            if (!empty($options[$type])) {
              $items = array();
              foreach ($options[$type] as $key => $value) {
                $items[] = $key . ' == ' . $value;
              }
              $output .= theme('item_list',
                array(
                  'items' => $items,
                  'type' => $type
                ));
            }
          }
        }

        $form['link_url'] = array(
          '#type' => 'textfield',
          '#title' => t('Custom URL'),
          '#default_value' => $this->get_option('link_url'),
          '#description' => t('A Drupal path or external URL the more link will point to. Note that this will override the link display setting above.') . $output,
          '#dependency' => array('radio:link_display' => array('custom_url')),
        );
        break;
      case 'analyze-theme':
        $form['#title'] .= t('Theming information');
        $form['#help_topic'] = 'analyze-theme';

        if (isset($_POST['theme'])) {
          $this->theme = $_POST['theme'];
        }
        elseif (empty($this->theme)) {
          $this->theme = variable_get('theme_default', 'bartik');
        }

        if (isset($GLOBALS['theme']) && $GLOBALS['theme'] == $this->theme) {
          $this->theme_registry = theme_get_registry();
          $theme_engine = $GLOBALS['theme_engine'];
        }
        else {
          $themes = list_themes();
          $theme = $themes[$this->theme];

          // Find all our ancestor themes and put them in an array.
          $base_theme = array();
          $ancestor = $this->theme;
          while ($ancestor && isset($themes[$ancestor]->base_theme)) {
            $ancestor = $themes[$ancestor]->base_theme;
            $base_theme[] = $themes[$ancestor];
          }

          // The base themes should be initialized in the right order.
          $base_theme = array_reverse($base_theme);

          // This code is copied directly from _drupal_theme_initialize()
          $theme_engine = NULL;

          // Initialize the theme.
          if (isset($theme->engine)) {
            // Include the engine.
            include_once DRUPAL_ROOT . '/' . $theme->owner;

            $theme_engine = $theme->engine;
            if (function_exists($theme_engine . '_init')) {
              foreach ($base_theme as $base) {
                call_user_func($theme_engine . '_init', $base);
              }
              call_user_func($theme_engine . '_init', $theme);
            }
          }
          else {
            // include non-engine theme files
            foreach ($base_theme as $base) {
              // Include the theme file or the engine.
              if (!empty($base->owner)) {
                include_once DRUPAL_ROOT . '/' . $base->owner;
              }
            }
            // and our theme gets one too.
            if (!empty($theme->owner)) {
              include_once DRUPAL_ROOT . '/' . $theme->owner;
            }
          }
          $this->theme_registry = _theme_load_registry($theme, $base_theme, $theme_engine);
        }

        // If there's a theme engine involved, we also need to know its extension
        // so we can give the proper filename.
        $this->theme_extension = '.tpl.php';
        if (isset($theme_engine)) {
          $extension_function = $theme_engine . '_extension';
          if (function_exists($extension_function)) {
            $this->theme_extension = $extension_function();
          }
        }

        $funcs = array();
        // Get theme functions for the display. Note that some displays may
        // not have themes. The 'feed' display, for example, completely
        // delegates to the style.
        if (!empty($this->definition['theme'])) {
          $funcs[] = $this->option_link(t('Display output'), 'analyze-theme-display') . ': '  . $this->format_themes($this->theme_functions());
          $themes = $this->additional_theme_functions();
          if ($themes) {
            foreach ($themes as $theme) {
              $funcs[] = $this->option_link(t('Alternative display output'), 'analyze-theme-display') . ': '  . $this->format_themes($theme);
            }
          }
        }

        $plugin = $this->get_plugin();
        if ($plugin) {
          $funcs[] = $this->option_link(t('Style output'), 'analyze-theme-style') . ': ' . $this->format_themes($plugin->theme_functions(), $plugin->additional_theme_functions());
          $themes = $plugin->additional_theme_functions();
          if ($themes) {
            foreach ($themes as $theme) {
              $funcs[] = $this->option_link(t('Alternative style'), 'analyze-theme-style') . ': '  . $this->format_themes($theme);
            }
          }

          if ($plugin->uses_row_plugin()) {
            $row_plugin = $this->get_plugin('row');
            if ($row_plugin) {
              $funcs[] = $this->option_link(t('Row style output'), 'analyze-theme-row') . ': ' . $this->format_themes($row_plugin->theme_functions());
              $themes = $row_plugin->additional_theme_functions();
              if ($themes) {
                foreach ($themes as $theme) {
                  $funcs[] = $this->option_link(t('Alternative row style'), 'analyze-theme-row') . ': '  . $this->format_themes($theme);
                }
              }
            }
          }

          if ($plugin->uses_fields()) {
            foreach ($this->get_handlers('field') as $id => $handler) {
              $funcs[] = $this->option_link(t('Field @field (ID: @id)', array('@field' => $handler->ui_name(), '@id' => $id)), 'analyze-theme-field') . ': ' . $this->format_themes($handler->theme_functions());
            }
          }
        }

        $form['important'] = array(
          '#markup' => '<div class="form-item description"><p>' . t('This section lists all possible templates for the display plugin and for the style plugins, ordered roughly from the least specific to the most specific. The active template for each plugin -- which is the most specific template found on the system -- is highlighted in bold.') . '</p></div>',
        );

        if (isset($this->view->display[$this->view->current_display]->new_id)) {
          $form['important']['new_id'] = array(
            '#prefix' => '<div class="description">',
            '#suffix' => '</div>',
            '#value' => t("<strong>Important!</strong> You have changed the display's machine name. Anything that attached to this display specifically, such as theming, may stop working until it is updated. To see theme suggestions for it, you need to save the view."),
          );
        }

        foreach (list_themes() as $key => $theme) {
          if (!empty($theme->info['hidden'])) {
            continue;
          }
          $options[$key] = $theme->info['name'];
        }

        $form['box'] = array(
          '#prefix' => '<div class="container-inline">',
          '#suffix' => '</div>',
        );
        $form['box']['theme'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => $this->theme,
        );

        $form['box']['change'] = array(
          '#type' => 'submit',
          '#value' => t('Change theme'),
          '#submit' => array('views_ui_edit_display_form_change_theme'),
        );

        $form['analysis'] = array(
          '#markup' => '<div class="form-item">' . theme('item_list', array('items' => $funcs)) . '</div>',
        );

        $form['rescan_button'] = array(
          '#prefix' => '<div class="form-item">',
          '#suffix' => '</div>',
        );
        $form['rescan_button']['button'] = array(
          '#type' => 'submit',
          '#value' => t('Rescan template files'),
          '#submit' => array('views_ui_config_item_form_rescan'),
        );
        $form['rescan_button']['markup'] = array(
          '#markup' => '<div class="description">' . t("<strong>Important!</strong> When adding, removing, or renaming template files, it is necessary to make Drupal aware of the changes by making it rescan the files on your system. By clicking this button you clear Drupal's theme registry and thereby trigger this rescanning process. The highlighted templates above will then reflect the new state of your system.") . '</div>',
        );

        $form_state['ok_button'] = TRUE;
        break;
      case 'analyze-theme-display':
        $form['#title'] .= t('Theming information (display)');
        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';

        if (empty($this->definition['theme'])) {
          $output .= t('This display has no theming information');
        }
        else {
          $output .= '<p>' . t('This is the default theme template used for this display.') . '</p>';
          $output .= '<pre>' . check_plain(file_get_contents('./' . $this->definition['theme path'] . '/' . strtr($this->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
        }

        if (!empty($this->definition['additional themes'])) {
          foreach ($this->definition['additional themes'] as $theme => $type) {
            $output .= '<p>' . t('This is an alternative template for this display.') . '</p>';
            $output .= '<pre>' . check_plain(file_get_contents('./' . $this->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
          }
        }

        $form['analysis'] = array(
          '#markup' => '<div class="form-item">' . $output . '</div>',
        );

        $form_state['ok_button'] = TRUE;
        break;
      case 'analyze-theme-style':
        $form['#title'] .= t('Theming information (style)');
        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';

        $plugin = $this->get_plugin();

        if (empty($plugin->definition['theme'])) {
          $output .= t('This display has no style theming information');
        }
        else {
          $output .= '<p>' . t('This is the default theme template used for this style.') . '</p>';
          $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($plugin->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
        }

        if (!empty($plugin->definition['additional themes'])) {
          foreach ($plugin->definition['additional themes'] as $theme => $type) {
            $output .= '<p>' . t('This is an alternative template for this style.') . '</p>';
            $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
          }
        }

        $form['analysis'] = array(
          '#markup' => '<div class="form-item">' . $output . '</div>',
        );

        $form_state['ok_button'] = TRUE;
        break;
      case 'analyze-theme-row':
        $form['#title'] .= t('Theming information (row style)');
        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';

        $plugin = $this->get_plugin('row');

        if (empty($plugin->definition['theme'])) {
          $output .= t('This display has no row style theming information');
        }
        else {
          $output .= '<p>' . t('This is the default theme template used for this row style.') . '</p>';
          $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($plugin->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
        }

        if (!empty($plugin->definition['additional themes'])) {
          foreach ($plugin->definition['additional themes'] as $theme => $type) {
            $output .= '<p>' . t('This is an alternative template for this row style.') . '</p>';
            $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
          }
        }

        $form['analysis'] = array(
          '#markup' => '<div class="form-item">' . $output . '</div>',
        );

        $form_state['ok_button'] = TRUE;
        break;
      case 'analyze-theme-field':
        $form['#title'] .= t('Theming information (row style)');
        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';

        $output .= '<p>' . t('This is the default theme template used for this row style.') . '</p>';

        // Field templates aren't registered the normal way...and they're always
        // this one, anyhow.
        $output .= '<pre>' . check_plain(file_get_contents(drupal_get_path('module', 'views') . '/theme/views-view-field.tpl.php')) . '</pre>';

        $form['analysis'] = array(
          '#markup' => '<div class="form-item">' . $output . '</div>',
        );
        $form_state['ok_button'] = TRUE;
        break;

      case 'exposed_block':
        $form['#title'] .= t('Put the exposed form in a block');
        $form['description'] = array(
          '#markup' => '<div class="description form-item">' . t('If set, any exposed widgets will not appear with this view. Instead, a block will be made available to the Drupal block administration system, and the exposed form will appear there. Note that this block must be enabled manually, Views will not enable it for you.') . '</div>',
        );
        $form['exposed_block'] = array(
          '#type' => 'radios',
          '#options' => array(1 => t('Yes'), 0 => t('No')),
          '#default_value' => $this->get_option('exposed_block') ? 1 : 0,
        );
        break;
      case 'exposed_form':
        $form['#title'] .= t('Exposed Form');
        $form['exposed_form'] = array(
          '#prefix' => '<div class="clearfix">',
          '#suffix' => '</div>',
          '#tree' => TRUE,
        );

        $exposed_form = $this->get_option('exposed_form');
        $form['exposed_form']['type'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('exposed_form', NULL, array($this->view->base_table)),
          '#default_value' => $exposed_form['type'],
        );

        $exposed_form_plugin = views_fetch_plugin_data('exposed_form', $exposed_form['type']);
        if (!empty($exposed_form_plugin['uses options'])) {
          $form['markup'] = array(
            '#prefix' => '<div class="form-item description">',
            '#suffix' => '</div>',
            '#markup' => t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->option_link(t('settings'), 'exposed_form_options'))),
          );
        }
        break;
      case 'exposed_form_options':
        $plugin = $this->get_plugin('exposed_form');
        $form['#title'] .= t('Exposed form options');
        if ($plugin) {
          $form['#help_topic'] = $plugin->definition['help topic'];

          $form['exposed_form_options'] = array(
            '#tree' => TRUE,
          );
          $plugin->options_form($form['exposed_form_options'], $form_state);
        }
        break;
      case 'pager':
        $form['#title'] .= t('Select which pager, if any, to use for this view');
        $form['pager'] = array(
          '#prefix' => '<div class="clearfix">',
          '#suffix' => '</div>',
          '#tree' => TRUE,
        );

        $pager = $this->get_option('pager');
        $form['pager']['type'] =  array(
          '#type' => 'radios',
          '#options' => views_fetch_plugin_names('pager', empty($this->definition['use pager']) ? 'basic' : NULL, array($this->view->base_table)),
          '#default_value' => $pager['type'],
        );

        $pager_plugin = views_fetch_plugin_data('pager', $pager['type'], array($this->view->base_table));
        if (!empty($pager_plugin['uses options'])) {
          $form['markup'] = array(
            '#prefix' => '<div class="form-item description">',
            '#suffix' => '</div>',
            '#markup' => t('You may also adjust the !settings for the currently selected pager.', array('!settings' => $this->option_link(t('settings'), 'pager_options'))),
          );
        }

        break;
      case 'pager_options':
        $plugin = $this->get_plugin('pager');
        $form['#title'] .= t('Pager options');
        if ($plugin) {
          $form['#help_topic'] = $plugin->definition['help topic'];

          $form['pager_options'] = array(
            '#tree' => TRUE,
          );
          $plugin->options_form($form['pager_options'], $form_state);
        }
        break;
    }

    foreach ($this->extender as $extender) {
      $extender->options_form($form, $form_state);
    }
  }

views_plugin_display::options_override ( form,
&$  form_state 
)

If override/revert was clicked, perform the proper toggle.

Definition at line 2411 of file views_plugin_display.inc.

References set_override().

                                                 {
    $this->set_override($form_state['section']);
  }

views_plugin_display::options_submit ( &$  form,
&$  form_state 
)

Perform any necessary changes to the form values prior to storage.

There is no need for this function to actually store the data.

Reimplemented from views_plugin.

Reimplemented in views_plugin_display_attachment, views_plugin_display_block, views_plugin_display_feed, and views_plugin_display_page.

Definition at line 2214 of file views_plugin_display.inc.

References get_option(), get_plugin(), set_option(), views_get_plugin(), and views_ui_add_form_to_stack().

                                                {
    // Not sure I like this being here, but it seems (?) like a logical place.
    $cache_plugin = $this->get_plugin('cache');
    if ($cache_plugin) {
      $cache_plugin->cache_flush();
    }

    $section = $form_state['section'];
    switch ($section) {
      case 'display_id':
        if (isset($form_state['values']['display_id'])) {
          $this->display->new_id = $form_state['values']['display_id'];
        }
        break;
      case 'display_title':
        $this->display->display_title = $form_state['values']['display_title'];
        $this->set_option('display_description', $form_state['values']['display_description']);
        break;
      case 'access':
        $access = $this->get_option('access');
        if ($access['type'] != $form_state['values']['access']['type']) {
          $plugin = views_get_plugin('access', $form_state['values']['access']['type']);
          if ($plugin) {
            $access = array('type' => $form_state['values']['access']['type']);
            $this->set_option('access', $access);
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('access_options'));
            }
          }
        }

        break;
      case 'access_options':
        $plugin = views_get_plugin('access', $form_state['values'][$section]['type']);
        if ($plugin) {
          $plugin->options_submit($form['access_options'], $form_state);
          $this->set_option('access', $form_state['values'][$section]);
        }
        break;
      case 'cache':
        $cache = $this->get_option('cache');
        if ($cache['type'] != $form_state['values']['cache']['type']) {
          $plugin = views_get_plugin('cache', $form_state['values']['cache']['type']);
          if ($plugin) {
            $cache = array('type' => $form_state['values']['cache']['type']);
            $this->set_option('cache', $cache);
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('cache_options'));
            }
          }
        }

        break;
      case 'cache_options':
        $plugin = views_get_plugin('cache', $form_state['values'][$section]['type']);
        if ($plugin) {
          $plugin->options_submit($form['cache_options'], $form_state);
          $this->set_option('cache', $form_state['values'][$section]);
        }
        break;
      case 'query':
        $plugin = $this->get_plugin('query');
        if ($plugin) {
          $plugin->options_submit($form['query']['options'], $form_state);
          $this->set_option('query', $form_state['values'][$section]);
        }
        break;

      case 'link_display':
        $this->set_option('link_url', $form_state['values']['link_url']);
      case 'title':
      case 'css_class':
      case 'display_comment':
        $this->set_option($section, $form_state['values'][$section]);
        break;
      case 'field_language':
        $this->set_option('field_language', $form_state['values']['field_language']);
        $this->set_option('field_language_add_to_query', $form_state['values']['field_language_add_to_query']);
        break;
      case 'use_ajax':
      case 'hide_attachment_summary':
        $this->set_option($section, (bool)$form_state['values'][$section]);
        break;
      case 'use_more':
        $this->set_option($section, intval($form_state['values'][$section]));
        $this->set_option('use_more_always', !intval($form_state['values']['use_more_always']));
        $this->set_option('use_more_text', $form_state['values']['use_more_text']);
      case 'distinct':
        $this->set_option($section, $form_state['values'][$section]);
        break;
      case 'group_by':
        $this->set_option($section, $form_state['values'][$section]);
        break;
      case 'row_plugin':
        // This if prevents resetting options to default if they don't change
        // the plugin.
        if ($this->get_option($section) != $form_state['values'][$section]) {
          $plugin = views_get_plugin('row', $form_state['values'][$section]);
          if ($plugin) {
            $this->set_option($section, $form_state['values'][$section]);
            $this->set_option('row_options', array());

            // send ajax form to options page if we use it.
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('row_options'));
            }
          }
        }
        break;
      case 'style_plugin':
        // This if prevents resetting options to default if they don't change
        // the plugin.
        if ($this->get_option($section) != $form_state['values'][$section]) {
          $plugin = views_get_plugin('style', $form_state['values'][$section]);
          if ($plugin) {
            $this->set_option($section, $form_state['values'][$section]);
            $this->set_option('style_options', array());
            // send ajax form to options page if we use it.
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('style_options'));
            }
          }
        }
        break;
      case 'style_options':
        $style = TRUE;
      case 'row_options':
        // if row, $style will be empty.
        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
        if ($plugin) {
          $plugin->options_submit($form['options'][$section], $form_state);
        }
        $this->set_option($section, $form_state['values'][$section]);
        break;
      case 'exposed_block':
        $this->set_option($section, (bool) $form_state['values'][$section]);
        break;
      case 'exposed_form':
        $exposed_form = $this->get_option('exposed_form');
        if ($exposed_form['type'] != $form_state['values']['exposed_form']['type']) {
          $plugin = views_get_plugin('exposed_form', $form_state['values']['exposed_form']['type']);
          if ($plugin) {
            $exposed_form = array('type' => $form_state['values']['exposed_form']['type'], 'options' => array());
            $this->set_option('exposed_form', $exposed_form);
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('exposed_form_options'));
            }
          }
        }

        break;
      case 'exposed_form_options':
        $plugin = $this->get_plugin('exposed_form');
        if ($plugin) {
          $exposed_form = $this->get_option('exposed_form');
          $plugin->options_submit($form['exposed_form_options'], $form_state);
          $exposed_form['options'] = $form_state['values'][$section];
          $this->set_option('exposed_form', $exposed_form);
        }
        break;
      case 'pager':
        $pager = $this->get_option('pager');
        if ($pager['type'] != $form_state['values']['pager']['type']) {
          $plugin = views_get_plugin('pager', $form_state['values']['pager']['type']);
          if ($plugin) {
            // Because pagers have very similar options, let's allow pagers to
            // try to carry the options over.
            $plugin->init($this->view, $this->display, $pager['options']);

            $pager = array('type' => $form_state['values']['pager']['type'], 'options' => $plugin->options);
            $this->set_option('pager', $pager);
            if (!empty($plugin->definition['uses options'])) {
              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('pager_options'));
            }
          }
        }

        break;
      case 'pager_options':
        $plugin = $this->get_plugin('pager');
        if ($plugin) {
          $pager = $this->get_option('pager');
          $plugin->options_submit($form['pager_options'], $form_state);
          $pager['options'] = $form_state['values'][$section];
          $this->set_option('pager', $pager);
        }
        break;
    }

    foreach ($this->extender as $extender) {
      $extender->options_submit($form, $form_state);
    }
  }

views_plugin_display::options_summary ( &$  categories,
&$  options 
)

Provide the default summary for options in the views UI.

This output is returned as an array.

Reimplemented in views_plugin_display_attachment, views_plugin_display_block, views_plugin_display_feed, and views_plugin_display_page.

Definition at line 1051 of file views_plugin_display.inc.

References views_object::$options, get_link_display(), get_option(), get_plugin(), uses_exposed_form_in_block(), uses_link_display(), views_fetch_plugin_data(), and views_get_plugin().

                                                    {
    $categories = array(
      'title' => array(
        'title' => t('Title'),
        'column' => 'first',
      ),
      'format' => array(
        'title' => t('Format'),
        'column' => 'first',
      ),
      'filters' => array(
        'title' => t('Filters'),
        'column' => 'first',
      ),
      'fields' => array(
        'title' => t('Fields'),
        'column' => 'first',
      ),
      'pager' => array(
        'title' => t('Pager'),
        'column' => 'second',
      ),
      'exposed' => array(
        'title' => t('Exposed form'),
        'column' => 'third',
        'build' => array(
          '#weight' => 1,
        ),
      ),
      'access' => array(
        'title' => '',
        'column' => 'second',
        'build' => array(
          '#weight' => -5,
        ),
      ),
      'other' => array(
        'title' => t('Other'),
        'column' => 'third',
        'build' => array(
          '#weight' => 2,
        ),
      ),
    );

    if ($this->display->id != 'default') {
      $options['display_id'] = array(
        'category' => 'other',
        'title' => t('Machine Name'),
        'value' => !empty($this->display->new_id) ? check_plain($this->display->new_id) : check_plain($this->display->id),
        'desc' => t('Change the machine name of this display.'),
      );
    }

    $display_comment = check_plain(drupal_substr($this->get_option('display_comment'), 0, 10));
    $options['display_comment'] = array(
      'category' => 'other',
      'title' => t('Comment'),
      'value' => !empty($display_comment) ? $display_comment : t('No comment'),
      'desc' => t('Comment or document this display.'),
    );

    $title = strip_tags($this->get_option('title'));
    if (!$title) {
      $title = t('None');
    }

    $options['title'] = array(
      'category' => 'title',
      'title' => t('Title'),
      'value' => $title,
      'desc' => t('Change the title that this display will use.'),
    );

    $style_plugin = views_fetch_plugin_data('style', $this->get_option('style_plugin'));
    $style_plugin_instance = $this->get_plugin('style');
    $style_summary = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin_instance->summary_title();
    $style_title = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin_instance->plugin_title();

    $style = '';

    $options['style_plugin'] = array(
      'category' => 'format',
      'title' => t('Format'),
      'value' => $style_title,
      'setting' => $style_summary,
      'desc' => t('Change the way content is formatted.'),
    );

    // This adds a 'Settings' link to the style_options setting if the style has options.
    if (!empty($style_plugin['uses options'])) {
      $options['style_plugin']['links']['style_options'] = t('Change settings for this format');
    }

    if (!empty($style_plugin['uses row plugin'])) {
      $row_plugin = views_fetch_plugin_data('row', $this->get_option('row_plugin'));
      $row_plugin_instance = $this->get_plugin('row');
      $row_summary = empty($row_plugin['title']) ? t('Missing style plugin') : $row_plugin_instance->summary_title();
      $row_title = empty($row_plugin['title']) ? t('Missing style plugin') : $row_plugin_instance->plugin_title();

      $options['row_plugin'] = array(
        'category' => 'format',
        'title' => t('Show'),
        'value' => $row_title,
        'setting' => $row_summary,
        'desc' => t('Change the way each row in the view is styled.'),
      );
      // This adds a 'Settings' link to the row_options setting if the row style has options.
      if (!empty($row_plugin['uses options'])) {
        $options['row_plugin']['links']['row_options'] = t('Change settings for this style');
      }
    }
    if (!empty($this->definition['use ajax'])) {
      $options['use_ajax'] = array(
        'category' => 'other',
        'title' => t('Use AJAX'),
        'value' => $this->get_option('use_ajax') ? t('Yes') : t('No'),
        'desc' => t('Change whether or not this display will use AJAX.'),
      );
    }
    if (!empty($this->definition['accept attachments'])) {
      $options['hide_attachment_summary'] = array(
        'category' => 'other',
        'title' => t('Hide attachments in summary'),
        'value' => $this->get_option('hide_attachment_summary') ? t('Yes') : t('No'),
        'desc' => t('Change whether or not to display attachments when displaying a contextual filter summary.'),
      );
    }

    $pager_plugin = $this->get_plugin('pager');
    if (!$pager_plugin) {
      // default to the no pager plugin.
      $pager_plugin = views_get_plugin('pager', 'none');
    }

    $pager_str = $pager_plugin->summary_title();

    $options['pager'] = array(
      'category' => 'pager',
      'title' => t('Use pager'),
      'value' => $pager_plugin->plugin_title(),
      'setting' => $pager_str,
      'desc' => t("Change this display's pager setting."),
    );

    // If pagers aren't allowed, change the text of the item:
    if (empty($this->definition['use pager'])) {
      $options['pager']['title'] = t('Items to display');
    }

    if (!empty($pager_plugin->definition['uses options'])) {
      $options['pager']['links']['pager_options'] = t('Change settings for this pager type.');
    }

    if (!empty($this->definition['use more'])) {
      $options['use_more'] = array(
        'category' => 'pager',
        'title' => t('More link'),
        'value' => $this->get_option('use_more') ? t('Yes') : t('No'),
        'desc' => t('Specify whether this display will provide a "more" link.'),
      );
    }

    $this->view->init_query();
    if ($this->view->query->get_aggregation_info()) {
      $options['group_by'] = array(
        'category' => 'other',
        'title' => t('Use aggregation'),
        'value' => $this->get_option('group_by') ? t('Yes') : t('No'),
        'desc' => t('Allow grouping and aggregation (calculation) of fields.'),
      );
    }

    $options['query'] = array(
      'category' => 'other',
      'title' => t('Query settings'),
      'value' => t('Settings'),
      'desc' => t('Allow to set some advanced settings for the query plugin'),
    );

    $languages = array(
        '***CURRENT_LANGUAGE***' => t("Current user's language"),
        '***DEFAULT_LANGUAGE***' => t("Default site language"),
        LANGUAGE_NONE => t('Language neutral'),
    );
    if (module_exists('locale')) {
      $languages = array_merge($languages, locale_language_list());
    }
    $field_language = array();
    $options['field_language'] = array(
      'category' => 'other',
      'title' => t('Field Language'),
      'value' => $languages[$this->get_option('field_language')],
      'desc' => t('All fields which support translations will be displayed in the selected language.'),
    );

    $access_plugin = $this->get_plugin('access');
    if (!$access_plugin) {
      // default to the no access control plugin.
      $access_plugin = views_get_plugin('access', 'none');
    }

    $access_str = $access_plugin->summary_title();

    $options['access'] = array(
      'category' => 'access',
      'title' => t('Access'),
      'value' => $access_plugin->plugin_title(),
      'setting' => $access_str,
      'desc' => t('Specify access control type for this display.'),
    );

    if (!empty($access_plugin->definition['uses options'])) {
      $options['access']['links']['access_options'] = t('Change settings for this access type.');
    }

    $cache_plugin = $this->get_plugin('cache');
    if (!$cache_plugin) {
      // default to the no cache control plugin.
      $cache_plugin = views_get_plugin('cache', 'none');
    }

    $cache_str = $cache_plugin->summary_title();

    $options['cache'] = array(
      'category' => 'other',
      'title' => t('Caching'),
      'value' => $cache_plugin->plugin_title(),
      'setting' => $cache_str,
      'desc' => t('Specify caching type for this display.'),
    );

    if (!empty($cache_plugin->definition['uses options'])) {
      $options['cache']['links']['cache_options'] = t('Change settings for this caching type.');
    }

    if (!empty($access_plugin->definition['uses options'])) {
      $options['access']['links']['access_options'] = t('Change settings for this access type.');
    }

    if ($this->uses_link_display()) {
      $display_id = $this->get_link_display();
      $link_display = empty($this->view->display[$display_id]) ? t('None') : check_plain($this->view->display[$display_id]->display_title);
      $link_display =  $this->get_option('link_display') == 'custom_url' ? t('Custom URL') : $link_display;
      $options['link_display'] = array(
        'category' => 'other',
        'title' => t('Link display'),
        'value' => $link_display,
        'desc' => t('Specify which display or custom url this display will link to.'),
      );
    }

    if ($this->uses_exposed_form_in_block()) {
      $options['exposed_block'] = array(
        'category' => 'exposed',
        'title' => t('Exposed form in block'),
        'value' => $this->get_option('exposed_block') ? t('Yes') : t('No'),
        'desc' => t('Allow the exposed form to appear in a block instead of the view.'),
      );
    }

    $exposed_form_plugin = $this->get_plugin('exposed_form');
    if (!$exposed_form_plugin) {
      // default to the no cache control plugin.
      $exposed_form_plugin = views_get_plugin('exposed_form', 'basic');
    }

    $exposed_form_str = $exposed_form_plugin->summary_title();

    $options['exposed_form'] = array(
      'category' => 'exposed',
      'title' => t('Exposed form style'),
      'value' => $exposed_form_plugin->plugin_title(),
      'setting' => $exposed_form_str,
      'desc' => t('Select the kind of exposed filter to use.'),
    );

    if (!empty($exposed_form_plugin->definition['uses options'])) {
      $options['exposed_form']['links']['exposed_form_options'] = t('Exposed form settings for this exposed form style.');
    }

    $css_class = check_plain(trim($this->get_option('css_class')));
    if (!$css_class) {
      $css_class = t('None');
    }

    $options['css_class'] = array(
      'category' => 'other',
      'title' => t('CSS class'),
      'value' => $css_class,
      'desc' => t('Change the CSS class name(s) that will be added to this display.'),
    );

    $options['analyze-theme'] = array(
      'category' => 'other',
      'title' => t('Theme'),
      'value' => t('Information'),
      'desc' => t('Get information on how to theme this display'),
    );

    foreach ($this->extender as $extender) {
      $extender->options_summary($categories, $options);
    }
  }

views_plugin_display::options_validate ( &$  form,
&$  form_state 
)

Validate the options form.

Reimplemented from views_plugin.

Reimplemented in views_plugin_display_page.

Definition at line 2139 of file views_plugin_display.inc.

References get_plugin().

                                                  {
    switch ($form_state['section']) {
      case 'display_title':
        if (empty($form_state['values']['display_title'])) {
          form_error($form['display_title'], t('Display title may not be empty.'));
        }
        break;
      case 'css_class':
        $css_class = $form_state['values']['css_class'];
        if (preg_match('/[^a-zA-Z0-9-_ ]/', $css_class)) {
          form_error($form['css_class'], t('CSS classes must be alphanumeric or dashes only.'));
        }
      break;
      case 'display_id':
        if ($form_state['values']['display_id']) {
          if (preg_match('/[^a-z0-9_]/', $form_state['values']['display_id'])) {
            form_error($form['display_id'], t('Display name must be letters, numbers, or underscores only.'));
          }

          foreach ($this->view->display as $id => $display) {
            if ($id != $this->view->current_display && ($form_state['values']['display_id'] == $id || (isset($display->new_id) && $form_state['values']['display_id'] == $display->new_id))) {
              form_error($form['display_id'], t('Display id should be unique.'));
            }
          }
        }
        break;
      case 'style_options':
        $style = TRUE;
      case 'row_options':
        // if row, $style will be empty.
        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
        if ($plugin) {
          $plugin->options_validate($form[$form_state['section']], $form_state);
        }
        break;
      case 'access_options':
        $plugin = $this->get_plugin('access');
        if ($plugin) {
          $plugin->options_validate($form['access_options'], $form_state);
        }
        break;
      case 'query':
        if ($this->view->query) {
          $this->view->query->options_validate($form['query'], $form_state);
        }
        break;
      case 'cache_options':
        $plugin = $this->get_plugin('cache');
        if ($plugin) {
          $plugin->options_validate($form['cache_options'], $form_state);
        }
        break;
      case 'exposed_form_options':
        $plugin = $this->get_plugin('exposed_form');
        if ($plugin) {
          $plugin->options_validate($form['exposed_form_options'], $form_state);
        }
        break;
      case 'pager_options':
        $plugin = $this->get_plugin('pager');
        if ($plugin) {
          $plugin->options_validate($form['pager_options'], $form_state);
        }
        break;
    }

    foreach ($this->extender as $extender) {
      $extender->options_validate($form, $form_state);
    }
  }

views_plugin_display::override_option ( option,
value 
)

Set an option and force it to be an override.

Definition at line 993 of file views_plugin_display.inc.

References set_option(), and set_override().

                                            {
    $this->set_override($option, FALSE);
    $this->set_option($option, $value);
  }

views_plugin::plugin_title (  )  [inherited]

Return the human readable name of the display.

This appears on the ui beside each plugin and beside the settings link.

Definition at line 548 of file plugins.inc.

                          {
    if (isset($this->definition['short title'])) {
      return check_plain($this->definition['short title']);
    }
    return check_plain($this->definition['title']);
  }

views_plugin_display::pre_execute (  ) 

Set up any variables on the view prior to execution.

These are separated from execute because they are extremely common and unlikely to be overridden on an individual display.

Definition at line 2573 of file views_plugin_display.inc.

References get_plugin(), use_ajax(), use_more(), use_more_always(), and uses_exposed().

                         {
    $this->view->set_use_ajax($this->use_ajax());
    if ($this->use_more() && !$this->use_more_always()) {
      $this->view->get_total_rows = TRUE;
    }
    $this->view->init_handlers();
    if ($this->uses_exposed()) {
      $exposed_form = $this->get_plugin('exposed_form');
      $exposed_form->pre_execute();
    }

    foreach ($this->extender as $extender) {
      $extender->pre_execute();
    }
  }

views_plugin_display::preview (  ) 

Fully render the display for the purposes of a live preview or some other AJAXy reason.

Reimplemented in views_plugin_display_feed.

Definition at line 2601 of file views_plugin_display.inc.

{ return $this->view->render(); }

views_plugin_display::query (  ) 

Inject anything into the query that the display handler needs.

Reimplemented from views_plugin.

Definition at line 2448 of file views_plugin_display.inc.

                   {
    foreach ($this->extender as $extender) {
      $extender->query();
    }
  }

views_plugin_display::render (  ) 

Render this display.

Reimplemented in views_plugin_display_feed.

Definition at line 2532 of file views_plugin_display.inc.

References views_plugin::theme_functions().

                    {
    return theme($this->theme_functions(), array('view' => $this->view));
  }

views_plugin_display::render_filters (  ) 

Not all display plugins will support filtering.

Definition at line 2457 of file views_plugin_display.inc.

{ }

views_plugin_display::render_footer (  ) 

Render the footer of the view.

Definition at line 2510 of file views_plugin_display.inc.

                           {
    $empty = !empty($this->view->result);
    return $this->render_area('footer', $empty);
  }

views_plugin_display::render_header (  ) 

Legacy functions.

Render the header of the view.

Definition at line 2502 of file views_plugin_display.inc.

                           {
    $empty = !empty($this->view->result);
    return $this->render_area('header', $empty);
  }

views_plugin_display::render_more_link (  ) 

Render the 'more' link.

Definition at line 2469 of file views_plugin_display.inc.

References get_arguments_tokens(), get_option(), get_path(), use_more(), use_more_always(), use_more_text(), and views_theme_functions().

                              {
    if ($this->use_more() && ($this->use_more_always() || (!empty($this->view->query->pager) && $this->view->query->pager->has_more_records()))) {
      $path = $this->get_path();

      if ($this->get_option('link_display') == 'custom_url' && $override_path = $this->get_option('link_url')) {
        $tokens = $this->get_arguments_tokens();
        $path = strtr($override_path, $tokens);
      }

      if ($path) {
        if (empty($override_path)) {
          $path = $this->view->get_url(NULL, $path);
        }
        $url_options = array();
        if (!empty($this->view->exposed_raw_input)) {
          $url_options['query'] = $this->view->exposed_raw_input;
        }
        $theme = views_theme_functions('views_more', $this->view, $this->display);
        $path = check_url(url($path, $url_options));

        return theme($theme, array('more_url' => $path, 'link_text' => check_plain($this->use_more_text()), 'view' => $this->view));
      }
    }
  }

views_plugin_display::render_pager (  ) 

Not all display plugins will suppert pager rendering.

Reimplemented in views_plugin_display_attachment.

Definition at line 2462 of file views_plugin_display.inc.

                          {
    return TRUE;
  }

views_object::set_default_options (  )  [inherited]

Set default options.

For backward compatibility, it sends the options array; this is a feature that will likely disappear at some point.

Definition at line 67 of file base.inc.

References views_object::option_definition(), and views_object::options().

Referenced by views_object::construct().

                                 {
    $this->_set_option_defaults($this->options, $this->option_definition());

    // Retained for complex defaults plus backward compatibility.
    $this->options($this->options);
  }

views_object::set_definition ( definition  )  [inherited]

Let the handler know what its full definition is.

Definition at line 173 of file base.inc.

                                       {
    $this->definition = $definition;
    if (isset($definition['field'])) {
      $this->real_field = $definition['field'];
    }
  }

views_plugin_display::set_option ( option,
value 
)

Intelligently set an option either from this display or from the default display, if directed to do so.

Definition at line 978 of file views_plugin_display.inc.

References is_defaulted(), and views_object::options().

Referenced by views_plugin_display_page::options_submit(), views_plugin_display_feed::options_submit(), views_plugin_display_block::options_submit(), views_plugin_display_attachment::options_submit(), options_submit(), and override_option().

                                       {
    if ($this->is_defaulted($option)) {
      return $this->default_display->set_option($option, $value);
    }

    // Set this in two places: On the handler where we'll notice it
    // but also on the display object so it gets saved. This should
    // only be a temporary fix.
    $this->display->display_options[$option] = $value;
    return $this->options[$option] = $value;
  }

views_plugin_display::set_override ( section,
new_state = NULL 
)

Flip the override setting for the given section.

Definition at line 2418 of file views_plugin_display.inc.

References views_object::$options, defaultable_sections(), get_option(), and views_object::options().

Referenced by options_override(), and override_option().

                                                     {
    $options = $this->defaultable_sections($section);
    if (!$options) {
      return;
    }

    if (!isset($new_state)) {
      $new_state = empty($this->options['defaults'][$section]);
    }

    // For each option that is part of this group, fix our settings.
    foreach ($options as $option) {
      if ($new_state) {
        // Revert to defaults.
        unset($this->options[$option]);
        unset($this->display->display_options[$option]);
      }
      else {
        // copy existing values into our display.
        $this->options[$option] = $this->get_option($option);
        $this->display->display_options[$option] = $this->options[$option];
      }
      $this->options['defaults'][$option] = $new_state;
      $this->display->display_options['defaults'][$option] = $new_state;
    }
  }

views_plugin::theme_functions (  )  [inherited]

Provide a full list of possible theme templates used by this style.

Definition at line 511 of file plugins.inc.

References views_theme_functions().

Referenced by options_form(), views_plugin_style_summary::render(), views_plugin_style_rss::render(), views_plugin_row::render(), render(), views_plugin_row_search_view::render(), and views_plugin_style::render_grouping_sets().

                             {
    return views_theme_functions($this->definition['theme'], $this->view, $this->display);
  }

views_plugin_display::unpack_handler ( &$  translatable,
storage,
option,
definition,
parents 
)

Special method to unpack items that have handlers.

This method was specified in the option_definition() as the method to utilize to export fields, filters, sort criteria, relationships and arguments. This passes the export off to the individual handlers so that they can export themselves properly.

Definition at line 2915 of file views_plugin_display.inc.

References views_get_handler(), and views_object_types().

                                                                                    {
    $output = '';

    // cut the 's' off because the data is stored as the plural form but we need
    // the singular form. Who designed that anyway? Oh yeah, I did. :(
    if ($option != 'header' && $option != 'footer' && $option != 'empty') {
      $type = substr($option, 0, -1);
    }
    else {
      $type = $option;
    }
    $types = views_object_types();
    foreach ($storage[$option] as $id => $info) {
      if (!empty($types[$type]['type'])) {
        $handler_type = $types[$type]['type'];
      }
      else {
        $handler_type = $type;
      }
      $handler = views_get_handler($info['table'], $info['field'], $handler_type);
      if ($handler) {
        $handler->init($this->view, $info);
        $handler->unpack_translatables($translatable, array_merge($parents, array($type, $info['table'], $info['id'])));
      }

      // Prevent reference problems.
      unset($handler);
    }

    return $output;
  }

views_object::unpack_options ( &$  storage,
options,
definition = NULL,
all = TRUE,
check = TRUE,
localization_keys = array() 
) [inherited]

Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.

Definition at line 93 of file base.inc.

References views_object::$options, and views_object::option_definition().

Referenced by views_plugin_style::init(), views_plugin_row::init(), views_plugin_query::init(), views_plugin_pager::init(), views_plugin_exposed_form::init(), views_plugin_cache::init(), views_plugin_argument_validate::init(), views_plugin_argument_default::init(), views_plugin_access::init(), and views_handler::init().

                                                                                                                             {
    if ($check && !is_array($options)) {
      return;
    }

    if (!isset($definition)) {
      $definition = $this->option_definition();
    }

    if (!empty($this->view)) {
      // Ensure we have a localization plugin.
      $this->view->init_localization();

      // Set up default localization keys. Handlers and such set this for us
      if (empty($localization_keys) && isset($this->localization_keys)) {
        $localization_keys = $this->localization_keys;
      }
      // but plugins don't because there isn't a common init() these days.
      else if (!empty($this->is_plugin)) {
        if ($this->plugin_type != 'display') {
          $localization_keys = array($this->view->current_display);
          $localization_keys[] = $this->plugin_type;
        }
      }
    }

    foreach ($options as $key => $value) {
      if (is_array($value)) {
        // Ignore arrays with no definition.
        if (!$all && empty($definition[$key])) {
          continue;
        }

        if (!isset($storage[$key]) || !is_array($storage[$key])) {
          $storage[$key] = array();
        }

        // If we're just unpacking our known options, and we're dropping an
        // unknown array (as might happen for a dependent plugin fields) go
        // ahead and drop that in.
        if (!$all && isset($definition[$key]) && !isset($definition[$key]['contains'])) {
          $storage[$key] = $value;
          continue;
        }

        $this->unpack_options($storage[$key], $value, isset($definition[$key]['contains']) ? $definition[$key]['contains'] : array(), $all, FALSE, array_merge($localization_keys, array($key)));
      }
      // Don't localize strings during editing. When editing, we need to work with
      // the original data, not the translated version.
      else if (empty($this->view->editing) && !empty($definition[$key]['translatable']) && !empty($value) || !empty($definition['contains'][$key]['translatable']) && !empty($value)) {
        if (!empty($this->view) && $this->view->is_translatable()) {
          // Allow other modules to make changes to the string before it's
          // sent for translation.
          // The $keys array is built from the view name, any localization keys
          // sent in, and the name of the property being processed.
          $format = NULL;
          if (isset($definition[$key]['format_key']) && isset($options[$definition[$key]['format_key']])) {
            $format = $options[$definition[$key]['format_key']];
          }
          $translation_data = array(
            'value' => $value,
            'format' => $format,
            'keys' => array_merge(array($this->view->name), $localization_keys, array($key)),
          );
          $storage[$key] = $this->view->localization_plugin->translate($translation_data);
        }
        // Otherwise, this is a code-based string, so we can use t().
        else {
          $storage[$key] = t($value);
        }
      }
      else if ($all || !empty($definition[$key])) {
        $storage[$key] = $value;
      }
    }
  }

views_plugin_display::unpack_plugin ( &$  translatable,
storage,
option,
definition,
parents 
)

Special handling for plugin unpacking.

Definition at line 2898 of file views_plugin_display.inc.

References views_plugin::$plugin_type, and get_plugin().

                                                                                   {
    $plugin_type = end($parents);
    $plugin = $this->get_plugin($plugin_type);
    if ($plugin) {
      // Write which plugin to use.
      return $plugin->unpack_translatables($translatable, $parents);
    }
  }

views_object::unpack_translatable ( &$  translatable,
storage,
option,
definition,
parents,
keys = array() 
) [inherited]

Unpack a single option definition.

This function run's through all suboptions recursive.

Parameters:
$translatable Stores all available translatable items.
$storage 
$option 
$definition 
$parents 
$keys 

Definition at line 275 of file base.inc.

References views_object::$options.

Referenced by views_object::unpack_translatables().

                                                                                                          {
    // Do not export options for which we have no settings.
    if (!isset($storage[$option])) {
      return;
    }

    // Special handling for some items
    if (isset($definition['unpack_translatable']) && method_exists($this, $definition['unpack_translatable'])) {
      return $this->{$definition['unpack_translatable']}($translatable, $storage, $option, $definition, $parents, $keys);
    }

    if (isset($definition['translatable'])) {
      if ($definition['translatable'] === FALSE) {
        return;
      }
    }

    // Add the current option to the parents tree.
    $parents[] = $option;

    // If it has child items, unpack those separately.
    if (isset($definition['contains'])) {
      foreach ($definition['contains'] as $sub_option => $sub_definition) {
        $translation_keys = array_merge($keys, array($sub_option));
        $this->unpack_translatable($translatable, $storage[$option], $sub_option, $sub_definition, $parents, $translation_keys);
      }
    }

    // @todo Figure out this double definition stuff.
    $options = $storage[$option];
    if (is_array($options)) {
      foreach ($options as $key => $value) {
        $translation_keys = array_merge($keys, array($key));
        if (is_array($value)) {
          $this->unpack_translatable($translatable, $options, $key, $definition, $parents, $translation_keys);
        }
        else if (!empty($definition[$key]['translatable']) && !empty($value)) {
          // Build source data and add to the array
          $format = NULL;
          if (isset($definition['format_key']) && isset($options[$definition['format_key']])) {
            $format = $options[$definition['format_key']];
          }
          $translatable[] = array(
            'value' => $value,
            'keys' => $translation_keys,
            'format' => $format,
          );
        }
      }
    }
    else if (!empty($definition['translatable']) && !empty($options)) {
      $value = $options;
      // Build source data and add to the array
      $format = NULL;
      if (isset($definition['format_key']) && isset($storage[$definition['format_key']])) {
        $format = $options[$definition['format_key']];
      }
      $translatable[] = array(
        'value' => $value,
        'keys' => isset($translation_keys) ? $translation_keys : $parents,
        'format' => $format,
      );
    }
  }

views_object::unpack_translatables ( &$  translatable,
parents = array() 
) [inherited]

Unpacks each handler to store translatable texts.

Definition at line 256 of file base.inc.

References views_object::option_definition(), views_object::options(), and views_object::unpack_translatable().

                                                                    {
    foreach ($this->option_definition() as $option => $definition) {
      $this->unpack_translatable($translatable, $this->options, $option, $definition, $parents, array());
    }
  }

views_plugin_display::use_ajax (  ) 

Does the display use AJAX?

Definition at line 308 of file views_plugin_display.inc.

References get_option().

Referenced by pre_execute(), and views_plugin_display_block::uses_exposed().

                      {
    if (!empty($this->definition['use ajax'])) {
      return $this->get_option('use_ajax');
    }
    return FALSE;
  }

views_plugin_display::use_group_by (  ) 

Does the display have groupby enabled?

Definition at line 338 of file views_plugin_display.inc.

References get_option().

Referenced by export_handler(), and get_handlers().

                          {
    return $this->get_option('group_by');
  }

views_plugin_display::use_more (  ) 

Does the display have a more link enabled?

Definition at line 328 of file views_plugin_display.inc.

References get_option().

Referenced by pre_execute(), and render_more_link().

                      {
    if (!empty($this->definition['use more'])) {
      return $this->get_option('use_more');
    }
    return FALSE;
  }

views_plugin_display::use_more_always (  ) 

Should the enabled display more link be shown when no more items?

Definition at line 345 of file views_plugin_display.inc.

References get_option().

Referenced by pre_execute(), and render_more_link().

                             {
    if (!empty($this->definition['use more'])) {
      return $this->get_option('use_more_always');
    }
    return FALSE;
  }

views_plugin_display::use_more_text (  ) 

Does the display have custom link text?

Definition at line 355 of file views_plugin_display.inc.

References get_option().

Referenced by render_more_link().

                           {
    if (!empty($this->definition['use more'])) {
      return $this->get_option('use_more_text');
    }
    return FALSE;
  }

views_plugin_display::use_pager (  ) 

Does the display have a pager enabled?

Reimplemented in views_plugin_display_attachment.

Definition at line 318 of file views_plugin_display.inc.

References get_plugin().

                       {
    $pager = $this->get_plugin('pager');
    if ($pager) {
      return $pager->use_pager();
    }
  }

views_plugin_display::uses_breadcrumb (  ) 

Check to see if the display needs a breadcrumb.

By default, displays do not need breadcrumbs

Reimplemented in views_plugin_display_feed, and views_plugin_display_page.

Definition at line 767 of file views_plugin_display.inc.

{ return FALSE; }

views_plugin_display::uses_exposed (  ) 

Determine if this display uses exposed filters, so the view will know whether or not to build them.

Reimplemented in views_plugin_display_attachment, and views_plugin_display_block.

Definition at line 270 of file views_plugin_display.inc.

References get_plugin().

Referenced by pre_execute(), and view_special_blocks().

                          {
    if (!isset($this->has_exposed)) {
      foreach ($this->handlers as $type => $value) {
        foreach ($this->view->$type as $id => $handler) {
          if ($handler->can_expose() && $handler->is_exposed()) {
            // one is all we need; if we find it, return true.
            $this->has_exposed = TRUE;
            return TRUE;
          }
        }
      }
      $pager = $this->get_plugin('pager');
      if (isset($pager) && $pager->uses_exposed()) {
        $this->has_exposed = TRUE;
        return TRUE;
      }
      $this->has_exposed = FALSE;
    }

    return $this->has_exposed;
  }

views_plugin_display::uses_exposed_form_in_block (  ) 

Check to see if the display can put the exposed formin a block.

By default, displays that do not have a path cannot disconnect the exposed form and put it in a block, because the form has no place to go and Views really wants the forms to go to a specific page.

Definition at line 723 of file views_plugin_display.inc.

References has_path().

Referenced by get_special_blocks(), and options_summary().

{ return $this->has_path(); }

views_plugin_display::uses_fields (  ) 

Determine if the display's style uses fields.

Definition at line 797 of file views_plugin_display.inc.

References get_plugin().

Referenced by validate().

                         {
    $plugin = $this->get_plugin();
    if ($plugin) {
      return $plugin->uses_fields();
    }
  }

views_plugin_display::uses_link_display (  ) 

Check to see if the display has some need to link to another display.

For the most part, displays without a path will use a link display. However, sometimes displays that have a path might also need to link to another display. This is true for feeds.

Reimplemented in views_plugin_display_feed.

Definition at line 713 of file views_plugin_display.inc.

References has_path().

Referenced by options_summary().

{ return !$this->has_path(); }

views_plugin_display::validate (  ) 

Make sure the display and all associated handlers are valid.

Returns:
Empty array if the display is valid; an array of error strings if it is not.

Reimplemented from views_plugin.

Reimplemented in views_plugin_display_page.

Definition at line 2615 of file views_plugin_display.inc.

References get_handlers(), get_option(), get_plugin(), has_path(), uses_fields(), and views_object_types().

                      {
    $errors = array();
    // Make sure displays that use fields HAVE fields.
    if ($this->uses_fields()) {
      $fields = FALSE;
      foreach ($this->get_handlers('field') as $field) {
        if (empty($field->options['exclude'])) {
          $fields = TRUE;
        }
      }

      if (!$fields) {
        $errors[] = t('Display "@display" uses fields but there are none defined for it or all are excluded.', array('@display' => $this->display->display_title));
      }
    }

    if ($this->has_path() && !$this->get_option('path')) {
      $errors[] = t('Display "@display" uses a path but the path is undefined.', array('@display' => $this->display->display_title));
    }

    // Validate style plugin
    $style = $this->get_plugin();
    if (empty($style)) {
      $errors[] = t('Display "@display" has an invalid style plugin.', array('@display' => $this->display->display_title));
    }
    else {
      $result = $style->validate();
      if (!empty($result) && is_array($result)) {
        $errors = array_merge($errors, $result);
      }
    }

    // Validate query plugin.
    $query = $this->get_plugin('query');
    $result = $query->validate();
    if (!empty($result) && is_array($result)) {
      $errors = array_merge($errors, $result);
    }

    // Validate handlers
    foreach (views_object_types() as $type => $info) {
      foreach ($this->get_handlers($type) as $handler) {
        $result = $handler->validate();
        if (!empty($result) && is_array($result)) {
          $errors = array_merge($errors, $result);
        }
      }
    }

    return $errors;
  }

views_plugin_display::view_special_blocks ( type  ) 

Render any special blocks provided for this display.

Definition at line 2705 of file views_plugin_display.inc.

References get_option(), get_plugin(), and uses_exposed().

                                      {
    if ($type == '-exp') {
      // avoid interfering with the admin forms.
      if (arg(0) == 'admin' && arg(1) == 'structure' && arg(2) == 'views') {
        return;
      }
      $this->view->init_handlers();

      if ($this->uses_exposed() && $this->get_option('exposed_block')) {
        $exposed_form = $this->get_plugin('exposed_form');
        return array(
          'content' => $exposed_form->render_exposed_form(TRUE),
        );
      }
    }
  }


Member Data Documentation

views_plugin_display::$extender = array()

Stores all available display extenders.

Definition at line 39 of file views_plugin_display.inc.

Referenced by construct().

views_object::$options = array() [inherited]

Except for displays, options for the object will be held here.

Definition at line 15 of file base.inc.

Referenced by views_handler_filter_string::admin_summary(), views_handler_filter_numeric::admin_summary(), views_plugin_argument_validate_php::convert_options(), views_plugin_argument_default_php::convert_options(), views_plugin_argument_default_fixed::convert_options(), views_plugin_argument_validate_user::convert_options(), views_plugin_argument_default_user::convert_options(), views_plugin_argument_validate_taxonomy_term::convert_options(), views_plugin_argument_validate_node::convert_options(), views_handler_argument::default_argument_form(), views_handler_argument::default_summary_form(), views_handler_filter_term_node_tid::extra_options_form(), views_test_plugin_access_test_static::get_access_callback(), views_test_plugin_access_test_dynamic::get_access_callback(), views_handler_field_field::get_base_table(), get_field_labels(), get_plugin(), views_handler_filter_node_type::get_value_options(), views_handler_field_field::groupby_form(), views_plugin_style::init(), views_plugin_row::init(), views_plugin_query_default::init(), views_plugin_query::init(), views_plugin_pager_none::init(), views_plugin_pager::init(), views_plugin_exposed_form::init(), views_plugin_cache::init(), views_plugin_argument_validate::init(), views_plugin_argument_default::init(), views_plugin_access::init(), views_plugin_argument_validate_taxonomy_term::init(), views_plugin_argument_default_taxonomy_tid::init(), views_handler_relationship_node_term_data::init(), views_handler_filter_term_node_tid::init(), views_handler_field_term_node_tid::init(), views_handler_field_file::init(), views_handler_field_accesslog_path::init(), views_plugin_row_node_view::init(), views_plugin_row_node_rss::init(), views_handler_field_node_revision::init(), views_handler_field_node::init(), views_handler_field_history_user_timestamp::init(), views_handler_relationship_entity_reverse::init(), views_handler_field_field::init(), views_handler_argument_field_list::init(), views_handler_field_node_new_comments::init(), views_handler_field_comment::init(), views_handler::init(), views_handler_sort_group_by_numeric::init(), views_handler_relationship::init(), views_handler_filter_many_to_one::init(), views_handler_filter::init(), views_handler_field_entity::init(), views_handler_field_boolean::init(), views_handler_field::init(), views_handler_argument_string::init(), views_handler_argument_many_to_one::init(), views_handler_argument::init(), views_handler_relationship_groupwise_max::left_query(), views_handler_field_field::multiple_options_form(), views_handler_filter::operator_form(), views_handler_filter_string::operator_options(), views_handler_filter_numeric::operator_options(), views_handler_filter_in_operator::operator_options(), views_test_plugin_access_test_static::option_definition(), views_test_plugin_access_test_dynamic::option_definition(), views_plugin_style_table::option_definition(), views_plugin_style_summary_unformatted::option_definition(), views_plugin_style_summary_jump_menu::option_definition(), views_plugin_style_summary::option_definition(), views_plugin_style_rss::option_definition(), views_plugin_style_list::option_definition(), views_plugin_style_jump_menu::option_definition(), views_plugin_style_grid::option_definition(), views_plugin_style::option_definition(), views_plugin_row_fields::option_definition(), views_plugin_row::option_definition(), views_plugin_query_default::option_definition(), views_plugin_pager_some::option_definition(), views_plugin_pager_none::option_definition(), views_plugin_pager_full::option_definition(), views_plugin_exposed_form_input_required::option_definition(), views_plugin_exposed_form::option_definition(), views_plugin_display_page::option_definition(), views_plugin_display_feed::option_definition(), views_plugin_display_block::option_definition(), views_plugin_display_attachment::option_definition(), option_definition(), views_plugin_cache_time::option_definition(), views_plugin_argument_validate_php::option_definition(), views_plugin_argument_default_raw::option_definition(), views_plugin_argument_default_php::option_definition(), views_plugin_argument_default_fixed::option_definition(), views_plugin_access_role::option_definition(), views_plugin_access_perm::option_definition(), views_plugin_row_user_view::option_definition(), views_plugin_argument_validate_user::option_definition(), views_plugin_argument_default_user::option_definition(), views_handler_field_user_picture::option_definition(), views_handler_field_user_name::option_definition(), views_handler_field_user_mail::option_definition(), views_handler_field_user_link::option_definition(), views_handler_field_user::option_definition(), views_handler_relationship_translation::option_definition(), views_handler_filter_node_tnid::option_definition(), views_handler_field_node_language::option_definition(), views_plugin_argument_validate_taxonomy_term::option_definition(), views_plugin_argument_default_taxonomy_tid::option_definition(), views_handler_relationship_node_term_data::option_definition(), views_handler_filter_term_node_tid_depth::option_definition(), views_handler_filter_term_node_tid::option_definition(), views_handler_field_term_node_tid::option_definition(), views_handler_field_term_link_edit::option_definition(), views_handler_field_taxonomy::option_definition(), views_handler_argument_term_node_tid_depth::option_definition(), views_handler_argument_term_node_tid::option_definition(), views_handler_field_file_uri::option_definition(), views_handler_field_file_filemime::option_definition(), views_handler_field_file::option_definition(), views_handler_field_accesslog_path::option_definition(), views_plugin_row_search_view::option_definition(), views_handler_filter_search::option_definition(), views_handler_field_search_score::option_definition(), views_plugin_row_node_view::option_definition(), views_plugin_row_node_rss::option_definition(), views_plugin_argument_validate_node::option_definition(), views_handler_field_node_type::option_definition(), views_handler_field_node_revision::option_definition(), views_handler_field_node_path::option_definition(), views_handler_field_node_link::option_definition(), views_handler_field_node::option_definition(), views_handler_field_history_user_timestamp::option_definition(), views_handler_field_locale_link_edit::option_definition(), views_handler_field_locale_language::option_definition(), views_handler_field_field::option_definition(), views_handler_argument_field_list::option_definition(), views_plugin_row_comment_view::option_definition(), views_plugin_row_comment_rss::option_definition(), views_handler_field_node_new_comments::option_definition(), views_handler_field_ncs_last_comment_name::option_definition(), views_handler_field_comment_username::option_definition(), views_handler_field_comment_node_link::option_definition(), views_handler_field_comment_link_edit::option_definition(), views_handler_field_comment_link::option_definition(), views_handler_field_comment::option_definition(), views_plugin_row_aggregator_rss::option_definition(), views_handler_field_aggregator_title_link::option_definition(), views_handler_field_aggregator_category::option_definition(), views_handler::option_definition(), views_handler_sort_date::option_definition(), views_handler_sort::option_definition(), views_handler_relationship_groupwise_max::option_definition(), views_handler_relationship::option_definition(), views_handler_filter_string::option_definition(), views_handler_filter_numeric::option_definition(), views_handler_filter_many_to_one::option_definition(), views_handler_filter_in_operator::option_definition(), views_handler_filter_date::option_definition(), views_handler_filter_boolean_operator::option_definition(), views_handler_filter::option_definition(), views_handler_field_url::option_definition(), views_handler_field_time_interval::option_definition(), views_handler_field_serialized::option_definition(), views_handler_field_prerender_list::option_definition(), views_handler_field_numeric::option_definition(), views_handler_field_math::option_definition(), views_handler_field_machine_name::option_definition(), views_handler_field_date::option_definition(), views_handler_field_custom::option_definition(), views_handler_field_counter::option_definition(), views_handler_field_contextual_links::option_definition(), views_handler_field_boolean::option_definition(), views_handler_field_file_size::option_definition(), views_handler_argument_string::option_definition(), views_handler_argument_numeric::option_definition(), views_handler_argument_null::option_definition(), views_handler_argument_many_to_one::option_definition(), views_handler_argument::option_definition(), views_handler_area_view::option_definition(), views_handler_area_text::option_definition(), views_handler_area_result::option_definition(), views_handler_area::option_definition(), views_plugin_style_default::options(), views_plugin_style_jump_menu::options_form(), views_plugin_style::options_form(), views_plugin_row_fields::options_form(), options_form(), views_plugin_cache_time::options_form(), views_plugin_row_user_view::options_form(), views_handler_relationship_translation::options_form(), views_plugin_argument_validate_taxonomy_term::options_form(), views_plugin_argument_default_taxonomy_tid::options_form(), views_handler_relationship_node_term_data::options_form(), views_handler_field_term_node_tid::options_form(), views_handler_field_search_score::options_form(), views_plugin_row_node_view::options_form(), views_plugin_argument_validate_node::options_form(), views_plugin_row_comment_view::options_form(), views_handler_field_boolean::options_form(), views_handler_argument::options_form(), views_handler_area_view::options_form(), views_handler_area_text::options_form(), views_plugin_row_user_view::options_form_summary_options(), views_plugin_row_node_view::options_form_summary_options(), views_plugin_row_node_rss::options_form_summary_options(), views_plugin_row_comment_view::options_form_summary_options(), views_plugin_row_comment_rss::options_form_summary_options(), views_plugin_argument_validate_user::options_submit(), views_plugin_argument_validate_taxonomy_term::options_submit(), views_plugin_argument_default_taxonomy_tid::options_submit(), views_plugin_argument_validate_node::options_submit(), views_handler_argument::options_submit(), views_plugin_display_page::options_summary(), views_plugin_display_feed::options_summary(), views_plugin_display_block::options_summary(), views_plugin_display_attachment::options_summary(), options_summary(), views_plugin_pager_full::options_validate(), views_plugin_query_default::query(), views_handler_field_field::query(), views_handler_filter_in_operator::reduce_value_options(), views_plugin_style_summary_jump_menu::render(), views_plugin_style_jump_menu::render(), views_handler_field_locale_language::render(), set_override(), views_handler_sort::show_sort_form(), views_plugin_row_user_view::summary_title(), views_plugin_row_node_view::summary_title(), views_plugin_row_node_rss::summary_title(), views_object::unpack_options(), views_object::unpack_translatable(), views_handler_filter_term_node_tid::value_form(), and views_handler_filter_in_operator::value_form().

views_plugin::$plugin_type = NULL [inherited]

The plugin type of this plugin, for example style or query.

Definition at line 475 of file plugins.inc.

Referenced by export_plugin(), and unpack_plugin().


The documentation for this class was generated from the following file: