class views_content_plugin_display_panel_pane
The plugin that handles a panel_pane.
Hierarchy
- class \views_object
- class \views_plugin extends \views_object
- class \views_plugin_display extends \views_plugin
- class \views_content_plugin_display_panel_pane extends \views_plugin_display
- class \views_plugin_display extends \views_plugin
- class \views_plugin extends \views_object
Expanded class hierarchy of views_content_plugin_display_panel_pane
2 string references to 'views_content_plugin_display_panel_pane'
- views_content_views_plugins in views_content/
plugins/ views/ views_content.views.inc - Implements hook_views_plugins().
- _views_content_panes_content_type in views_content/
plugins/ content_types/ views_panes.inc
File
-
views_content/
plugins/ views/ views_content_plugin_display_panel_pane.inc, line 6
View source
class views_content_plugin_display_panel_pane extends views_plugin_display {
/**
* If this variable is true, this display counts as a panel pane. We use
* this variable so that other modules can create alternate pane displays.
*/
public $panel_pane_display = TRUE;
public $has_pane_conf = NULL;
/**
* {@inheritdoc}
*/
public function option_definition() {
$options = parent::option_definition();
$options['pane_title'] = array(
'default' => '',
'translatable' => TRUE,
);
$options['pane_description'] = array(
'default' => '',
'translatable' => TRUE,
);
$options['pane_category'] = array(
'contains' => array(
'name' => array(
'default' => 'View panes',
'translatable' => TRUE,
),
'weight' => array(
'default' => 0,
),
),
);
$options['allow'] = array(
'contains' => array(
'use_pager' => array(
'default' => FALSE,
),
'items_per_page' => array(
'default' => FALSE,
),
'offset' => array(
'default' => FALSE,
),
'link_to_view' => array(
'default' => FALSE,
),
'more_link' => array(
'default' => FALSE,
),
'path_override' => array(
'default' => FALSE,
),
'title_override' => array(
'default' => FALSE,
),
'exposed_form' => array(
'default' => FALSE,
),
'fields_override' => array(
'default' => FALSE,
),
),
);
$options['argument_input'] = array(
'default' => array(),
);
$options['link_to_view'] = array(
'default' => 0,
);
$options['inherit_panels_path'] = array(
'default' => 0,
);
return $options;
}
public function has_pane_conf() {
return isset($this->has_pane_conf);
}
public function set_pane_conf($conf = array()) {
$this->set_option('pane_conf', $conf);
$this->has_pane_conf = TRUE;
}
/**
* Provide the summary for page options in the views UI.
*
* This output is returned as an array.
*/
public function options_summary(&$categories, &$options) {
// It is very important to call the parent function here:
parent::options_summary($categories, $options);
$categories['panel_pane'] = array(
'title' => t('Pane settings'),
'column' => 'second',
'build' => array(
'#weight' => -10,
),
);
$pane_title = $this->get_option('pane_title');
if (empty($pane_title)) {
$pane_title = t('Use view name');
}
if (drupal_strlen($pane_title) > 16) {
$pane_title = drupal_substr($pane_title, 0, 16) . '...';
}
$options['pane_title'] = array(
'category' => 'panel_pane',
'title' => t('Admin title'),
'value' => $pane_title,
);
$pane_description = $this->get_option('pane_description');
if (empty($pane_description)) {
$pane_description = t('Use view description');
}
if (drupal_strlen($pane_description) > 16) {
$pane_description = drupal_substr($pane_description, 0, 16) . '...';
}
$options['pane_description'] = array(
'category' => 'panel_pane',
'title' => t('Admin desc'),
'value' => $pane_description,
);
$category = $this->get_option('pane_category');
$pane_category = $category['name'];
if (empty($pane_category)) {
$pane_category = t('View panes');
}
if (drupal_strlen($pane_category) > 16) {
$pane_category = drupal_substr($pane_category, 0, 16) . '...';
}
$options['pane_category'] = array(
'category' => 'panel_pane',
'title' => t('Category'),
'value' => $pane_category,
);
$options['link_to_view'] = array(
'category' => 'panel_pane',
'title' => t('Link to view'),
'value' => $this->get_option('link_to_view') ? t('Yes') : t('No'),
);
$options['inherit_panels_path'] = array(
'category' => 'panel_pane',
'title' => t('Use Panel path'),
'value' => $this->get_option('inherit_panels_path') ? t('Yes') : t('No'),
);
$options['argument_input'] = array(
'category' => 'panel_pane',
'title' => t('Argument input'),
'value' => t('Edit'),
);
$allow = $this->get_option('allow');
$filtered_allow = array_filter($allow);
$options['allow'] = array(
'category' => 'panel_pane',
'title' => t('Allow settings'),
'value' => empty($filtered_allow) ? t('None') : ($allow === $filtered_allow ? t('All') : t('Some')),
);
}
/**
* Provide the default form for setting options.
*/
public function options_form(&$form, &$form_state) {
// It is very important to call the parent function here:
parent::options_form($form, $form_state);
switch ($form_state['section']) {
case 'allow':
$form['#title'] .= t('Allow settings');
$form['description'] = array(
'#value' => '<div class="form-item description">' . t('Checked settings will be available in the panel pane config dialog for modification by the panels user. Unchecked settings will not be available and will only use the settings in this display.') . '</div>',
);
$options = array(
'use_pager' => t('Use pager'),
'items_per_page' => t('Items per page'),
'offset' => t('Pager offset'),
'link_to_view' => t('Link to view'),
'more_link' => t('More link'),
'path_override' => t('Path override'),
'title_override' => t('Title override'),
'exposed_form' => t('Use exposed widgets form as pane configuration'),
'fields_override' => t('Fields override'),
);
$allow = array_filter($this->get_option('allow'));
$form['allow'] = array(
'#type' => 'checkboxes',
'#default_value' => $allow,
'#options' => $options,
);
break;
case 'pane_title':
$form['#title'] .= t('Administrative title');
$form['pane_title'] = array(
'#type' => 'textfield',
'#default_value' => $this->get_option('pane_title'),
'#description' => t('This is the title that will appear for this view pane in the add content dialog. If left blank, the view name will be used.'),
);
break;
case 'pane_description':
$form['#title'] .= t('Administrative description');
$form['pane_description'] = array(
'#type' => 'textfield',
'#default_value' => $this->get_option('pane_description'),
'#description' => t('This is text that will be displayed when the user mouses over the pane in the add content dialog. If blank the view description will be used.'),
);
break;
case 'pane_category':
$form['#title'] .= t('Administrative description');
$cat = $this->get_option('pane_category');
$form['pane_category']['#tree'] = TRUE;
$form['pane_category']['name'] = array(
'#type' => 'textfield',
'#default_value' => $cat['name'],
'#description' => t('This is category the pane will appear in on the add content dialog.'),
);
$form['pane_category']['weight'] = array(
'#title' => t('Weight'),
'#type' => 'textfield',
'#default_value' => $cat['weight'],
'#description' => t('This is the default weight of the category. Note that if the weight of a category is defined in multiple places, only the first one Panels sees will get that definition, so if the weight does not appear to be working, check other places that the weight might be set.'),
);
break;
case 'link_to_view':
$form['#title'] .= t('Link pane title to view');
$form['link_to_view'] = array(
'#type' => 'select',
'#options' => array(
1 => t('Yes'),
0 => t('No'),
),
'#default_value' => $this->get_option('link_to_view'),
);
break;
case 'inherit_panels_path':
$form['#title'] .= t('Inherit path from panel display');
$form['inherit_panels_path'] = array(
'#type' => 'select',
'#options' => array(
1 => t('Yes'),
0 => t('No'),
),
'#default_value' => $this->get_option('inherit_panels_path'),
'#description' => t('If yes, all links generated by Views, such as more links, summary links, and exposed input links will go to the panels display path, not the view, if the display has a path.'),
);
break;
case 'argument_input':
$form['#title'] .= t('Choose the data source for view arguments');
$argument_input = $this->get_argument_input();
ctools_include('context');
ctools_include('dependent');
$form['argument_input']['#tree'] = TRUE;
$converters = ctools_context_get_all_converters();
ksort($converters);
foreach ($argument_input as $id => $argument) {
$form['argument_input'][$id] = array(
'#tree' => TRUE,
);
$safe = str_replace(array(
'][',
'_',
' ',
), '-', $id);
$type_id = 'edit-argument-input-' . $safe;
$form['argument_input'][$id]['type'] = array(
'#type' => 'select',
'#options' => array(
'none' => t('No argument'),
'wildcard' => t('Argument wildcard'),
'context' => t('From context'),
'panel' => t('From panel argument'),
'fixed' => t('Fixed'),
'user' => t('Input on pane config'),
),
'#id' => $type_id,
'#title' => t('@arg source', array(
'@arg' => $argument['name'],
)),
'#default_value' => $argument['type'],
);
$form['argument_input'][$id]['context'] = array(
'#type' => 'select',
'#title' => t('Required context'),
'#description' => t('If "From context" is selected, which type of context to use.'),
'#default_value' => $argument['context'],
'#options' => $converters,
'#dependency' => array(
$type_id => array(
'context',
),
),
);
$form['argument_input'][$id]['context_optional'] = array(
'#type' => 'checkbox',
'#title' => t('Context is optional'),
'#description' => t('This context need not be present for the pane to function. If you plan to use this, ensure that the argument handler can handle empty values gracefully.'),
'#default_value' => $argument['context_optional'],
'#dependency' => array(
$type_id => array(
'context',
),
),
);
$form['argument_input'][$id]['panel'] = array(
'#type' => 'select',
'#title' => t('Panel argument'),
'#description' => t('If "From panel argument" is selected, which panel argument to use.'),
'#default_value' => $argument['panel'],
'#options' => array(
0 => t('First'),
1 => t('Second'),
2 => t('Third'),
3 => t('Fourth'),
4 => t('Fifth'),
5 => t('Sixth'),
),
'#dependency' => array(
$type_id => array(
'panel',
),
),
);
$form['argument_input'][$id]['fixed'] = array(
'#type' => 'textfield',
'#title' => t('Fixed argument'),
'#description' => t('If "Fixed" is selected, what to use as an argument.'),
'#default_value' => $argument['fixed'],
'#dependency' => array(
$type_id => array(
'fixed',
),
),
);
$form['argument_input'][$id]['label'] = array(
'#type' => 'textfield',
'#title' => t('Label'),
'#description' => t('If this argument is presented to the panels user, what label to apply to it.'),
'#default_value' => empty($argument['label']) ? $argument['name'] : $argument['label'],
'#dependency' => array(
$type_id => array(
'user',
),
),
);
}
break;
}
}
/**
* Perform any necessary changes to the form values prior to storage.
* There is no need for this function to actually store the data.
*/
public function options_submit(&$form, &$form_state) {
// It is very important to call the parent function here:
parent::options_submit($form, $form_state);
switch ($form_state['section']) {
case 'allow':
case 'argument_input':
case 'link_to_view':
case 'inherit_panels_path':
case 'pane_title':
case 'pane_description':
case 'pane_category':
$this->set_option($form_state['section'], $form_state['values'][$form_state['section']]);
break;
}
}
/**
* Adjust the array of argument input to match the current list of
* arguments available for this display. This ensures that changing
* the arguments doesn't cause the argument input field to just
* break.
*/
public function get_argument_input() {
$arguments = $this->get_option('argument_input');
$handlers = $this->get_handlers('argument');
// We use a separate output so as to seamlessly discard info for
// arguments that no longer exist.
$output = array();
foreach ($handlers as $id => $handler) {
if (empty($arguments[$id])) {
$output[$id] = array(
'type' => 'none',
'context' => 'any',
'context_optional' => FALSE,
'panel' => 0,
'fixed' => '',
'name' => $handler->ui_name(),
);
}
else {
$output[$id] = $arguments[$id];
$output[$id]['name'] = $handler->ui_name();
}
}
return $output;
}
public function use_more() {
$allow = $this->get_option('allow');
if (!$allow['more_link'] || !$this->has_pane_conf()) {
return parent::use_more();
}
$conf = $this->get_option('pane_conf');
return (bool) $conf['more_link'];
}
/**
* {@inheritdoc}
*/
public function validate() {
// To bypass the validation of the path from Views we temporarily
// override the path if one doesn't exist because it will be generated
// by panels though we want the rest of the validations to run.
$path = $this->get_path();
if (!$path) {
$this->set_option('path', $_GET['q']);
}
return parent::validate();
}
/**
* {@inheritdoc}
*/
public function get_path() {
if (empty($this->view->override_path)) {
return parent::get_path();
}
return $this->view->override_path;
}
public function get_url() {
if ($this->get_option('inherit_panels_path')) {
return $this->get_path();
}
return parent::get_url();
}
public function uses_exposed_form_in_block() {
// We'll always allow the exposed form in a block, regardless of path.
return TRUE;
}
/**
* 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.
*/
public function displays_exposed() {
$conf = $this->get_option('allow');
// If this is set, the exposed form is part of pane configuration, not
// rendered normally.
return empty($conf['exposed_form']);
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
views_content_plugin_display_panel_pane::$has_pane_conf | public | property | ||||
views_content_plugin_display_panel_pane::$panel_pane_display | public | property | If this variable is true, this display counts as a panel pane. We use this variable so that other modules can create alternate pane displays. |
|||
views_content_plugin_display_panel_pane::displays_exposed | public | function | Determine if this display should display the exposed filters widgets, so the view will know whether or not to render them. |
Overrides views_plugin_display::displays_exposed | ||
views_content_plugin_display_panel_pane::get_argument_input | public | function | Adjust the array of argument input to match the current list of arguments available for this display. This ensures that changing the arguments doesn't cause the argument input field to just break. |
|||
views_content_plugin_display_panel_pane::get_path | public | function | Return the base path to use for this display. | Overrides views_plugin_display::get_path | ||
views_content_plugin_display_panel_pane::get_url | public | function | Overrides views_plugin_display::get_url | |||
views_content_plugin_display_panel_pane::has_pane_conf | public | function | ||||
views_content_plugin_display_panel_pane::options_form | public | function | Provide the default form for setting options. | Overrides views_plugin_display::options_form | ||
views_content_plugin_display_panel_pane::options_submit | public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. |
Overrides views_plugin_display::options_submit | ||
views_content_plugin_display_panel_pane::options_summary | public | function | Provide the summary for page options in the views UI. | Overrides views_plugin_display::options_summary | ||
views_content_plugin_display_panel_pane::option_definition | public | function | Information about options for all kinds of purposes will be held here. | Overrides views_plugin_display::option_definition | ||
views_content_plugin_display_panel_pane::set_pane_conf | public | function | ||||
views_content_plugin_display_panel_pane::uses_exposed_form_in_block | public | function | Check to see if the display can put the exposed form in a block. | Overrides views_plugin_display::uses_exposed_form_in_block | ||
views_content_plugin_display_panel_pane::use_more | public | function | Does the display have a more link enabled? | Overrides views_plugin_display::use_more | ||
views_content_plugin_display_panel_pane::validate | public | function | Make sure the display and all associated handlers are valid. | Overrides views_plugin_display::validate | ||
views_object::$definition | public | property | Handler's definition. | |||
views_object::$options | public | property | Except for displays, options for the object will be held here. | 1 | ||
views_object::altered_option_definition | public | function | Collect this handler's option definition and alter them, ready for use. | |||
views_object::construct | public | function | Views handlers use a special construct function. | 4 | ||
views_object::export_options | public | function | ||||
views_object::export_option_always | public | function | Always exports the option, regardless of the default value. | |||
views_object::options | Deprecated | public | function | Set default options on this object. | 1 | |
views_object::set_default_options | public | function | Set default options. | |||
views_object::set_definition | public | function | Let the handler know what its full definition is. | |||
views_object::unpack_options | public | function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. |
|||
views_object::unpack_translatable | public | function | Unpack a single option definition. | |||
views_object::unpack_translatables | public | function | Unpacks each handler to store translatable texts. | |||
views_object::_set_option_defaults | public | function | ||||
views_plugin::$display | public | property | The current used views display. | |||
views_plugin::$plugin_name | public | property | The plugin name of this plugin, for example table or full. | |||
views_plugin::$plugin_type | public | property | The plugin type of this plugin, for example style or query. | |||
views_plugin::additional_theme_functions | public | function | Provide a list of additional theme functions for the theme info page. | |||
views_plugin::plugin_title | public | function | Return the human readable name of the display. | |||
views_plugin::summary_title | public | function | Returns the summary of the settings in the display. | 8 | ||
views_plugin::theme_functions | public | function | Provide a full list of possible theme templates used by this style. | |||
views_plugin_display::$extender | public | property | Stores all available display extenders. | |||
views_plugin_display::$handlers | public | property | List of handlers for this display. | |||
views_plugin_display::$view | public | property | The top object of a view. | Overrides views_plugin::$view | ||
views_plugin_display::accept_attachments | public | function | Can this display accept attachments? | |||
views_plugin_display::access | public | function | Determine if the user has access to this display of the view. | |||
views_plugin_display::attach_to | public | function | Allow displays to attach to other views. | 2 | ||
views_plugin_display::defaultable_sections | public | function | List which sections are defaultable and what items each section contains. | 1 | ||
views_plugin_display::destroy | public | function | Destructor. | Overrides views_object::destroy | ||
views_plugin_display::execute | public | function | When used externally, this is how a view gets run and returns data in the format required. |
4 | ||
views_plugin_display::export_handler | public | function | Special method to export items that have handlers. | |||
views_plugin_display::export_option | public | function | Override of export_option() | Overrides views_object::export_option | ||
views_plugin_display::export_plugin | public | function | Special handling for plugin export. | |||
views_plugin_display::export_style | public | function | Special handling for the style export. | |||
views_plugin_display::format_themes | public | function | Format a list of theme templates for output by the theme info helper. | |||
views_plugin_display::get_arguments_tokens | public | function | Returns to tokens for arguments. | |||
views_plugin_display::get_argument_text | public | function | Provide some helpful text for the arguments. | 1 | ||
views_plugin_display::get_field_labels | public | function | List of fields for the current display with the associated relationship. | |||
views_plugin_display::get_handler | public | function | Get the handler object for a single handler. | |||
views_plugin_display::get_handlers | public | function | Get a full array of handlers for $type. This caches them. | |||
views_plugin_display::get_link_display | public | function | Check to see which display to use when creating links. | |||
views_plugin_display::get_option | public | function | Intelligently get an option either from this or default display. | |||
views_plugin_display::get_pager_text | public | function | Provide some helpful text for pagers. | 1 | ||
views_plugin_display::get_plugin | public | function | Get the instance of a plugin, for example style or row. | |||
views_plugin_display::get_special_blocks | public | function | Provide the block system with any exposed widget blocks for this display. | |||
views_plugin_display::get_style_type | public | function | Displays can require a certain type of style plugin. | 1 | ||
views_plugin_display::has_path | public | function | Check to see if the display has a 'path' field. | 1 | ||
views_plugin_display::hook_block_list | public | function | If this display creates a block, implement one of these. | |||
views_plugin_display::hook_menu | public | function | If this display creates a page with a menu item, implement it here. | |||
views_plugin_display::init | public | function | 1 | |||
views_plugin_display::is_defaulted | public | function | Determine if a given option is set to use the default or current display. | |||
views_plugin_display::is_default_display | public | function | If this display is the 'default' display which contains fallback settings. | 1 | ||
views_plugin_display::is_identifier_unique | public | function | Check if the provided identifier is unique. | |||
views_plugin_display::options_override | public | function | If override/revert was clicked, perform the proper toggle. | |||
views_plugin_display::options_validate | public | function | Validate the options form. | Overrides views_plugin::options_validate | 1 | |
views_plugin_display::option_link | public | function | Because forms may be split up into sections, this provides an easy URL to exactly the right section. Don't override this. |
|||
views_plugin_display::override_option | public | function | Set an option and force it to be an override. | |||
views_plugin_display::preview | public | function | Fully render the display. | 1 | ||
views_plugin_display::pre_execute | public | function | Set up any variables on the view prior to execution. | |||
views_plugin_display::query | public | function | Inject anything into the query that the display handler needs. | Overrides views_plugin::query | ||
views_plugin_display::render | public | function | Render this display. | 1 | ||
views_plugin_display::render_area | public | function | ||||
views_plugin_display::render_empty | public | function | ||||
views_plugin_display::render_filters | public | function | Not all display plugins will support filtering. | |||
views_plugin_display::render_footer | public | function | Render the footer of the view. | |||
views_plugin_display::render_header | public | function | Render the header of the view. | |||
views_plugin_display::render_more_link | public | function | Render the 'more' link. | |||
views_plugin_display::render_pager | public | function | Not all display plugins will suppert pager rendering. | 1 | ||
views_plugin_display::set_option | public | function | Intelligently set an option either from this display or from the default display, if directed to do so. |
|||
views_plugin_display::set_override | public | function | Flip the override setting for the given section. | |||
views_plugin_display::unpack_handler | public | function | Special method to unpack items that have handlers. | |||
views_plugin_display::unpack_plugin | public | function | Special handling for plugin unpacking. | |||
views_plugin_display::unpack_style | public | function | ||||
views_plugin_display::uses_breadcrumb | public | function | Check to see if the display needs a breadcrumb. | 1 | ||
views_plugin_display::uses_exposed | public | function | Does this display uses exposed filters? | 2 | ||
views_plugin_display::uses_fields | public | function | Determine if the display's style uses fields. | |||
views_plugin_display::uses_link_display | public | function | Check to see if the display has some need to link to another display. | 1 | ||
views_plugin_display::use_ajax | public | function | Does the display use AJAX? | |||
views_plugin_display::use_group_by | public | function | Does the display have groupby enabled? | |||
views_plugin_display::use_more_always | public | function | Should the enabled display more link be shown when no more items? | |||
views_plugin_display::use_more_open_new_window | public | function | Should the enabled display more link being opened in an new window? | |||
views_plugin_display::use_more_text | public | function | Does the display have custom link text? | |||
views_plugin_display::use_pager | public | function | Does the display have a pager enabled? | 1 | ||
views_plugin_display::view_special_blocks | public | function | Render any special blocks provided for this display. |