function views_plugin_cache::get_cache_key

Returns cache key.

Parameters

array $key_data: Additional data for cache segmentation and/or overrides for default segmentation.

Return value

string

2 calls to views_plugin_cache::get_cache_key()
views_plugin_cache::get_output_key in plugins/views_plugin_cache.inc
views_plugin_cache::get_results_key in plugins/views_plugin_cache.inc

File

plugins/views_plugin_cache.inc, line 335

Class

views_plugin_cache
The base plugin to handle caching.

Code

public function get_cache_key($key_data = array()) {
    global $user;
    $key_data += array(
        'roles' => array_keys($user->roles),
        'super-user' => $user->uid == 1,
        // Special caching for super user.
'language' => $GLOBALS['language']->language,
        'language_content' => $GLOBALS['language_content']->language,
        'base_url' => $GLOBALS['base_url'],
        'display_options' => $this->display->display_options,
    );
    if (empty($key_data['build_info'])) {
        $build_info = $this->view->build_info;
        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 = $build_info[$index];
                // If the query was not yet prepared, work on a clone and run
                // preExecute().
                if (!$query->isPrepared()) {
                    $query = clone $build_info[$index];
                    $query->preExecute();
                }
                $key_data['build_info'][$index] = array(
                    'sql' => (string) $query,
                    'arguments' => $query->getArguments(),
                );
            }
        }
    }
    return md5(serialize($key_data));
}