Skip to main content
Drupal code

Main navigation

  • Home
  • Snippets
User account menu
  • Log in

Breadcrumb

  1. Home

Hide comments and threads from specific user

By admin , 26 August, 2025

Tags

  • comment
/**
* Implements hook_preprocess_HOOK().
*/
function blacklist_preprocess_field(&$variables) {
 $field_name = $variables['element']['#field_name'];
 if ($field_name === 'comment_forum') {
   /** @var \Drupal\node\NodeInterface $node */
   $node = $variables['element']['#object'];
   $comment_storage = \Drupal::entityTypeManager()->getStorage('comment');
   // Select comments from blacklisted user.
   $query = $comment_storage->getQuery()
     ->accessCheck()
     ->condition('entity_id', $node->id())
     ->condition('entity_type', 'node')
     ->condition('uid', '963083') // DEBUG!!!!
     ->condition('status', 1)
     ->sort('created', 'DESC');
   $comment_ids = $query->execute();
   $comments = $comment_storage->loadMultiple($comment_ids);
   /** @var \Drupal\comment\CommentInterface $comment */
   foreach ($comments as $comment) {
     // Get all comments from threads from blacklisted user.
     $thread_prefix = explode('.', $comment->getThread())[0];
     $query = \Drupal::entityQuery('comment')
       ->accessCheck()
       ->condition('entity_id', $comment->getCommentedEntityId())
       ->condition('thread', $thread_prefix, 'STARTS_WITH')
       ->sort('thread');
     $cids = $query->execute();
     // Hide comments and threads from blacklisted user.
     foreach ($cids as $cid) {
       unset($variables['comments'][$cid]);
     }
   }
 }
}

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) comment(5) controller(5) config(5) phpstorm(5) file(5) entityTypeManager(5) routes(5) database(4) jquery(4) service(4) roles(4) commerce(3) 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) 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