You are here

function taxonomy_machine_name_form_taxonomy_term_form_alter in Taxonomy Machine Name 8

Implements hook_form_FORM_ID_alter().

File

./taxonomy_machine_name.module, line 77
This is the Taxonomy Machine Name module.

Code

function taxonomy_machine_name_form_taxonomy_term_form_alter(&$form, FormStateInterface $form_state, $form_id) {

  // Only if 'name' field is enable in the current 'form display'.
  if (isset($form['name'])) {
    $default_value = '';

    /** @var \Drupal\taxonomy\Entity\Term $term */
    $term = $form_state
      ->getFormObject()
      ->getEntity();
    if ($term
      ->hasField('machine_name')) {
      if (!empty($term_machine_name = $term
        ->get('machine_name')
        ->first())) {
        $default_value = $term_machine_name
          ->getValue()['value'];
      }
      elseif (!empty($term_machine_name_value = $term
        ->get('name')
        ->first()
        ->getValue())) {
        $name = $term_machine_name_value['value'];
        $default_value = taxonomy_machine_name_clean_name($name);
      }
    }
    $form['machine_name'] = [
      '#type' => 'machine_name',
      '#default_value' => $default_value,
      '#maxlength' => 255,
      '#machine_name' => [
        'exists' => 'taxonomy_term_machine_name_load',
        'source' => [
          'name',
          'widget',
          0,
          'value',
        ],
      ],
      '#weight' => $form['name']['#weight'] + 0.01,
    ];
    $form['#validate'][] = 'taxonomy_machine_name_form_validate';
  }
}