function PathHooks::fieldWidgetSingleElementFormAlter

Implements hook_field_widget_single_element_form_alter().

Attributes

#[Hook('field_widget_single_element_form_alter')]

File

core/modules/path/src/Hook/PathHooks.php, line 133

Class

PathHooks
Hook implementations for path.

Namespace

Drupal\path\Hook

Code

public function fieldWidgetSingleElementFormAlter(&$element, FormStateInterface $form_state, $context) : void {
  $field_definition = $context['items']->getFieldDefinition();
  $field_name = $field_definition->getName();
  $entity_type = $field_definition->getTargetEntityTypeId();
  $widget_name = $context['widget']->getPluginId();
  if ($entity_type === 'path_alias') {
    if (($field_name === 'path' || $field_name === 'alias') && $widget_name === 'string_textfield') {
      $element['value']['#field_prefix'] = \Drupal::service('router.request_context')->getCompleteBaseUrl();
    }
    if ($field_name === 'langcode') {
      $element['value']['#description'] = $this->t('A path alias set for a specific language will always be used when displaying this page in that language, and takes precedence over path aliases set as <em>- Not specified -</em>.');
      $element['value']['#empty_value'] = LanguageInterface::LANGCODE_NOT_SPECIFIED;
      $element['value']['#empty_option'] = $this->t('- Not specified -');
    }
    if ($field_name === 'path') {
      $element['value']['#description'] = $this->t('Specify the existing path you wish to alias. For example: /node/28, /media/1, /taxonomy/term/1.');
    }
    if ($field_name === 'alias') {
      $element['value']['#description'] = $this->t('Specify an alternative path by which this data can be accessed. For example, type "/about" when writing an about page.');
    }
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.