1.20.x views_plugin_cache.inc views_plugin_cache::get_results_key()

File

modules/views/plugins/views_plugin_cache.inc, line 290
Definition of views_plugin_cache.

Class

views_plugin_cache
The base plugin to handle caching.

Code

function get_results_key() {
  global $user;

  if (!isset($this->_results_key)) {

    $build_info = $this->view->build_info;

    $query_plugin = $this->view->display_handler->get_plugin('query');

    foreach (array('query', 'count_query') as $index) {
      // If the default query back-end is used generate SQL query strings from
      // the query objects.
      if ($build_info[$index] instanceof SelectQueryInterface) {
        $query = clone $build_info[$index];
        $query->preExecute();
        $build_info[$index] = (string) $query;
      }
    }
    $key_data = array(
      'build_info' => $build_info,
      'roles' => array_keys($user->roles),
      'super-user' => $user->uid == 1, // special caching for super user.
      'language' => $GLOBALS['language']->langcode,
      'base_url' => $GLOBALS['base_url'],
    );
    foreach (array('exposed_info', 'page', 'sort', 'order', 'items_per_page', 'offset') as $key) {
      if (isset($_GET[$key])) {
        $key_data[$key] = $_GET[$key];
      }
    }

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

  return $this->_results_key;
}