public function getTemplateCacheKey(Template $template, $globals)
    {
        $locals = $template->getLocals();

        $cachekey = '';

        if($template->isTopTemplate())
            $cachekey .= $this->Request->getAdjustedRequestURI();
        else
            $cachekey .= $template->getContentType().$template->getName();

        $cacheParams = array();

        // any locals that aren't globals
        foreach ($locals as $name => $value) {
            if (!is_array($value) && !array_key_exists($name, $globals) &&
             !preg_match("/^[A-Z\-\_0-9]+$/", $name) &&
             !preg_match("/\-\d+$/", $name)) {
                $cacheParams[$name] = $value;
            }
        }

        if(isset($cacheParams['UseQueryStringInCacheKey']) && StringUtils::strToBool($cacheParams['UseQueryStringInCacheKey']) == true)
        {
            foreach ($_GET as $name => $value) {
                if (!is_array($value))
                    $cacheParams['q_'.$name] = $value;
            }
        }

        $cachekey .= '?';
        if (!empty($cacheParams)) {
            ksort($cacheParams);
            foreach ($cacheParams as $n => $v) {
                $cachekey .= $n.'='.substr($v,0,255).'&';
            }
        }

        $cachekey = rtrim($cachekey, '&');
        $this->Logger->debug('Cache Key ['.$cachekey.']');

        return $cachekey;
    }