visualn-8.x-1.x-dev/src/Core/DrawerSkinBase.php
src/Core/DrawerSkinBase.php
<?php
namespace Drupal\visualn\Core;
use Drupal\visualn\Core\VisualNPluginBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\visualn\WindowParametersTrait;
/**
* Base class for VisualN Drawer Skin plugins.
*
* @see \Drupal\visualn\Core\DrawerSkinInterface
*
* @ingroup drawer_skin_plugins
*/
abstract class DrawerSkinBase extends VisualNPluginBase implements DrawerSkinInterface {
use WindowParametersTrait;
protected $suid;
/**
* {@inheritdoc}
*/
public function setWindowParameters(array $window_parameters) {
$this->window_parameters = $window_parameters;
$this->cleanWindowParameters();
return $this;
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
// Clean submitted values
$drawer_config = $this->extractFormValues($form, $form_state);
$form_state->setValues($drawer_config);
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
//The skin_config from form_state should not change the plugin configuration,
//it is only used to build the form according to that config.
$skin_config = $this->extractFormValues($form, $form_state);
$form['markup'] = [
'#markup' => '<div>' . t('No configuration provided for this skin') . '</div>',
];
return $form;
}
/**
* @inheritdoc
*/
public function extractFormValues($form, FormStateInterface $form_state) {
// Since it is supposed to be subform_state, get all the values without limiting the scope.
return $form_state->getValues();
}
/**
* @inheritdoc
*/
public function getSkinUid() {
if (empty($this->suid)) {
// generate suid for the drawer skin
$this->suid = substr(\Drupal::service('uuid')->generate(), 0, 8);
}
return $this->suid;
}
/**
* @inheritdoc
*/
public function setSkinUid($suid) {
$this->suid = $suid;
return $this;
}
}
