You are here

function flag_handler_relationship_content::query in Flag 7.2

Same name and namespace in other branches
  1. 6.2 includes/flag_handler_relationships.inc \flag_handler_relationship_content::query()
  2. 6 includes/flag_handler_relationships.inc \flag_handler_relationship_content::query()
  3. 7.3 includes/views/flag_handler_relationships.inc \flag_handler_relationship_content::query()

Called to implement a relationship in a query.

Overrides views_handler_relationship::query

File

includes/flag_handler_relationships.inc, line 141
Contains various relationship handlers.

Class

flag_handler_relationship_content
Specialized relationship handler associating flags and content.

Code

function query() {
  if (!($flag = $this
    ->get_flag())) {
    return;
  }
  $this->definition['extra'][] = array(
    'field' => 'fid',
    'value' => $flag->fid,
    'numeric' => TRUE,
  );
  if ($this->options['user_scope'] == 'current' && !$flag->global) {
    $this->definition['extra'][] = array(
      'field' => 'uid',
      'value' => '***CURRENT_USER***',
      'numeric' => TRUE,
    );
    if (array_search(DRUPAL_ANONYMOUS_RID, $flag->roles['flag']) !== FALSE) {

      // Disable page caching for anonymous users.
      drupal_page_is_cacheable(FALSE);

      // Add in the SID from Session API for anonymous users.
      $this->definition['extra'][] = array(
        'field' => 'sid',
        'value' => '***FLAG_CURRENT_USER_SID***',
        'numeric' => TRUE,
      );
    }
  }
  parent::query();
}