You are here

function relation_ui_build_filter_query in Relation 7

Apply filters for relation administration filters based on session.

Parameters

$query: A SelectQuery to which the filters should be applied.

1 call to relation_ui_build_filter_query()
relation_ui_admin_content in ./relation_ui.module
Menu callback for admin/content/relation. Displays all relations on the site.

File

./relation_ui.module, line 567
Provide administration interface for relation type bundles.

Code

function relation_ui_build_filter_query(SelectQueryInterface $query) {
  if (!empty($_SESSION['relation_filters'])) {
    $query
      ->join('field_data_endpoints', 'e', 'e.entity_id = r.rid');
    $query
      ->distinct();
    foreach ($_SESSION['relation_filters'] as $filter => $values) {
      if (empty($values)) {
        continue;
      }
      switch ($filter) {
        case 'bundle':
          $query
            ->condition('r.relation_type', array_keys($values), 'IN');
          break;
        case 'endpoints_entity_type':
          $query
            ->condition('e.endpoints_entity_type', $values);
          break;
        case 'endpoints_entity_id':
          $query
            ->condition('e.endpoints_entity_id', $values);
          break;
      }
    }
  }
}