Exemplo n.º 1
0
 function loadURIRoot($uri, $displayErrors = true, &$extraParameters)
 {
     $res = "";
     $template = "";
     $resobj = $this->resourceFor($uri, $res, $template);
     if (!is_object($resobj)) {
         if ($displayErrors) {
             $this->warning("", "No resource handler for \"{$res}\" and no default resource handler, aborting.");
         }
         return null;
     }
     $canCache = true;
     if (!$resobj->servesStaticData()) {
         $canCache = false;
     }
     if (!$this->isCachingAllowed()) {
         $canCache = false;
     }
     $resourceData = $this->loadURIData($resobj, $uri, $res, $template, $extraParameters, $displayErrors);
     if ($resourceData) {
         eZTemplate::appendTemplateToStatisticsIfNeeded($resourceData['template-name'], $resourceData['template-filename']);
         $this->appendTemplateFetch($resourceData['template-filename']);
         if (!$resourceData['compiled-template'] and $resourceData['root-node'] === null) {
             $resourceData['root-node'] = array(eZTemplate::NODE_ROOT, false);
             $templateText = $resourceData["text"];
             $keyData = $resourceData['key-data'];
             $this->setIncludeText($uri, $templateText);
             $rootNamespace = '';
             $this->parse($templateText, $resourceData['root-node'], $rootNamespace, $resourceData);
             if (eZTemplate::isDebugEnabled()) {
                 $this->appendDebugNodes($resourceData['root-node'], $resourceData);
             }
             if ($canCache) {
                 $resobj->setCachedTemplateTree($keyData, $uri, $res, $template, $extraParameters, $resourceData['root-node']);
             }
         }
         if (!$resourceData['compiled-template'] and $canCache and $this->canCompileTemplate($resourceData, $extraParameters)) {
             $generateStatus = $this->compileTemplate($resourceData, $extraParameters);
             if ($generateStatus) {
                 $resourceData['compiled-template'] = true;
             }
         }
     }
     return $resourceData;
 }