class PagerPluginBase
Same name in other branches
- 9 core/modules/views/src/Plugin/views/pager/PagerPluginBase.php \Drupal\views\Plugin\views\pager\PagerPluginBase
- 8.9.x core/modules/views/src/Plugin/views/pager/PagerPluginBase.php \Drupal\views\Plugin\views\pager\PagerPluginBase
- 11.x core/modules/views/src/Plugin/views/pager/PagerPluginBase.php \Drupal\views\Plugin\views\pager\PagerPluginBase
Base class for views pager plugins.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
- class \Drupal\views\Plugin\views\PluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface
- class \Drupal\views\Plugin\views\pager\PagerPluginBase extends \Drupal\views\Plugin\views\PluginBase
- class \Drupal\views\Plugin\views\PluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
Expanded class hierarchy of PagerPluginBase
Related topics
3 files declare their use of PagerPluginBase
- DisplayKernelTest.php in core/
modules/ views/ tests/ src/ Kernel/ Plugin/ DisplayKernelTest.php - ResultTest.php in core/
modules/ views/ tests/ src/ Unit/ Plugin/ area/ ResultTest.php - ViewExecutableTest.php in core/
modules/ views/ tests/ src/ Kernel/ ViewExecutableTest.php
1 string reference to 'PagerPluginBase'
- views.data_types.schema.yml in core/
modules/ views/ config/ schema/ views.data_types.schema.yml - core/modules/views/config/schema/views.data_types.schema.yml
File
-
core/
modules/ views/ src/ Plugin/ views/ pager/ PagerPluginBase.php, line 28
Namespace
Drupal\views\Plugin\views\pagerView source
abstract class PagerPluginBase extends PluginBase {
// phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName
public $current_page = NULL;
// phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName
public $total_items = 0;
/**
* {@inheritdoc}
*/
protected $usesOptions = TRUE;
/**
* Options available for setting pagination headers.
*/
protected array $headingOptions = [
'h1' => 'H1',
'h2' => 'H2',
'h3' => 'H3',
'h4' => 'H4',
'h5' => 'H5',
'h6' => 'H6',
];
/**
* Get how many items per page this pager will display.
*
* All but the leanest pagers should probably return a value here, so
* most pagers will not need to override this method.
*/
public function getItemsPerPage() {
return $this->options['items_per_page'] ?? 0;
}
/**
* Set how many items per page this pager will display.
*
* This is mostly used for things that will override the value.
*/
public function setItemsPerPage($items) {
$this->options['items_per_page'] = $items;
}
/**
* Get the page offset, or how many items to skip.
*
* Even pagers that don't actually page can skip items at the beginning,
* so few pagers will need to override this method.
*/
public function getOffset() {
return $this->options['offset'] ?? 0;
}
/**
* Set the page offset, or how many items to skip.
*/
public function setOffset($offset) {
$this->options['offset'] = $offset;
}
/**
* Get the pager heading tag.
*
* @return string
* Heading level for the pager.
*/
public function getHeadingLevel() : string {
return $this->options['pagination_heading_level'] ?? 'h4';
}
/**
* Set the pager heading.
*/
public function setHeadingLevel($headingLevel) : void {
$this->options['pagination_heading_level'] = $headingLevel;
}
/**
* Get the current page.
*
* If NULL, we do not know what the current page is.
*/
public function getCurrentPage() {
return $this->current_page;
}
/**
* Set the current page.
*
* @param $number
* If provided, the page number will be set to this. If NOT provided,
* the page number will be set from the global page array.
*/
public function setCurrentPage($number = NULL) {
if (!is_numeric($number) || $number < 0) {
$number = 0;
}
$this->current_page = $number;
}
/**
* Get the total number of items.
*
* If NULL, we do not yet know what the total number of items are.
*/
public function getTotalItems() {
return $this->total_items;
}
/**
* Get the pager id, if it exists.
*/
public function getPagerId() {
return $this->options['id'] ?? 0;
}
/**
* Provide the default form for validating options.
*/
public function validateOptionsForm(&$form, FormStateInterface $form_state) {
}
/**
* Provide the default form for submitting options.
*/
public function submitOptionsForm(&$form, FormStateInterface $form_state) {
}
/**
* Returns a string to display as the clickable title for the pager plugin.
*/
public function summaryTitle() {
return $this->t('Unknown');
}
/**
* Determine if this pager actually uses a pager.
*
* Only a couple of very specific pagers will set this to false.
*/
public function usePager() {
return TRUE;
}
/**
* Determine if a pager needs a count query.
*
* If a pager needs a count query, a simple query
*/
public function useCountQuery() {
return TRUE;
}
/**
* Executes the count query.
*
* This will be done just prior to the query itself being executed.
*/
public function executeCountQuery(&$count_query) {
$this->total_items = $count_query->execute()
->fetchField();
if (!empty($this->options['offset'])) {
$this->total_items -= $this->options['offset'];
}
// Prevent from being negative.
$this->total_items = max(0, $this->total_items);
return $this->total_items;
}
/**
* Updates the pager information.
*
* If there are pagers that need global values set, this method can
* be used to set them. It will be called after the query is run.
*/
public function updatePageInfo() {
}
/**
* Modify the query for paging.
*
* This is called during the build phase and can directly modify the query.
*/
public function query() {
}
/**
* Perform any needed actions just prior to the query executing.
*/
public function preExecute(&$query) {
}
/**
* Perform any needed actions just after the query executing.
*/
public function postExecute(&$result) {
}
/**
* Perform any needed actions just before rendering.
*/
public function preRender(&$result) {
}
/**
* Return the renderable array of the pager.
*
* Called during the view render process.
*
* @param $input
* Any extra GET parameters that should be retained, such as exposed
* input.
*/
public function render($input) {
}
/**
* Determine if there are more records available.
*
* This is primarily used to control the display of a more link.
*/
public function hasMoreRecords() {
return $this->getItemsPerPage() && $this->total_items > (intval($this->current_page) + 1) * $this->getItemsPerPage();
}
public function exposedFormAlter(&$form, FormStateInterface $form_state) {
}
public function exposedFormValidate(&$form, FormStateInterface $form_state) {
}
public function exposedFormSubmit(&$form, FormStateInterface $form_state, &$exclude) {
}
public function usesExposed() {
return FALSE;
}
protected function itemsPerPageExposed() {
return FALSE;
}
protected function isOffsetExposed() {
return FALSE;
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
DerivativeInspectionInterface::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | 1 | ||
DerivativeInspectionInterface::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | 1 | ||
PagerPluginBase::$current_page | public | property | ||||
PagerPluginBase::$headingOptions | protected | property | Options available for setting pagination headers. | |||
PagerPluginBase::$total_items | public | property | ||||
PagerPluginBase::$usesOptions | protected | property | Denotes whether the plugin has an additional options form. | Overrides PluginBase::$usesOptions | ||
PagerPluginBase::executeCountQuery | public | function | Executes the count query. | 1 | ||
PagerPluginBase::exposedFormAlter | public | function | 1 | |||
PagerPluginBase::exposedFormSubmit | public | function | ||||
PagerPluginBase::exposedFormValidate | public | function | 1 | |||
PagerPluginBase::getCurrentPage | public | function | Get the current page. | |||
PagerPluginBase::getHeadingLevel | public | function | Get the pager heading tag. | |||
PagerPluginBase::getItemsPerPage | public | function | Get how many items per page this pager will display. | 1 | ||
PagerPluginBase::getOffset | public | function | Get the page offset, or how many items to skip. | |||
PagerPluginBase::getPagerId | public | function | Get the pager id, if it exists. | |||
PagerPluginBase::getTotalItems | public | function | Get the total number of items. | |||
PagerPluginBase::hasMoreRecords | public | function | Determine if there are more records available. | |||
PagerPluginBase::isOffsetExposed | protected | function | 1 | |||
PagerPluginBase::itemsPerPageExposed | protected | function | 1 | |||
PagerPluginBase::postExecute | public | function | Perform any needed actions just after the query executing. | 3 | ||
PagerPluginBase::preExecute | public | function | Perform any needed actions just prior to the query executing. | |||
PagerPluginBase::preRender | public | function | Perform any needed actions just before rendering. | |||
PagerPluginBase::query | public | function | Modify the query for paging. | Overrides PluginBase::query | 3 | |
PagerPluginBase::render | public | function | Return the renderable array of the pager. | 2 | ||
PagerPluginBase::setCurrentPage | public | function | Set the current page. | 1 | ||
PagerPluginBase::setHeadingLevel | public | function | Set the pager heading. | |||
PagerPluginBase::setItemsPerPage | public | function | Set how many items per page this pager will display. | |||
PagerPluginBase::setOffset | public | function | Set the page offset, or how many items to skip. | |||
PagerPluginBase::submitOptionsForm | public | function | Provide the default form for submitting options. | Overrides PluginBase::submitOptionsForm | ||
PagerPluginBase::summaryTitle | public | function | Returns a string to display as the clickable title for the pager plugin. | Overrides PluginBase::summaryTitle | 4 | |
PagerPluginBase::updatePageInfo | public | function | Updates the pager information. | 1 | ||
PagerPluginBase::useCountQuery | public | function | Determine if a pager needs a count query. | 3 | ||
PagerPluginBase::usePager | public | function | Determine if this pager actually uses a pager. | 2 | ||
PagerPluginBase::usesExposed | public | function | 1 | |||
PagerPluginBase::validateOptionsForm | public | function | Provide the default form for validating options. | Overrides PluginBase::validateOptionsForm | 1 | |
PluginBase::$definition | public | property | Plugins' definition. | |||
PluginBase::$displayHandler | public | property | The display object this plugin is for. | |||
PluginBase::$options | public | property | Options for this plugin will be held here. | |||
PluginBase::$position | public | property | The handler position. | |||
PluginBase::$renderer | protected | property | Stores the render API renderer. | 3 | ||
PluginBase::$view | public | property | The top object of a view. | 1 | ||
PluginBase::buildOptionsForm | public | function | Provide a form to edit options for this plugin. | Overrides ViewsPluginInterface::buildOptionsForm | 16 | |
PluginBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides DependentPluginInterface::calculateDependencies | 14 | |
PluginBase::create | public static | function | Creates an instance of the plugin. | Overrides ContainerFactoryPluginInterface::create | 60 | |
PluginBase::defineOptions | protected | function | Information about options for all kinds of purposes will be held here. | 18 | ||
PluginBase::destroy | public | function | Clears a plugin. | Overrides ViewsPluginInterface::destroy | 2 | |
PluginBase::doFilterByDefinedOptions | protected | function | Do the work to filter out stored options depending on the defined options. | |||
PluginBase::filterByDefinedOptions | public | function | Filter out stored options depending on the defined options. | Overrides ViewsPluginInterface::filterByDefinedOptions | ||
PluginBase::getAvailableGlobalTokens | public | function | Returns an array of available token replacements. | Overrides ViewsPluginInterface::getAvailableGlobalTokens | ||
PluginBase::getProvider | public | function | Returns the plugin provider. | Overrides ViewsPluginInterface::getProvider | ||
PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | ||
PluginBase::globalTokenForm | public | function | Adds elements for available core tokens to a form. | Overrides ViewsPluginInterface::globalTokenForm | ||
PluginBase::globalTokenReplace | public | function | Returns a string with any core tokens replaced. | Overrides ViewsPluginInterface::globalTokenReplace | ||
PluginBase::INCLUDE_ENTITY | constant | Include entity row languages when listing languages. | ||||
PluginBase::INCLUDE_NEGOTIATED | constant | Include negotiated languages when listing languages. | ||||
PluginBase::init | public | function | Initialize the plugin. | Overrides ViewsPluginInterface::init | 6 | |
PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | |||
PluginBase::pluginTitle | public | function | Return the human readable name of the display. | Overrides ViewsPluginInterface::pluginTitle | ||
PluginBase::preRenderAddFieldsetMarkup | public static | function | Moves form elements into fieldsets for presentation purposes. | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | ||
PluginBase::preRenderFlattenData | public static | function | Flattens the structure of form elements. | Overrides ViewsPluginInterface::preRenderFlattenData | ||
PluginBase::queryLanguageSubstitutions | public static | function | Returns substitutions for Views queries for languages. | |||
PluginBase::setOptionDefaults | protected | function | Fills up the options of the plugin with defaults. | |||
PluginBase::themeFunctions | public | function | Provide a full list of possible theme templates used by this style. | Overrides ViewsPluginInterface::themeFunctions | 1 | |
PluginBase::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | |
PluginBase::unpackOptions | public | function | Unpacks options over our existing defaults. | Overrides ViewsPluginInterface::unpackOptions | ||
PluginBase::usesOptions | public | function | Returns the usesOptions property. | Overrides ViewsPluginInterface::usesOptions | 8 | |
PluginBase::validate | public | function | Validate that the plugin is correct and can be saved. | Overrides ViewsPluginInterface::validate | 6 | |
PluginBase::viewsTokenReplace | protected | function | Replaces Views' tokens in a given string. | 1 | ||
PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT | constant | Query string to indicate the site default language. | ||||
PluginBase::__construct | public | function | Constructs a PluginBase object. | 19 | ||
PluginInspectionInterface::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | 6 | ||
PluginInspectionInterface::getPluginId | public | function | Gets the plugin_id of the plugin instance. | 2 | ||
TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | ||||
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||||
TrustedCallbackInterface::TRIGGER_WARNING | Deprecated | constant | Untrusted callbacks trigger E_USER_WARNING errors. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.