You are here

function oa_sections_query_entityreference_alter in Open Atrium Core 7.2

Implements hook_query_TAG_alter().

File

modules/oa_sections/oa_sections.module, line 142

Code

function oa_sections_query_entityreference_alter($query) {
  $field = $query->alterMetaData['entityreference_selection_handler']->field;
  $current_query_conditions = $query->alterMetaData['entity_field_query']->entityConditions;
  if ($field && $field['field_name'] == 'oa_section_ref' && empty($current_query_conditions['entity_id'])) {
    $entity = $query->alterMetaData['entityreference_selection_handler']->entity;

    // A space is active, limit to sections in that space.
    if ($value = _oa_sections_get_current_selected_space($entity)) {
      $query
        ->join('og_membership', 'omrol', 'node.nid = omrol.etid and omrol.entity_type = :entity_type AND omrol.field_name = :field_name AND omrol.gid = :target_id', array(
        ':target_id' => $value,
        ':entity_type' => 'node',
        ':field_name' => 'og_group_ref',
      ));
    }
    else {
      $query
        ->condition('1', '0', '=');
    }
  }
}