function MediaLibraryWidget::getNoMediaTypesAvailableMessage

Same name and namespace in other branches
  1. 9 core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php \Drupal\media_library\Plugin\Field\FieldWidget\MediaLibraryWidget::getNoMediaTypesAvailableMessage()
  2. 8.9.x core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php \Drupal\media_library\Plugin\Field\FieldWidget\MediaLibraryWidget::getNoMediaTypesAvailableMessage()
  3. 10 core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php \Drupal\media_library\Plugin\Field\FieldWidget\MediaLibraryWidget::getNoMediaTypesAvailableMessage()

Gets the message to display when there are no allowed media types.

Return value

\Drupal\Component\Render\MarkupInterface The message to display when there are no allowed media types.

1 call to MediaLibraryWidget::getNoMediaTypesAvailableMessage()
MediaLibraryWidget::formElement in core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php
Returns the form for a single field widget.

File

core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php, line 627

Class

MediaLibraryWidget
Plugin implementation of the 'media_library_widget' widget.

Namespace

Drupal\media_library\Plugin\Field\FieldWidget

Code

protected function getNoMediaTypesAvailableMessage() {
    $entity_type_id = $this->fieldDefinition
        ->getTargetEntityTypeId();
    $default_message = $this->t('There are no allowed media types configured for this field. Contact the site administrator.');
    // Show the default message if the user does not have the permissions to
    // configure the fields for the entity type.
    if (!$this->currentUser
        ->hasPermission("administer {$entity_type_id} fields")) {
        return $default_message;
    }
    // Show a message for privileged users to configure the field if the Field
    // UI module is not enabled.
    if (!$this->moduleHandler
        ->moduleExists('field_ui')) {
        return $this->t('There are no allowed media types configured for this field. Edit the field settings to select the allowed media types.');
    }
    // Add a link to the message to configure the field if the Field UI module
    // is enabled.
    $route_parameters = FieldUI::getRouteBundleParameter($this->entityTypeManager
        ->getDefinition($entity_type_id), $this->fieldDefinition
        ->getTargetBundle());
    $route_parameters['field_config'] = $this->fieldDefinition
        ->id();
    $url = Url::fromRoute('entity.field_config.' . $entity_type_id . '_field_edit_form', $route_parameters);
    if ($url->access($this->currentUser)) {
        return $this->t('There are no allowed media types configured for this field. <a href=":url">Edit the field settings</a> to select the allowed media types.', [
            ':url' => $url->toString(),
        ]);
    }
    // If the user for some reason doesn't have access to the Field UI, fall
    // back to the default message.
    return $default_message;
}

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