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
- 10 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 {
/**
* The current page.
*/
// phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName, Drupal.Commenting.VariableComment.Missing
public $current_page = NULL;
/**
* The total number of lines.
*/
// phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName, Drupal.Commenting.VariableComment.Missing
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 | 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 | 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 | Overrides ViewsPluginInterface::buildOptionsForm | 16 | |
PluginBase::calculateDependencies | public | function | Overrides DependentPluginInterface::calculateDependencies | 14 | |
PluginBase::create | public static | function | Overrides ContainerFactoryPluginInterface::create | 61 | |
PluginBase::defineOptions | protected | function | Information about options for all kinds of purposes will be held here. | 18 | |
PluginBase::destroy | public | function | 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 | Overrides ViewsPluginInterface::filterByDefinedOptions | ||
PluginBase::getAvailableGlobalTokens | public | function | Overrides ViewsPluginInterface::getAvailableGlobalTokens | ||
PluginBase::getProvider | public | function | Overrides ViewsPluginInterface::getProvider | ||
PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | |
PluginBase::globalTokenForm | public | function | Overrides ViewsPluginInterface::globalTokenForm | ||
PluginBase::globalTokenReplace | public | function | 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 | Overrides ViewsPluginInterface::init | 6 | |
PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | ||
PluginBase::pluginTitle | public | function | Overrides ViewsPluginInterface::pluginTitle | ||
PluginBase::preRenderAddFieldsetMarkup | public static | function | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | ||
PluginBase::preRenderFlattenData | public static | function | 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 | Overrides ViewsPluginInterface::themeFunctions | 1 | |
PluginBase::trustedCallbacks | public static | function | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | |
PluginBase::unpackOptions | public | function | Overrides ViewsPluginInterface::unpackOptions | ||
PluginBase::usesOptions | public | function | Overrides ViewsPluginInterface::usesOptions | 8 | |
PluginBase::validate | public | function | 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. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.