You are here

function social_comment_comment_links_alter in Open Social 8.2

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  2. 8 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  3. 8.3 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  4. 8.4 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  5. 8.5 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  6. 8.6 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  7. 8.7 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  8. 8.8 modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  9. 10.3.x modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  10. 10.0.x modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  11. 10.1.x modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()
  12. 10.2.x modules/social_features/social_comment/social_comment.module \social_comment_comment_links_alter()

Implements hook_comment_links_alter().

Alter the links of a comment.

File

modules/social_features/social_comment/social_comment.module, line 96
The Social comment module.

Code

function social_comment_comment_links_alter(array &$links, CommentInterface $entity, array &$context) {
  $bundle = $entity
    ->bundle();
  $commented_entity = $entity
    ->getCommentedEntity();
  $account = \Drupal::currentUser();
  switch ($bundle) {
    default:
      if (!empty($entity
        ->getParentComment()) || \Drupal::routeMatch()
        ->getRouteName() === 'comment.reply') {
        unset($links['comment']['#links']['comment-reply']);
      }
      else {
        $group_contents = GroupContent::loadByEntity($commented_entity);

        // Only react if it is actually posted inside a group.
        if (!empty($group_contents)) {
          foreach ($group_contents as $group_content) {
            $group = $group_content
              ->getGroup();

            // Remove comments from output if user don't have access.
            if (!$group
              ->hasPermission('post comments', $account)) {
              unset($links['comment']['#links']['comment-reply']);
            }
          }
        }
      }
      break;
    case "post_comment":
      unset($links['comment']['#links']['comment-reply']);
      break;
  }
}