function path_field_widget_single_element_form_alter

Same name and namespace in other branches
  1. 9 core/modules/path/path.module \path_field_widget_single_element_form_alter()
  2. 10 core/modules/path/path.module \path_field_widget_single_element_form_alter()

Implements hook_field_widget_single_element_form_alter().

File

core/modules/path/path.module, line 133

Code

function path_field_widget_single_element_form_alter(&$element, FormStateInterface $form_state, $context) {
    $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'] = 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'] = t('- Not specified -');
        }
        if ($field_name === 'path') {
            $element['value']['#description'] = 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'] = 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.