| 1 comment.module | comment_query_node_access_alter(QueryAlterableInterface $query) |
Implements hook_query_TAG_alter().
Lists of comments (such as at admin/content/comment) are always tied to queries that use the "node_access" tag, since the comments are shown on node paths. Alter node access queries to hide comments when they are disabled at the node type level.
File
- core/
modules/ comment/ comment.module, line 1507 - Enables users to comment on published content.
Code
function comment_query_node_access_alter(QueryAlterableInterface $query) {
$comment_alias = FALSE;
$node_alias = FALSE;
foreach ($query->getTables() as $alias => $table) {
if ($table['table'] == 'comment') {
$comment_alias = $alias;
}
elseif ($table['table'] == 'node') {
$node_alias = $alias;
}
}
if ($comment_alias && $node_alias) {
$node_types = node_type_get_types();
$excluded_content_types = array();
foreach ($node_types as $type_name => $node_type) {
if (empty($node_type->settings['comment_enabled'])) {
$excluded_content_types[] = $type_name;
}
}
if ($excluded_content_types) {
$query->condition($node_alias . '.type', array($excluded_content_types), 'NOT IN');
}
}
}