Same name and namespace in other branches
  1. 8.x-3.x src/Plugin/TabType/QtabsContent.php \Drupal\quicktabs\Plugin\TabType\QtabsContent 1 comment

Provides a 'qtabs content' tab type.

Plugin annotation


@TabType(
  id = "qtabs_content",
  name = @Translation("qtabs"),
)

Hierarchy

  • class \Drupal\quicktabs\TabTypeBase extends \Drupal\Component\Plugin\PluginBase implements \Drupal\quicktabs\TabTypeInterface uses \Drupal\Core\DependencyInjection\DependencySerializationTrait
    • class \Drupal\quicktabs\Plugin\TabType\QtabsContent extends \Drupal\quicktabs\TabTypeBase uses \Drupal\Core\StringTranslation\StringTranslationTrait

Expanded class hierarchy of QtabsContent

File

src/Plugin/TabType/QtabsContent.php, line 16

Namespace

Drupal\quicktabs\Plugin\TabType
View source
class QtabsContent extends TabTypeBase {
    use StringTranslationTrait;
    
    /**
     * {@inheritdoc}
     */
    public function optionsForm(array $tab) {
        $plugin_id = $this->getPluginDefinition()['id'];
        $form = [];
        $tab_options = [];
        foreach (\Drupal::entityTypeManager()->getStorage('quicktabs_instance')
            ->loadMultiple() as $machine_name => $entity) {
            // Do not offer the option to put a tab inside itself.
            if (!isset($tab['entity_id']) || $machine_name != $tab['entity_id']) {
                $tab_options[$machine_name] = $entity->label();
            }
        }
        $form['machine_name'] = [
            '#type' => 'select',
            '#title' => $this->t('QuickTabs instance'),
            '#description' => $this->t('The QuickTabs instance to put inside this tab.'),
            '#options' => $tab_options,
            '#default_value' => isset($tab['content'][$plugin_id]['options']['machine_name']) ? $tab['content'][$plugin_id]['options']['machine_name'] : '',
        ];
        return $form;
    }
    
    /**
     * {@inheritdoc}
     */
    public function render(array $tab) {
        $options = $tab['content'][$tab['type']]['options'];
        $qt = \Drupal::service('entity_type.manager')->getStorage('quicktabs_instance')
            ->load($options['machine_name']);
        return $qt->getRenderArray();
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
QtabsContent::optionsForm public function Return form elements used on the edit/add from. Overrides TabTypeBase::optionsForm
QtabsContent::render public function Return a render array for an individual tab tat the theme layer to process. Overrides TabTypeBase::render
TabTypeBase::getName protected function Gets the name of the plugin.