You are here

function social_profile_social_user_account_header_items_alter in Open Social 8.5

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  2. 8.4 modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  3. 8.6 modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  4. 8.7 modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  5. 8.8 modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  6. 10.3.x modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  7. 10.0.x modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  8. 10.1.x modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()
  9. 10.2.x modules/social_features/social_profile/social_profile.module \social_profile_social_user_account_header_items_alter()

Implements hook_social_user_account_header_items_alter().

Replaces the default user icon with the user's profile image if available.

File

modules/social_features/social_profile/social_profile.module, line 689
The Social profile module.

Code

function social_profile_social_user_account_header_items_alter(array &$menu_items, array $context) {

  // If we don't have an account_box there's nothing to do.
  if (empty($menu_items['account_box'])) {
    return;
  }

  // A user is required to find the profile image.
  if (empty($context['user']) || !$context['user'] instanceof AccountInterface) {
    return;
  }
  $storage = \Drupal::entityTypeManager()
    ->getStorage('profile');
  $profile = $storage
    ->loadByUser($context['user'], 'profile');

  // If the user does not have a profile then there's no profile image.
  if (empty($profile)) {
    return;
  }

  // Provide a render array as image which will overrule the user icon.
  $menu_items['account_box']['#image'] = \Drupal::entityTypeManager()
    ->getViewBuilder('profile')
    ->view($profile, 'small');
}