class views_plugin_display_i18n_page in i18n page views 7
Same name and namespace in other branches
- 6 views_plugin_display_i18n_page.inc \views_plugin_display_i18n_page
- 6.0 views_plugin_display_i18n_page.inc \views_plugin_display_i18n_page
The plugin that handles a full page.
Hierarchy
- class \views_object
- class \views_plugin
- class \views_plugin_display
- class \views_plugin
Expanded class hierarchy of views_plugin_display_i18n_page
1 string reference to 'views_plugin_display_i18n_page'
- i18n_page_views_views_plugins in includes/
i18n_page_views.views.inc - Implementation of hook_views_plugins().
File
- ./
views_plugin_display_i18n_page.inc, line 13 - Contains the i18n page display plugin.
View source
class views_plugin_display_i18n_page extends views_plugin_display {
/**
* The page display has a path.
*/
function has_path() {
return TRUE;
}
function uses_breadcrumb() {
return TRUE;
}
function option_definition() {
$options = parent::option_definition();
$languages = locale_language_list();
foreach ($languages as $langcode => $langname) {
$options['path_' . $langcode] = array(
'default' => '',
);
}
return $options;
}
/**
* Add this display's path information to Drupal's menu system.
*/
function execute_hook_menu($callbacks) {
$items = array();
// Replace % with the link to our standard views argument loader
// views_arg_load -- which lives in views.module
$languages = locale_language_list();
foreach ($languages as $langcode => $langname) {
$bits = explode('/', $this
->get_option('path_' . $langcode));
$page_arguments = array(
$this->view->name,
$this->display->id,
);
// Replace % with %views_arg for menu autoloading and add to the
// page arguments so the argument actually comes through.
foreach ($bits as $pos => $bit) {
if ($bit == '%') {
$bits[$pos] = '%views_arg';
$page_arguments[] = $pos;
}
}
$path = implode('/', $bits);
$access_plugin = $this
->get_plugin('access');
if (!isset($access_plugin)) {
$access_plugin = views_get_plugin('access', 'none');
}
if ($path) {
$items[$path] = array(
// default views page entry
'page callback' => 'views_page',
'page arguments' => $page_arguments,
// Default access check (per display)
'access callback' => 'views_access',
'access arguments' => array(
$access_plugin
->get_access_callback(),
),
// Identify URL embedded arguments and correlate them to a handler
'load arguments' => array(
$this->view->name,
$this->display->id,
'%index',
),
);
$menu = array(
'type' => 'none',
);
$items[$path]['type'] = MENU_CALLBACK;
}
}
return $items;
}
/**
* The display page handler returns a normal view, but it also does
* a drupal_set_title for the page, and does a views_set_page_view
* on the view.
*/
function execute() {
// Let the world know that this is the page view we're using.
views_set_page_view($this->view);
// Prior to this being called, the $view should already be set to this
// display, and arguments should be set on the view.
$this->view
->build();
if (!empty($this->view->build_info['fail'])) {
return drupal_not_found();
}
$this->view
->get_breadcrumb(TRUE);
// Get the default page title
$title = $this->view
->get_title();
// Translate the title if necessary
if ($this->view
->is_translatable()) {
// Most of this is copied from unpack_options() in views/includes/base.inc
// 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;
}
else {
if (!empty($this->is_plugin)) {
if ($this->plugin_type != 'display') {
$localization_keys = array(
$this->view->current_display,
);
$localization_keys[] = $this->plugin_type;
}
}
}
// Build the array of data to pass to translate()
$format = NULL;
$key = 'title';
$value = $title;
$translation_data = array(
'value' => $value,
'format' => $format,
'keys' => array_merge(array(
$this->view->name,
), $localization_keys, array(
$key,
)),
);
// Do the translation
$title = $this->view->localization_plugin
->translate($translation_data);
}
// Set the title, using the translated title if it was set.
drupal_set_title(filter_xss_admin($title), PASS_THROUGH);
// And now render the view.
return $this->view
->render();
}
/**
* Provide the summary for page options in the views UI.
*
* This output is returned as an array.
*/
function options_summary(&$categories, &$options) {
// It is very important to call the parent function here:
parent::options_summary($categories, $options);
$categories['page'] = array(
'title' => t('Page settings'),
'column' => 'second',
'build' => array(
'#weight' => -10,
),
);
$languages = locale_language_list();
foreach ($languages as $langcode => $langname) {
$path = strip_tags($this
->get_option('path_' . $langcode));
if (empty($path)) {
$path = t('None');
}
$options['path_' . $langcode] = array(
'category' => 'page',
'title' => t('Path in %language', array(
'%language' => $langname,
)),
'value' => views_ui_truncate($path, 24),
);
}
}
/**
* Provide the default form for setting options.
*/
function options_form(&$form, &$form_state) {
// It is very important to call the parent function here:
parent::options_form($form, $form_state);
$key = $form_state['section'];
if (stristr($key, 'path_') === FALSE) {
return;
}
$form['#title'] .= t('The menu path or URL of this view');
$form['#help_topic'] = 'path';
$form[$key] = array(
'#type' => 'textfield',
'#description' => t('This view will be displayed by visiting this path on your site. You may use "%" in your URL to represent values that will be used for arguments: For example, "node/%/feed".'),
'#default_value' => $this
->get_option($key),
'#field_prefix' => '<span dir="ltr">' . url(NULL, array(
'absolute' => TRUE,
)) . (variable_get('clean_url', 0) ? '' : '?q='),
'#field_suffix' => '</span>‎',
'#attributes' => array(
'dir' => 'ltr',
),
);
}
function options_validate(&$form, &$form_state) {
// It is very important to call the parent function here:
parent::options_validate($form, $form_state);
$key = $form_state['section'];
if (stristr($key, 'path_') === FALSE) {
return;
}
if (strpos($form_state['values'][$key], '$arg') !== FALSE) {
form_error($form[$key], t('"$arg" is no longer supported. Use % instead.'));
}
if (strpos($form_state['values'][$key], '%') === 0) {
form_error($form[$key], t('"%" may not be used for the first segment of a path.'));
}
// automatically remove '/' from path.
$form_state['values'][$key] = trim($form_state['values'][$key], '/');
}
function options_submit(&$form, &$form_state) {
// It is very important to call the parent function here:
parent::options_submit($form, $form_state);
$key = $form_state['section'];
$this
->set_option($key, $form_state['values'][$key]);
}
function validate() {
$errors = parent::validate();
$languages = locale_language_list();
foreach ($languages as $langcode => $langname) {
if (!$this
->get_option('path_' . $langcode)) {
return $errors;
}
}
}
/**
* Return the base path to use for this display based on language interface
*/
function get_path() {
global $language;
if ($this
->has_path()) {
return $this
->get_option('path_' . $language->language);
}
$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();
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
views_object:: |
public | property | Handler's definition. | |
views_object:: |
public | property | Except for displays, options for the object will be held here. | 1 |
views_object:: |
function | Collect this handler's option definition and alter them, ready for use. | ||
views_object:: |
public | function | Views handlers use a special construct function. | 4 |
views_object:: |
public | function | ||
views_object:: |
public | function | Always exports the option, regardless of the default value. | |
views_object:: |
public | function | Set default options on this object. | 1 |
views_object:: |
public | function | Set default options. | |
views_object:: |
public | function | Let the handler know what its full definition is. | |
views_object:: |
public | function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. | |
views_object:: |
public | function | Unpack a single option definition. | |
views_object:: |
public | function | Unpacks each handler to store translatable texts. | |
views_object:: |
public | function | ||
views_plugin:: |
public | property | The current used views display. | |
views_plugin:: |
public | property | The plugin name of this plugin, for example table or full. | |
views_plugin:: |
public | property | The plugin type of this plugin, for example style or query. | |
views_plugin:: |
public | function | Provide a list of additional theme functions for the theme info page. | |
views_plugin:: |
public | function | Return the human readable name of the display. | |
views_plugin:: |
public | function | Returns the summary of the settings in the display. | 8 |
views_plugin:: |
public | function | Provide a full list of possible theme templates used by this style. | |
views_plugin_display:: |
public | property | Stores all available display extenders. | |
views_plugin_display:: |
public | property | List of handlers for this display. | |
views_plugin_display:: |
public | property |
The top object of a view. Overrides views_plugin:: |
|
views_plugin_display:: |
public | function | Can this display accept attachments? | |
views_plugin_display:: |
public | function | Determine if the user has access to this display of the view. | |
views_plugin_display:: |
public | function | Allow displays to attach to other views. | 2 |
views_plugin_display:: |
public | function | List which sections are defaultable and what items each section contains. | 1 |
views_plugin_display:: |
public | function |
Destructor. Overrides views_object:: |
|
views_plugin_display:: |
public | function | Determine if this display should display the exposed filters widgets. | 1 |
views_plugin_display:: |
public | function | Special method to export items that have handlers. | |
views_plugin_display:: |
public | function |
Override of export_option() Overrides views_object:: |
|
views_plugin_display:: |
public | function | Special handling for plugin export. | |
views_plugin_display:: |
public | function | Special handling for the style export. | |
views_plugin_display:: |
public | function | Format a list of theme templates for output by the theme info helper. | |
views_plugin_display:: |
public | function | Returns to tokens for arguments. | |
views_plugin_display:: |
public | function | Provide some helpful text for the arguments. | 1 |
views_plugin_display:: |
public | function | List of fields for the current display with the associated relationship. | |
views_plugin_display:: |
public | function | Get the handler object for a single handler. | |
views_plugin_display:: |
public | function | Get a full array of handlers for $type. This caches them. | |
views_plugin_display:: |
public | function | Check to see which display to use when creating links. | |
views_plugin_display:: |
public | function | Intelligently get an option either from this or default display. | |
views_plugin_display:: |
public | function | Provide some helpful text for pagers. | 1 |
views_plugin_display:: |
public | function | Get the instance of a plugin, for example style or row. | |
views_plugin_display:: |
public | function | Provide the block system with any exposed widget blocks for this display. | |
views_plugin_display:: |
public | function | Displays can require a certain type of style plugin. | 1 |
views_plugin_display:: |
public | function | ||
views_plugin_display:: |
public | function | If this display creates a block, implement one of these. | |
views_plugin_display:: |
public | function | If this display creates a page with a menu item, implement it here. | |
views_plugin_display:: |
public | function | 1 | |
views_plugin_display:: |
public | function | Determine if a given option is set to use the default or current display. | |
views_plugin_display:: |
public | function | If this display is the 'default' display which contains fallback settings. | 1 |
views_plugin_display:: |
public | function | Check if the provided identifier is unique. | |
views_plugin_display:: |
public | function | If override/revert was clicked, perform the proper toggle. | |
views_plugin_display:: |
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:: |
public | function | Set an option and force it to be an override. | |
views_plugin_display:: |
public | function | Fully render the display. | 1 |
views_plugin_display:: |
public | function | Set up any variables on the view prior to execution. | |
views_plugin_display:: |
public | function |
Inject anything into the query that the display handler needs. Overrides views_plugin:: |
|
views_plugin_display:: |
public | function | Render this display. | 1 |
views_plugin_display:: |
public | function | ||
views_plugin_display:: |
public | function | ||
views_plugin_display:: |
public | function | Not all display plugins will support filtering. | |
views_plugin_display:: |
public | function | Render the footer of the view. | |
views_plugin_display:: |
public | function | Render the header of the view. | |
views_plugin_display:: |
public | function | Render the 'more' link. | |
views_plugin_display:: |
public | function | Not all display plugins will suppert pager rendering. | 1 |
views_plugin_display:: |
public | function | Intelligently set an option either from this display or from the default display, if directed to do so. | |
views_plugin_display:: |
public | function | Flip the override setting for the given section. | |
views_plugin_display:: |
public | function | Special method to unpack items that have handlers. | |
views_plugin_display:: |
public | function | Special handling for plugin unpacking. | |
views_plugin_display:: |
public | function | ||
views_plugin_display:: |
public | function | Does this display uses exposed filters? | 2 |
views_plugin_display:: |
public | function | Check to see if the display can put the exposed form in a block. | |
views_plugin_display:: |
public | function | Determine if the display's style uses fields. | |
views_plugin_display:: |
public | function | Check to see if the display has some need to link to another display. | 1 |
views_plugin_display:: |
public | function | Does the display use AJAX? | |
views_plugin_display:: |
public | function | Does the display have groupby enabled? | |
views_plugin_display:: |
public | function | Does the display have a more link enabled? | |
views_plugin_display:: |
public | function | Should the enabled display more link be shown when no more items? | |
views_plugin_display:: |
public | function | Should the enabled display more link being opened in an new window? | |
views_plugin_display:: |
public | function | Does the display have custom link text? | |
views_plugin_display:: |
public | function | Does the display have a pager enabled? | 1 |
views_plugin_display:: |
public | function | Render any special blocks provided for this display. | |
views_plugin_display_i18n_page:: |
function |
The display page handler returns a normal view, but it also does
a drupal_set_title for the page, and does a views_set_page_view
on the view. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function | Add this display's path information to Drupal's menu system. | ||
views_plugin_display_i18n_page:: |
function |
Return the base path to use for this display based on language interface Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
The page display has a path. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Provide the default form for setting options. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Perform any necessary changes to the form values prior to storage. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Provide the summary for page options in the views UI. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Validate the options form. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Information about options for all kinds of purposes will be held here. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Check to see if the display needs a breadcrumb. Overrides views_plugin_display:: |
||
views_plugin_display_i18n_page:: |
function |
Make sure the display and all associated handlers are valid. Overrides views_plugin_display:: |