You are here

class Mini in Pagerer 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/pagerer/Mini.php \Drupal\pagerer\Plugin\pagerer\Mini

Pager style to display current page/item in a direct entry textbox.

Examples:

page 9 out of 955, display 'pages': ----------------------------------------------------------- << < Page 9 of 955 > >> -----------------------------------------------------------

page 9 out of 955, total items = 47731, limit = 50, display = 'items': ----------------------------------------------------------- << < Item 401 of 47731 > >> -----------------------------------------------------------

Plugin annotation


@PagererStyle(
  id = "mini",
  title = @Translation("Display current page/item"),
  short_title = @Translation("Mini"),
  help = @Translation("Pager style to display current page/item in a direct entry textbox."),
  style_type = "base"
)

Hierarchy

Expanded class hierarchy of Mini

File

src/Plugin/pagerer/Mini.php, line 30

Namespace

Drupal\pagerer\Plugin\pagerer
View source
class Mini extends PagererStyleBase {

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $config = parent::buildConfigurationForm($form, $form_state);

    // Reset pager display mode options specifically for mini.
    unset($config['display_container']['display_mode']['#options']['normal']);
    $config['display_container']['display_mode']['#options']['none'] = $this
      ->t('Not displayed.');
    $config['display_container']['display_mode']['#options']['widget'] = $this
      ->t('Input box. Users can enter directly a page/item number to go to.');

    // Remove 'item_ranges' display option.
    unset($config['display']['#options']['item_ranges']);
    $config['display']['#description'] = $this
      ->t("Select whether to display pages or items.");

    // No need for separators in mini.
    unset($config['separators_container']);

    // Add widget resizing option specific for mini.
    $config['plugin'] = [
      '#type' => 'details',
      '#title' => $this
        ->t("Input box"),
      '#description' => $this
        ->t("Input box options."),
    ];
    $config['plugin']['widget_resize'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t("Automatic width adjustment"),
      '#default_value' => $this->configuration['widget_resize'],
      '#description' => $this
        ->t("If set, the input box width will be adjusted dynamically based on the total number of pages/items. When unset, CSS styling will prevail."),
    ];
    $options = [
      'no',
      'yes',
      'auto',
    ];
    $options = array_combine($options, $options);
    $config['plugin']['widget_button'] = [
      '#type' => 'select',
      '#title' => $this
        ->t("Trigger button"),
      '#options' => $options,
      '#default_value' => $this->configuration['widget_button'],
      '#description' => $this
        ->t("Select whether to add a clickable navigation button to the input box. Options are 'no' (page relocation will only occur by pressing the 'return' key on the keyboard), 'yes' (button is shown, and styled via CSS), 'auto' (button height is automatically resized to match the input box height)."),
      '#required' => TRUE,
    ];
    return $config;
  }

  /**
   * Return the pager render array.
   *
   * @return array
   *   render array.
   */
  protected function buildPagerItems() {

    // Return immediately if configuration is not set to display the page
    // widget.
    if ($this
      ->getOption('display_mode') != 'widget') {
      return [];
    }

    // Prepares state.
    $state_settings = [
      'widgetResize' => $this
        ->getOption('widget_resize'),
      'widgetButton' => $this
        ->getOption('widget_button'),
    ];
    $pagerer_widget_id = $this
      ->prepareJsState($state_settings);

    // Entry textbox.
    return [
      [
        'widget' => [
          '#theme' => 'pagerer_mini',
          '#id' => $pagerer_widget_id,
          '#title' => $this
            ->getDisplayTag('widget_title'),
          '#value' => $state_settings['value'],
          '#min' => 1,
          '#max' => $this
            ->getOption('display') == 'pages' ? $state_settings['total'] : $state_settings['totalItems'],
          '#step' => $state_settings['interval'],
          '#button' => $this
            ->getOption('widget_button') === 'no' ? FALSE : TRUE,
          '#attached' => [
            'drupalSettings' => [
              'pagerer' => [
                'state' => [
                  $pagerer_widget_id => $state_settings,
                ],
              ],
            ],
          ],
        ],
      ],
    ];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
Mini::buildConfigurationForm public function Form constructor. Overrides PagererStyleBase::buildConfigurationForm
Mini::buildPagerItems protected function Return the pager render array.
PagererStyleBase::$configFactory protected property The config factory.
PagererStyleBase::$pager protected property The Pagerer pager object.
PagererStyleBase::$pagererPreset protected property The PagererPreset object being configured.
PagererStyleBase::$pagererPresetPane protected property The PagererPreset pane being configured.
PagererStyleBase::$parameters protected property Query parameters as requested by the theme call.
PagererStyleBase::$typedConfigManager protected property The config type plugins manager.
PagererStyleBase::buildEmptyPager protected function Render a 'no pages to display' text. 1
PagererStyleBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
PagererStyleBase::getDisplayTag protected function Returns a translated textual element for pages/items/item ranges.
PagererStyleBase::getNavigationItem protected function Gets a link/button item to first/previous/next/last link.
PagererStyleBase::getOption protected function Returns a configuration element.
PagererStyleBase::getPageItem protected function Gets a 'page' item in the pager.
PagererStyleBase::getTag protected function Returns a translated textual element from the configuration.
PagererStyleBase::prepareJsState protected function Prepares input parameters for a JS enabled pager widget.
PagererStyleBase::preprocess public function Prepares to render the pager. Overrides PagererStyleInterface::preprocess
PagererStyleBase::setConfigurationContext public function Sets the current PagererPreset and pane being configured.
PagererStyleBase::setPager public function Sets the Pagerer pager to be rendered. Overrides PagererStyleInterface::setPager
PagererStyleBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
PagererStyleBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
PagererStyleBase::__construct public function Constructs a \Drupal\pagerer\Plugin\pagerer\PagererStyleBase object. Overrides PluginBase::__construct
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.