You are here

public function ConfigurationTrait::buildConfigurationForm in Synonyms 2.0.x

File

src/ProviderInterface/ConfigurationTrait.php, line 43

Class

ConfigurationTrait
Provider configuration trait.

Namespace

Drupal\synonyms\ProviderInterface

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state, array $configuration, SynonymInterface $synonym_config) {
  $replacements = [
    '#theme' => 'item_list',
    '#list_type' => 'ul',
    '#items' => [],
  ];
  foreach ($synonym_config
    ->getProviderPluginInstance()
    ->formatWordingAvailableTokens() as $token => $token_info) {
    $replacements['#items'][] = Html::escape($token) . ': ' . $token_info;
  }
  $replacements = \Drupal::service('renderer')
    ->renderRoot($replacements);
  $wording = isset($configuration['wording']) ? $configuration['wording'] : '';
  $form['wording'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Wording for this provider'),
    '#default_value' => $wording,
    '#description' => $this
      ->t('Specify the wording with which this entry should be presented. Available replacement tokens are: @replacements Note: To avoid unnecessary complexity there is no per-widget wording configuration here at provider level. So, this wording will be used by all installed synonyms-friendly widgets.', [
      '@replacements' => $replacements,
    ]),
  ];
  return $form;
}