bootstrap_italia-8.x-0.x-dev/modules/bootstrap_italia_views_list/src/Plugin/views/style/ListStyle.php
modules/bootstrap_italia_views_list/src/Plugin/views/style/ListStyle.php
<?php namespace Drupal\bootstrap_italia_views_list\Plugin\views\style; use Drupal\Core\Form\FormStateInterface; use Drupal\views\Plugin\views\style\StylePluginBase; /** * Style plugin to render list component. * * @ingroup views_style_plugins * * @ViewsStyle( * id = "bootstrap_italia_views_list_style", * title = @Translation("Bootstrap Italia List"), * help = @Translation("Render a Bootstrap Italia List."), * theme = "views_bootstrap_italia_views_list", * display_types = { "normal" } * ) */ class ListStyle extends StylePluginBase { /** * Does this Style plugin allow Row plugins? * * @var bool */ protected $usesRowPlugin = TRUE; /** * {@inheritdoc} * * @return array<string, mixed> * Options array. */ protected function defineOptions(): array { $options = parent::defineOptions(); $options['list_settings'] = ['default' => []]; return $options; } /** * {@inheritdoc} * * @param array<string, mixed> $form * Nested array of form elements that comprise the form. * @param \Drupal\Core\Form\FormStateInterface $form_state * The current state of the form. */ public function buildOptionsForm(&$form, FormStateInterface $form_state): void { parent::buildOptionsForm($form, $form_state); // Manage title. $form['bi_list_settings']['list_title_show'] = [ '#type' => 'checkbox', '#title' => $this->t('Show title'), '#description' => $this->t('If checked shows title.'), '#default_value' => $this->options['bi_list_settings']['list_title_show'] ?? TRUE, ]; // Title tag. $form['bi_list_settings']['list_title_tag'] = [ '#type' => 'select', '#title' => $this->t('Title tag'), '#description' => $this->t('Select title tag. Default: "Heading 2"'), '#options' => [ 'h1' => $this->t('Heading 1'), 'h2' => $this->t('Heading 2'), 'h3' => $this->t('Heading 3'), 'h4' => $this->t('Heading 4'), 'h5' => $this->t('Heading 5'), 'h6' => $this->t('Heading 6'), 'p' => $this->t('Paragraph'), 'div' => $this->t('Generic container'), ], '#default_value' => $this->options['bi_list_settings']['list_title_tag'] ?? 'h2', ]; // Title class. $form['bi_list_settings']['list_title_classes'] = [ '#type' => 'textfield', '#title' => $this->t('Custom classes'), '#description' => $this->t('Fill with custom class, use space as separator.'), '#default_value' => $this->options['bi_timeline_settings']['list_title_classes'] ?? '', ]; } }