public function OgCommonsSelectionHandler::entityFieldQueryAlter in Drupal Commons 7.3
Overrides OgSelectionHandler::entityFieldQueryAlter().
Add the user's groups along with the rest of the "public" groups.
Overrides OgSelectionHandler::entityFieldQueryAlter
File
- modules/
commons/ commons_groups/ plugins/ entityreference/ selection/ OgCommonsSelectionHandler.class.php, line 51 - OG Commons groups selection handler.
Class
- OgCommonsSelectionHandler
- @file OG Commons groups selection handler.
Code
public function entityFieldQueryAlter(SelectQueryInterface $query) {
$gids = og_get_entity_groups();
if (empty($gids['node'])) {
return;
}
$conditions =& $query
->conditions();
// Find the condition for the "field_data_field_privacy_settings" query, and
// the one for the "node.nid", so we can later db_or() them.
$public_condition = array();
foreach ($conditions as $key => $condition) {
if ($key !== '#conjunction' && is_string($condition['field'])) {
if (strpos($condition['field'], 'field_data_field_og_subscribe_settings') === 0) {
$public_condition = $condition;
unset($conditions[$key]);
}
if ($condition['field'] === 'node.nid') {
unset($conditions[$key]);
}
}
}
if (!$public_condition) {
return;
}
$or = db_or();
$or
->condition($public_condition['field'], $public_condition['value'], $public_condition['operator']);
$or
->condition('node.nid', $gids['node'], 'IN');
$query
->condition($or);
}