You are here

function social_private_message_social_user_account_header_items_alter in Open Social 8.4

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

Implements hook_social_user_account_header_items().

Adds an indicator to the user account menu on mobile.

File

modules/social_features/social_private_message/social_private_message.module, line 558
The Social Privagte Message module.

Code

function social_private_message_social_user_account_header_items_alter(array &$menu_links, array $context) {
  if (\Drupal::config('social_user.navigation.settings')
    ->get('display_social_private_message_icon') !== 1) {
    return;
  }

  // We require a logged in user for this indicator.
  if (empty($context['user']) || !$context['user']
    ->isAuthenticated()) {
    return;
  }

  // If the account_box link was removed we have nothing to do.
  if (!isset($menu_links['account_box'])) {
    return;
  }

  // Fetch the amount of unread items.
  $num_account_messages = \Drupal::service('social_private_message.service')
    ->updateUnreadCount();
  if ($num_account_messages > 0) {
    $menu_links['account_box']['#wrapper_attributes']['class'][] = 'has-alert';
  }
}