You are here

protected function BootstrapModal::preprocessVariables in Express 8

Preprocess the variables array.

Parameters

\Drupal\bootstrap\Utility\Variables $variables: The Variables object.

Overrides PreprocessBase::preprocessVariables

File

themes/contrib/bootstrap/src/Plugin/Preprocess/BootstrapModal.php, line 25
Contains \Drupal\bootstrap\Plugin\Preprocess\BootstrapModal.

Class

BootstrapModal
Pre-processes variables for the "bootstrap_modal" theme hook.

Namespace

Drupal\bootstrap\Plugin\Preprocess

Code

protected function preprocessVariables(Variables $variables) {

  // Immediately log an error and return if Bootstrap modals are not enabled.
  if (!$this->theme
    ->getSetting('modal_enabled')) {
    \Drupal::logger('bootstrap')
      ->error(t('Bootstrap modals are not enabled.'));
    return;
  }

  // Retrieve the ID, generating one if needed.
  $id = $variables
    ->getAttribute('id', Html::getUniqueId($variables
    ->offsetGet('id', 'bootstrap-modal')));
  $variables
    ->setAttribute('id', $id);
  unset($variables['id']);
  if ($variables->title) {
    $title_id = $variables
      ->getAttribute('id', "{$id}--title", $variables::TITLE);
    $variables
      ->setAttribute('id', $title_id, $variables::TITLE);
    $variables
      ->setAttribute('aria-labelledby', $title_id);
  }

  // Use a provided modal size or retrieve the default theme setting.
  $variables->size = $variables->size ?: $this->theme
    ->getSetting('modal_size');

  // Convert the description variable.
  $this
    ->preprocessDescription();

  // Ensure all attributes are proper objects.
  $this
    ->preprocessAttributes();
}