You are here

public function PatternSettingTypeBase::buildConfigurationForm in UI Patterns Settings 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/PatternSettingTypeBase.php \Drupal\ui_patterns_settings\Plugin\PatternSettingTypeBase::buildConfigurationForm()

Creates a generic configuration form for all settings types. Individual settings plugins can add elements to this form by overriding PatternSettingTypeBaseInterface::settingsForm(). Most plugins should not override this method unless they need to alter the generic form elements.

Overrides PatternSettingTypeInterface::buildConfigurationForm

See also

\Drupal\Core\Block\BlockBase::blockForm()

File

src/Plugin/PatternSettingTypeBase.php, line 326

Class

PatternSettingTypeBase
Base class for UI Patterns Setting plugins.

Namespace

Drupal\ui_patterns_settings\Plugin

Code

public function buildConfigurationForm(array $form, $value, $token_value, $form_type) {
  $dependencies = $this
    ->getSettingTypeDependencies();
  $def = $this
    ->getPatternSettingDefinition();
  foreach ($dependencies as $dependency) {
    if (!$this->moduleHandler
      ->moduleExists($dependency)) {
      $form[$def
        ->getName()] = [
        '#markup' => "Missing SettingType {$def->getName()} dependency {$dependency}.",
      ];
      return $form;
    }
  }
  $form = $this
    ->settingsForm($form, $value, $def, $form_type);
  $form[$def
    ->getName()]['#pattern_setting_definition'] = $def;
  $form[$def
    ->getName()]['#pattern_definition'] = $this->patternDefinition;
  if (!empty($def
    ->getWeight())) {
    $form[$def
      ->getName()]['#weight'] = $def
      ->getWeight();
  }
  if ($def
    ->getAllowToken()) {
    $form = $this
      ->tokenForm($form, $token_value, $def);
    if (isset($form[$def
      ->getName() . '_token'])) {
      $classes = 'js-ui-patterns-settings__wrapper';
      if (!empty($token_value)) {
        $classes .= ' js-ui-patterns-settings--token-has-value';
      }
      $form[$def
        ->getName()]['#prefix'] = '<div class="' . $classes . '">';
      $form[$def
        ->getName() . '_token']['#suffix'] = '</div>';
      $form[$def
        ->getName() . '_token']['#pattern_setting_definition'] = $def;
      $form[$def
        ->getName() . '_token']['#pattern_definition'] = $this->patternDefinition;
    }
  }
  return $form;
}