class EntityBrowserPagerElement in Entity Browser 8
Same name and namespace in other branches
- 8.2 src/Element/EntityBrowserPagerElement.php \Drupal\entity_browser\Element\EntityBrowserPagerElement
Provides an Entity Browser pager form element.
Properties:
- #total_pages: Total number of pages. This is optional with default value set on NULL. With default value pager can't calculate last page correctly and "next" will be available even on last page. For correct functionality #total_pages must be set up.
Example:
$form['pager'] = [
'#type' => 'entity_browser_pager',
'#total_pages' => 12,
];
Number of the current page is stored in the form state. In order to get it the provided helper function needs to be utilized:
$page = EntityBrowserPagerElement::getCurrentPage($form_state);
Plugin annotation
@FormElement("entity_browser_pager");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\entity_browser\Element\EntityBrowserPagerElement
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of EntityBrowserPagerElement
See also
::getCurrentPage($form_state).
1 file declares its use of EntityBrowserPagerElement
- PagerTestWidget.php in tests/
modules/ entity_browser_test/ src/ Plugin/ EntityBrowser/ Widget/ PagerTestWidget.php
1 #type use of EntityBrowserPagerElement
- PagerTestWidget::getForm in tests/
modules/ entity_browser_test/ src/ Plugin/ EntityBrowser/ Widget/ PagerTestWidget.php - Returns widget form.
File
- src/
Element/ EntityBrowserPagerElement.php, line 36
Namespace
Drupal\entity_browser\ElementView source
class EntityBrowserPagerElement extends FormElement {
/**
* {@inheritdoc}
*/
public function getInfo() {
$class = get_class($this);
return [
'#process' => [
[
$class,
'processEntityBrowserPager',
],
],
'#theme_wrappers' => [
'form_element',
],
'#total_pages' => NULL,
'#attached' => [
'library' => [
'entity_browser/pager',
],
],
];
}
/**
* Process Entity browser pager element.
*/
public static function processEntityBrowserPager(&$element, FormStateInterface $form_state, &$complete_form) {
$page = static::getCurrentPage($form_state);
$element['previous'] = [
'#type' => 'submit',
'#submit' => [
[
static::class,
'submitPager',
],
],
'#value' => t('‹ Previous'),
'#name' => 'prev_page',
'#disabled' => $page === 1,
'#attributes' => [
'class' => [
'prev',
],
],
'#limit_validation_errors' => [
array_merge($element['#parents'], [
'previous',
]),
],
];
$element['current'] = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Page @page', [
'@page' => $page,
]),
'#attributes' => [
'class' => [
'current',
],
],
];
$element['next'] = [
'#type' => 'submit',
'#submit' => [
[
static::class,
'submitPager',
],
],
'#value' => t('Next ›'),
'#name' => 'next_page',
'#disabled' => $element['#total_pages'] == $page,
'#attributes' => [
'class' => [
'next',
],
],
'#limit_validation_errors' => [
array_merge($element['#parents'], [
'next',
]),
],
];
return $element;
}
/**
* Submit handler for next and previous buttons.
*
* @param array $form
* The form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* Form state.
*/
public static function submitPager(array $form, FormStateInterface $form_state) {
$page = static::getCurrentPage($form_state);
$triggering_element = $form_state
->getTriggeringElement();
if ($triggering_element['#name'] == 'prev_page') {
$page--;
}
elseif ($triggering_element['#name'] == 'next_page') {
$page++;
}
$form_state
->set('page', $page);
$form_state
->setRebuild();
}
/**
* Gets current page from the form state.
*
* @param \Drupal\Core\Form\FormStateInterface $form_state
* Form state.
*
* @return int
* Current page.
*/
public static function getCurrentPage(FormStateInterface $form_state) {
return !empty($form_state
->get('page')) ? $form_state
->get('page') : 1;
}
/**
* Sets current page.
*
* @param \Drupal\Core\Form\FormStateInterface $form_state
* Form state.
* @param int $page
* (Optional) Page to set as current. Pager will be reset to the first page
* if omitted.
*/
public static function setCurrentPage(FormStateInterface $form_state, $page = 1) {
$form_state
->set('page', $page);
}
}
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 | |
EntityBrowserPagerElement:: |
public static | function | Gets current page from the form state. | |
EntityBrowserPagerElement:: |
public | function |
Returns the element properties for this element. Overrides ElementInterface:: |
|
EntityBrowserPagerElement:: |
public static | function | Process Entity browser pager element. | |
EntityBrowserPagerElement:: |
public static | function | Sets current page. | |
EntityBrowserPagerElement:: |
public static | function | Submit handler for next and previous buttons. | |
FormElement:: |
public static | function | Adds autocomplete functionality to elements. | |
FormElement:: |
public static | function | #process callback for #pattern form element property. | |
FormElement:: |
public static | function | #element_validate callback for #pattern form element property. | |
FormElement:: |
public static | function |
Determines how user input is mapped to an element's #value property. Overrides FormElementInterface:: |
15 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
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 |
RenderElement:: |
public static | function | Adds Ajax information about an element to communicate with JavaScript. | |
RenderElement:: |
public static | function | Adds members of this group as actual elements for rendering. | |
RenderElement:: |
public static | function | Form element processing handler for the #ajax form property. | 1 |
RenderElement:: |
public static | function | Arranges elements into groups. | |
RenderElement:: |
public static | function |
Sets a form element's class attribute. Overrides ElementInterface:: |
|
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. |