You are here

function uma_ImageURL in User Menu Avatar (User Image in Menu) 8.5

Same name and namespace in other branches
  1. 8.4 user_menu_avatar.module \uma_ImageURL()

Set the $imageURL value.

2 calls to uma_ImageURL()
uma_Markup in ./user_menu_avatar.module
Build our new replacement markup.
user_menu_avatar_preprocess_menu in ./user_menu_avatar.module
Implements hook_preprocess_hook().

File

./user_menu_avatar.module, line 140
Display user picture and/or user name in menu.

Code

function uma_ImageURL() {

  // Instantiate $imageURL to empty string.
  $imageURL = NULL;

  // Load image style.
  $imageStyle = \Drupal::entityTypeManager()
    ->getStorage('image_style')
    ->load('thumbnail');

  // Check to show anonymous avatar.
  if (\Drupal::currentUser()
    ->isAnonymous() && uma_CFV()['showAnonymousAvatar'] === 'yes') {
    if (isset(uma_CFV()['anonymousUserAvatar'][0])) {

      // Load anonymous avatar with image style.
      $imageStyleURL = $imageStyle
        ->buildUrl(File::load(uma_CFV()['anonymousUserAvatar'][0])
        ->getFileUri());

      // Set $imageURL as anonymous image field url value.
      $imageURL = file_url_transform_relative($imageStyleURL);
    }
  }

  // Check to show avatar.
  if (!\Drupal::currentUser()
    ->isAnonymous() && uma_CFV()['showAvatar'] === 'yes') {

    // Set the avatar field name.
    $avatarImageField = uma_CFV()['avatarImageField'];

    // Check field has active config.
    if (!empty(FieldConfig::loadByName('user', 'user', $avatarImageField))) {

      // Check that an image exists in the field instance.
      if (uma_getUser()['currentUser']->{$avatarImageField}->entity) {

        // Load image with image style.
        $imageStyleURL = $imageStyle
          ->buildUrl(uma_getUser()['currentUser']->{$avatarImageField}->entity->uri->value);

        // Set $imageURL as image field url value.
        $imageURL = file_url_transform_relative($imageStyleURL);
      }
      elseif (FieldConfig::loadByName('user', 'user', $avatarImageField)
        ->getSetting('default_image')['uuid']) {

        // Load the default image settings.
        $imageGetSettings = FieldConfig::loadByName('user', 'user', $avatarImageField)
          ->getSetting('default_image');

        // Get the default image URI from settings.
        $imageURI = Drupal::service('entity.repository')
          ->loadEntityByUuid('file', $imageGetSettings['uuid'])
          ->getFileUri();

        // Load image with image style.
        $imageStyleURL = $imageStyle
          ->buildUrl($imageURI);

        // Set $imageURL as image field default URI value.
        $imageURL = file_url_transform_relative($imageStyleURL);
      }
    }
  }
  return $imageURL;
}