You are here

function cer_entity_settings_query_cer_presets_alter in Corresponding Entity References 7.3

Implements hook_query_TAG_alter().

File

extensions/cer_entity_settings/cer_entity_settings.module, line 13

Code

function cer_entity_settings_query_cer_presets_alter(QueryAlterableInterface $query) {
  $entity = $query
    ->getMetaData('entity');
  $instance = field_info_instance($entity
    ->type(), 'cer_settings', $entity
    ->getBundle());
  if ($instance) {
    $IDs = array();
    foreach ($entity->cer_settings as $preset) {
      $IDs[] = $preset
        ->getIdentifier();
    }

    // If no presets were selected, guarantee an empty result set by selecting
    // the non-existent preset ID 0.
    if (empty($IDs)) {
      $IDs[] = 0;
    }
    $query
      ->getMetaData('entity_field_query')
      ->entityCondition('entity_id', $IDs, 'IN');
    if (!$entity->cer_store_settings
      ->value()) {
      $queue =& drupal_static('cer_entity_settings_exit', array());
      $queue[$entity
        ->type()][$entity
        ->getIdentifier()] = $entity;
    }
  }
}