You are here

function domain_views_plugin_cache_time::get_results_key in Domain Access 6.2

File

domain_views/includes/domain_views_plugin_cache_time.inc, line 24
Domain Views plugin that caches views on a per domain basis. This is necessary for views that filter on "current domain" (ex. SELECT * FROM {node} WHERE domain_source = current_domain) otherwise "current domain" will be cached.

Class

domain_views_plugin_cache_time
Cache plugin that provides caching on a per domain basis.

Code

function get_results_key() {

  /**
   * Create an md5 hashed key including the current domain
   * to use as the cache key for caching the views results.
   */
  global $user;
  global $_domain;
  if (!isset($this->_results_key)) {
    $key_data = array(
      'build_info' => $this->view->build_info,
      'roles' => array_keys($user->roles),
      'super-user' => $user->uid == 1,
      // Special caching for super user.
      'language' => $GLOBALS['language'],
      'domain' => $_domain['domain_id'],
    );
    foreach (array(
      'exposed_info',
      'page',
      'sort',
      'order',
    ) as $key) {
      if (isset($_GET[$key])) {
        $key_data[$key] = $_GET[$key];
      }
    }

    // Set the results key.
    $this->_results_key = $this->view->name . ':' . $this->display->id . ':results:' . md5(serialize($key_data));
  }
  return $this->_results_key;
}