View source
<?php
namespace Drupal\bootstrap_styles\StylesGroup;
use Drupal\Component\Plugin\PluginBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\bootstrap_styles\HelperTrait;
abstract class StylesGroupPluginBase extends PluginBase implements StylesGroupPluginInterface, ContainerFactoryPluginInterface {
use StringTranslationTrait, HelperTrait;
const CONFIG = 'bootstrap_styles.settings';
protected $configFactory;
public function __construct(array $configuration, $plugin_id, $plugin_definition, ConfigFactoryInterface $config_factory) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->configFactory = $config_factory;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('config.factory'));
}
public function getTitle() {
return $this->pluginDefinition['title'];
}
public function getIconPath() {
$icon_path = drupal_get_path('module', 'bootstrap_styles') . 'images/plugin-group-default-icon.svg';
if (isset($this->pluginDefinition['icon'])) {
$icon = $this->pluginDefinition['icon'];
$path_array = explode('/', $icon);
if (isset($path_array[0])) {
$module_name = $path_array[0];
$icon_path = drupal_get_path('module', $module_name) . str_replace($module_name, '', $icon);
}
}
return $icon_path;
}
public function getTitleWithIcon() {
return [
'#markup' => $this
->getSvgIconMarkup($this
->getIconPath()),
'#prefix' => '<span class="bs-group-title">',
'#suffix' => $this
->getTitle() . '</span>',
];
}
public function config() {
return $this->configFactory
->getEditable(static::CONFIG);
}
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
return $form;
}
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
}
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
}
public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {
return [];
}
public function submitStyleFormElements(array $group_elements) {
return [];
}
public function build(array $build, array $storage, $theme_wrapper = NULL) {
return $build;
}
}