You are here

function social_activity_social_user_account_header_account_links in Open Social 8.9

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

Implements hook_social_user_account_header_account_links().

Adds the mobile indicator for activity notifications under the profile icon menu.

File

modules/social_features/social_activity/social_activity.module, line 114
The Social activity module.

Code

function social_activity_social_user_account_header_account_links(array $context) {

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

  // Get the total amount of notifications for the user.
  $num_notifications = social_activity_social_account_notifications_counter($context['user']);

  // Depending on the amount of notifications, set a class for the indicator.
  $label_classes = 'hidden';
  if ($num_notifications > 0) {
    $label_classes = 'badge badge-accent badge--pill';

    // When there are more than 99 notifications, display this and not
    // the exact amount.
    if ($num_notifications > 99) {
      $num_notifications = '99+';
    }
  }
  return [
    'notification_mobile' => [
      '#wrapper_attributes' => [
        'class' => [
          'mobile notification-bell',
        ],
      ],
      '#weight' => 300,
      '#type' => 'link',
      '#attributes' => [
        'title' => new TranslatableMarkup('Notification Centre'),
      ],
      '#title' => [
        '#type' => 'inline_template',
        '#template' => '<span>{% trans %}Notification Centre{% endtrans %}</span><span{{ attributes }}>{{ icon }}</span>',
        '#context' => [
          'attributes' => new Attribute([
            'class' => $label_classes,
          ]),
          'icon' => (string) $num_notifications,
        ],
      ],
    ] + Url::fromRoute('view.activity_stream_notifications.page_1')
      ->toRenderArray(),
  ];
}