class Multipane in Pagerer 8
Same name and namespace in other branches
- 8.2 src/Plugin/pagerer/Multipane.php \Drupal\pagerer\Plugin\pagerer\Multipane
A multi-pane (left, center, and right) pager style.
Plugin annotation
@PagererStyle(
id = "multipane",
title = @Translation("Pagerer multi-pane pager"),
short_title = @Translation("Multi-pane"),
help = @Translation("A multi-pane (left, center, and right) pager style, enabling each pane to contain a base style."),
style_type = "composite"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\pagerer\Plugin\pagerer\Multipane implements PagererStyleInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Multipane
File
- src/
Plugin/ pagerer/ Multipane.php, line 23
Namespace
Drupal\pagerer\Plugin\pagererView source
class Multipane extends PluginBase implements PagererStyleInterface {
/**
* The Pagerer pager object.
*
* @var \Drupal\pagerer\Pagerer
*/
protected $pager;
/**
* {@inheritdoc}
*/
public function setPager(Pagerer $pager) {
$this->pager = $pager;
return $this;
}
/**
* {@inheritdoc}
*/
public function preprocess(array &$variables) {
// Load preset if specified.
if (!empty($this->configuration['preset'])) {
$preset = PagererPreset::load($this->configuration['preset']);
}
// Fully qualify all panes.
if (isset($preset)) {
$cacheable = TRUE;
foreach ([
'left',
'center',
'right',
] as $pane) {
// Determine pane's style.
if ($preset_style = $preset
->getPaneData($pane, 'style')) {
$this->configuration['panes'][$pane]['style'] = $preset_style;
}
// If we are overriding preset's configuration via passed in pane
// variables, we can't cache on its config entity.
if (!empty($this->configuration['panes'][$pane]['config'])) {
$cacheable = FALSE;
}
// Determine pane's config.
if ($preset_config = $preset
->getPaneData($pane, 'config')) {
$this->configuration['panes'][$pane]['config'] = NestedArray::mergeDeep($preset_config, $this->configuration['panes'][$pane]['config']);
}
}
}
// Check if pager is needed; if not, return immediately.
// It is the lowest required number of pages in any of the panes.
$page_restriction = min(isset($this->configuration['panes']['left']['config']['display_restriction']) ? $this->configuration['panes']['left']['config']['display_restriction'] : 2, isset($this->configuration['panes']['center']['config']['display_restriction']) ? $this->configuration['panes']['center']['config']['display_restriction'] : 2, isset($this->configuration['panes']['right']['config']['display_restriction']) ? $this->configuration['panes']['right']['config']['display_restriction'] : 2);
if ($this->pager
->getTotalPages() < $page_restriction) {
return;
}
// Build render array.
foreach ([
'left',
'center',
'right',
] as $pane) {
if ($this->configuration['panes'][$pane]['style'] != 'none') {
$variables['pagerer'][$pane . '_pane'] = [
'#type' => 'pager',
'#theme' => 'pagerer_base',
'#style' => $this->configuration['panes'][$pane]['style'],
'#route_name' => $variables['pager']['#route_name'],
'#route_parameters' => isset($variables['pager']['#route_parameters']) ? $variables['pager']['#route_parameters'] : [],
'#element' => $variables['pager']['#element'],
'#parameters' => $variables['pager']['#parameters'],
'#config' => $this->configuration['panes'][$pane]['config'],
];
}
else {
$variables['pagerer'][$pane . '_pane'] = [];
}
}
// Add the preset entity cache metadata, if possible.
if (isset($preset) && $cacheable) {
CacheableMetadata::createFromRenderArray($variables)
->merge(CacheableMetadata::createFromObject($preset))
->applyTo($variables);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
Multipane:: |
protected | property | The Pagerer pager object. | |
Multipane:: |
public | function |
Prepares to render the pager. Overrides PagererStyleInterface:: |
|
Multipane:: |
public | function |
Sets the Pagerer pager to be rendered. Overrides PagererStyleInterface:: |
|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |