Skip to main content
Drupal code

Main navigation

  • Home
  • Snippets
User account menu
  • Log in

Breadcrumb

  1. Home

Get count new comments for ANY user

By admin , 12 February, 2025

Tags

  • comment
  /**
  * Gets unread comments count for a specific user.
  *
  * @param \Drupal\Core\Entity\EntityInterface $entity
  *   The entity to check comments for.
  * @param int $uid
  *   The user ID to check.
  * @param string|null $field_name
  *   Optional field name to filter comments.
  *
  * @return int
  *   Number of unread comments.
  */
 public function getUnreadCommentsCount(EntityInterface $entity, int $uid, ?string $field_name = NULL): int {
   $last_read = $this->database->select('history', 'h')
     ->fields('h', ['timestamp'])
     ->condition('h.uid', $uid)
     ->condition('h.nid', $entity->id())
     ->execute()
     ->fetchField();
   if (!$last_read) {
     $last_read = COMMENT_NEW_LIMIT;
   }
   $query = $this->database->select('comment_field_data', 'c')
     ->condition('c.entity_type', $entity->getEntityTypeId())
     ->condition('c.entity_id', $entity->id())
     ->condition('c.created', $last_read, '>')
     ->condition('c.status', CommentInterface::PUBLISHED);
   if ($field_name) {
     $query->condition('c.field_name', $field_name);
   }
   return (int) $query->countQuery()->execute()->fetchField();
 }

Tags Cloud

dependency injection(21) form(18) drush(14) views(11) twig(11) preprocess(9) field(8) node(7) translate(7) render(6) tabs(6) controller(5) config(5) phpstorm(5) file(5) entityTypeManager(5) routes(5) comment(4) database(4) jquery(4) service(4) roles(4) phpunit(3) php(3) cache(3) entity(3) slick(3) block(3) custom entity(3) javascript(3) user(3) taxonomy(3) guzzle(3) url(3) phpstan(2) event(2) commerce(2) template(2) schema(2) migration(2) libraries(2) date(2) access(2) ajax(2) photoswipe(2) permissions(2) logger(2) vscode(2) suggestions(2) states(2) title(2) fieldset(2) redirect(2) mysql(2) git(1) request(1) attribute(1) service provider(1) csv(1) PHPDoc(1) table(1) eslint(1) deprecation(1) theme(1) errors(1) wsod(1) settings.php(1) watchdog(1) pager(1) widget(1) module(1) file.usage(1) queue(1) exif(1) imagemagick(1) image(1) media(1) uuid(1) drupal.org(1) tests(1) renderer(1) array(1) exposed form(1) page manager(1) transliteration(1) random(1) entityQuery(1) development(1) mail(1) webform(1) register(1) textarea(1) label(1) input(1) batch(1) import(1) messenger(1)
RSS feed
Powered by Drupal