protected function ActivityFilterPersonalisedHomepage::getAvailableCommentIds in Open Social 10.2.x
Same name and namespace in other branches
- 10.3.x modules/custom/activity_viewer/src/Plugin/views/filter/ActivityFilterPersonalisedHomepage.php \Drupal\activity_viewer\Plugin\views\filter\ActivityFilterPersonalisedHomepage::getAvailableCommentIds()
- 10.1.x modules/custom/activity_viewer/src/Plugin/views/filter/ActivityFilterPersonalisedHomepage.php \Drupal\activity_viewer\Plugin\views\filter\ActivityFilterPersonalisedHomepage::getAvailableCommentIds()
Gets list of comment IDs to which user has access.
Parameters
array $node_ids: List of node IDs.
array $post_ids: List of post IDs.
Return value
array List of comment IDs.
1 call to ActivityFilterPersonalisedHomepage::getAvailableCommentIds()
- ActivityFilterPersonalisedHomepage::query in modules/
custom/ activity_viewer/ src/ Plugin/ views/ filter/ ActivityFilterPersonalisedHomepage.php - Filters out activity items the user is not allowed to see.
File
- modules/
custom/ activity_viewer/ src/ Plugin/ views/ filter/ ActivityFilterPersonalisedHomepage.php, line 360
Class
- ActivityFilterPersonalisedHomepage
- Filters activity for a personalised homepage.
Namespace
Drupal\activity_viewer\Plugin\views\filterCode
protected function getAvailableCommentIds(array $node_ids, array $post_ids) {
$query = $this->connection
->select('comment_field_data', 'cfd');
$query
->fields('cfd', [
'cid',
]);
$or = $query
->orConditionGroup();
// Return empty array if any nodes or posts are not available.
if (empty($node_ids) && empty($post_ids)) {
return [];
}
// Comments related to available nodes.
if (!empty($node_ids)) {
$node_access = $or
->andConditionGroup();
$node_access
->condition('entity_type', 'node');
$node_access
->condition('entity_id', $node_ids, 'IN');
$or
->condition($node_access);
}
// Comments related to available posts.
if (!empty($post_ids)) {
$post_access = $or
->andConditionGroup();
$post_access
->condition('entity_type', 'post');
$post_access
->condition('entity_id', $post_ids, 'IN');
$or
->condition($post_access);
}
if (!empty($or
->conditions()[0])) {
$query
->condition($or);
}
$query
->condition('cfd.status', '1');
$cids = $query
->execute()
->fetchCol();
return array_unique($cids);
}