public function ShowMore::buildOptionsForm in Views Show More 8
Options form overwrite.
Overrides SqlBase::buildOptionsForm
File
- src/
Plugin/ views/ pager/ ShowMore.php, line 79
Class
- ShowMore
- The plugin to handle show more pager.
Namespace
Drupal\views_show_more\Plugin\views\pagerCode
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
parent::buildOptionsForm($form, $form_state);
$exclude = [
'total_pages',
'expose',
'tags',
];
foreach ($exclude as $ex) {
unset($form[$ex]['#title']);
unset($form[$ex]['#description']);
$form[$ex]['#attributes'] = [
'class' => [
'visually-hidden',
],
];
}
// Result display method.
$form['result_display_method'] = [
'#type' => 'select',
'#title' => $this
->t('Result display method'),
'#description' => $this
->t('<strong>Append</strong> result display method append the new content after the existing content on the page in ajax mode and in no-ajax mode replace the content by page refresh. <strong>Replace</strong> result display method replace the content with new content both in ajax and no-ajax mode. In no-ajax mode it refresh the page.'),
'#options' => [
'append' => $this
->t('Append'),
'html' => $this
->t('Replace'),
],
'#default_value' => $this->options['result_display_method'] ? $this->options['result_display_method'] : 'append',
'#weight' => 0,
];
// Option for users to specify the text used on the 'show more' button.
$form['show_more_text'] = [
'#type' => 'textfield',
'#title' => $this
->t('Show more pager link text'),
'#description' => $this
->t('Text for the button which used to load more items. Like "Show More".'),
'#default_value' => $this->options['show_more_text'] ? $this->options['show_more_text'] : $this
->t('Show more'),
'#required' => TRUE,
'#weight' => 1,
];
// Option for users to specify the text used on the 'show more' button
// when no mor result is found.
$form['show_more_empty_text'] = [
'#type' => 'textfield',
'#title' => $this
->t('Show more pager link text when empty'),
'#description' => $this
->t('Empty text when no more items exist to load. Like "No more results".'),
'#default_value' => $this->options['show_more_empty_text'] ? $this->options['show_more_empty_text'] : '',
'#weight' => 2,
];
// Initial items count.
$form['initial'] = [
'#type' => 'number',
'#title' => $this
->t('Initial items'),
'#description' => $this
->t('The number of items to display initially. Enter 0 for use same as items per page (show more click).'),
'#default_value' => $this->options['initial'] ? $this->options['initial'] : 0,
'#weight' => 3,
'#min' => 0,
];
// Twick item per page description and weight.
$form['items_per_page']['#description'] = $this
->t('The number of items to display per show more click.');
$form['items_per_page']['#weight'] = 4;
// Twick offset weight.
$form['offset']['#weight'] = 5;
// Twick pager id weight.
$form['id']['#weight'] = 5;
// Effects for loading adds new rows.
$form['effects'] = [
'#type' => 'details',
'#open' => FALSE,
'#tree' => TRUE,
'#title' => $this
->t('Animation'),
'#input' => TRUE,
'#weight' => 7,
];
$form['effects']['type'] = [
'#type' => 'select',
'#options' => [
'none' => $this
->t('None'),
'fade' => $this
->t('FadeIn'),
'scroll' => $this
->t('Scroll to New Content'),
'scroll_fade' => $this
->t('Scroll to New Content & FadeIn'),
],
'#default_vaue' => 'none',
'#title' => $this
->t('Animation Type'),
'#default_value' => $this->options['effects']['type'],
];
$form['effects']['speed_type'] = [
'#type' => 'select',
'#options' => [
'slow' => $this
->t('Slow'),
'fast' => $this
->t('Fast'),
'custom' => $this
->t('Custom'),
],
'#states' => [
'invisible' => [
':input[name="pager_options[effects][type]"]' => [
[
'value' => 'none',
],
],
],
],
'#title' => $this
->t('Animation Speed'),
'#default_value' => $this->options['effects']['speed_type'],
];
$form['effects']['speed_value'] = [
'#type' => 'number',
'#title' => $this
->t('Animation speed in ms'),
'#states' => [
'visible' => [
':input[name="pager_options[effects][speed_type]"]' => [
'value' => 'custom',
],
],
],
'#min' => 0,
'#default_value' => $this->options['effects']['speed_value'],
];
$form['effects']['scroll_offset'] = [
'#type' => 'number',
'#title' => t('Scroll Offset'),
'#states' => [
'visible' => [
':input[name="pager_options[effects][type]"]' => [
[
'value' => 'scroll',
],
[
'value' => 'scroll_fade',
],
],
],
],
'#min' => 0,
'#default_value' => $this->options['effects']['scroll_offset'],
];
// Advanced options, override default selectors.
$form['advance'] = [
'#type' => 'details',
'#open' => FALSE,
'#tree' => TRUE,
'#title' => $this
->t('Advanced Options'),
'#input' => TRUE,
'#weight' => 9,
];
// Option to specify the content_selector, which is the wrapping div for
// views rows. This allows the JS to both find new rows on next pages and
// know where to put them in the page.
$form['advance']['content_selector'] = [
'#type' => 'textfield',
'#title' => $this
->t('Content jquery selector'),
'#description' => $this
->t('jQuery selector for the rows wrapper, relative to the view container. Use when you override the views markup. Views Show More pager requires a wrapping element for the rows. Default is <strong><code>".view-content"</code></strong>.'),
'#default_value' => $this->options['advance']['content_selector'],
];
// Option to specify the pager_selector, which is the pager relative to the
// view container.
$form['advance']['pager_selector'] = [
'#type' => 'textfield',
'#title' => $this
->t('Pager jquery selector'),
'#description' => $this
->t('jQuery selector for the pager, relative to the view container. Use when you override the pager markup. Default is <strong><code>".pager-show-more"</code></strong>.'),
'#default_value' => $this->options['advance']['pager_selector'],
];
}