function TermDevelGenerate::settingsForm

Same name in other branches
  1. 4.x devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::settingsForm()

Overrides DevelGenerateBase::settingsForm

File

devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php, line 92

Class

TermDevelGenerate
Provides a TermDevelGenerate plugin.

Namespace

Drupal\devel_generate\Plugin\DevelGenerate

Code

public function settingsForm(array $form, FormStateInterface $form_state) : array {
    $options = [];
    foreach ($this->vocabularyStorage
        ->loadMultiple() as $vocabulary) {
        $options[$vocabulary->id()] = $vocabulary->label();
    }
    // Sort by vocabulary label.
    asort($options);
    // Set default to 'tags' only if it exists as a vocabulary.
    $default_vids = array_key_exists('tags', $options) ? 'tags' : '';
    $form['vids'] = [
        '#type' => 'select',
        '#multiple' => TRUE,
        '#title' => $this->t('Vocabularies'),
        '#required' => TRUE,
        '#default_value' => $default_vids,
        '#options' => $options,
        '#description' => $this->t('Restrict terms to these vocabularies.'),
    ];
    $form['num'] = [
        '#type' => 'number',
        '#title' => $this->t('Number of terms'),
        '#default_value' => $this->getSetting('num'),
        '#required' => TRUE,
        '#min' => 0,
    ];
    $form['title_length'] = [
        '#type' => 'number',
        '#title' => $this->t('Maximum number of characters in term names'),
        '#default_value' => $this->getSetting('title_length'),
        '#required' => TRUE,
        '#min' => 2,
        '#max' => 255,
    ];
    $form['minimum_depth'] = [
        '#type' => 'number',
        '#title' => $this->t('Minimum depth for new terms in the vocabulary hierarchy'),
        '#description' => $this->t('Enter a value from 1 to 20.'),
        '#default_value' => $this->getSetting('minimum_depth'),
        '#min' => 1,
        '#max' => 20,
    ];
    $form['maximum_depth'] = [
        '#type' => 'number',
        '#title' => $this->t('Maximum depth for new terms in the vocabulary hierarchy'),
        '#description' => $this->t('Enter a value from 1 to 20.'),
        '#default_value' => $this->getSetting('maximum_depth'),
        '#min' => 1,
        '#max' => 20,
    ];
    $form['kill'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Delete existing terms in specified vocabularies before generating new terms.'),
        '#default_value' => $this->getSetting('kill'),
    ];
    // Add the language and translation options.
    $form += $this->getLanguageForm('terms');
    return $form;
}