You are here

class BootstrapAccordion in Bootstrap Quick Tabs 8

Provides a 'Bootstrap Accordion' tab renderer.

Plugin annotation


@TabRenderer(
  id = "bootstrap_accordion",
  name = @Translation("bootstrap accordion"),
)

Hierarchy

Expanded class hierarchy of BootstrapAccordion

File

src/Plugin/TabRenderer/BootstrapAccordion.php, line 18

Namespace

Drupal\bootstrap_quicktabs\Plugin\TabRenderer
View source
class BootstrapAccordion extends TabRendererBase {
  use StringTranslationTrait;

  /**
   * {@inheritdoc}
   */
  public function render(QuickTabsInstance $instance) {
    $qt_id = $instance
      ->id();
    $type = \Drupal::service('plugin.manager.tab_type');

    // The render array used to build the block.
    $build = [];

    // Add a wrapper.
    $build['#theme_wrappers'] = [
      'container' => [
        '#attributes' => [
          'class' => [
            'panel-group',
          ],
          'id' => 'panel-group-' . $qt_id,
        ],
      ],
    ];
    $panels = [];
    foreach ($instance
      ->getConfigurationData() as $index => $tab) {
      $qsid = 'quickset-' . $qt_id;
      $object = $type
        ->createInstance($tab['type']);
      $render = $object
        ->render($tab);
      $panel_id = $qsid . '-' . $index;

      // If user wants to hide empty tabs and there is no content
      // then skip to next tab.
      if ($instance
        ->getHideEmptyTabs() && empty($render)) {
        continue;
      }
      $active_tab = $instance
        ->getDefaultTab() == 9999 ? 0 : $instance
        ->getDefaultTab();
      $panel_class = '';
      if ($active_tab == $index) {
        $panel_class = 'in';
      }
      if (!empty($tab['content'][$tab['type']]['options']['display_title']) && !empty($tab['content'][$tab['type']]['options']['block_title'])) {
        $build['pages'][$index]['#title'] = $tab['content'][$tab['type']]['options']['block_title'];
      }
      $panel = [
        'id' => $panel_id,
        'classes' => $panel_class,
        'title' => new TranslatableMarkup($tab['title']),
        'content' => render($render),
      ];
      $panels["{$panel_id}"] = $panel;
    }
    $build['#theme'] = 'bootstrap_accordion';
    $build['#panels'] = $panels;
    $build['#id'] = $qt_id;
    return $build;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BootstrapAccordion::render public function Return a render array for the whole Quick Tabs instance. Overrides TabRendererBase::render
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.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
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.
TabRendererBase::getName public function Gets the name of the plugin.
TabRendererBase::optionsForm public function Return form elements used on the edit/add from. Overrides TabRendererInterface::optionsForm 2