Exemple #1
0
 /**
  * Function ends the caching block of the component execution.
  *
  * <p>Note: automaticly called by includeComponentTemplate.</p>
  * @return void
  *
  */
 public final function endResultCache()
 {
     global $NavNum, $CACHE_MANAGER;
     if (!$this->__bInited) {
         return null;
     }
     if (!$this->__cache) {
         if ($this->__parent) {
             foreach ($this->__children_css as $cssPath) {
                 $this->__parent->addChildCSS($cssPath);
             }
             foreach ($this->__children_js as $jsPath) {
                 $this->__parent->addChildJS($jsPath);
             }
             foreach ($this->__children_epilogs as $epilogFile) {
                 $this->__parent->addChildEpilog($epilogFile);
             }
         }
         return null;
     }
     $arCache = array("arResult" => $this->arResult);
     if ($this->__template) {
         $arCache["templateCachedData"] =& $this->__template->getCachedData();
         if ($this->__component_epilog) {
             $arCache["templateCachedData"]["component_epilog"] = $this->__component_epilog;
         }
     } else {
         $arCache["templateCachedData"] = array();
     }
     if ($this->__NavNum !== false && $this->__NavNum !== $NavNum) {
         $arCache["templateCachedData"]["__NavNum"] = $NavNum - $this->__NavNum;
     }
     if (!empty($this->__children_css)) {
         $arCache["templateCachedData"]["__children_css"] = $this->__children_css;
         if ($this->__parent) {
             foreach ($this->__children_css as $cssPath) {
                 $this->__parent->addChildCSS($cssPath);
             }
         }
     }
     if (!empty($this->__children_js)) {
         $arCache["templateCachedData"]["__children_js"] = $this->__children_js;
         if ($this->__parent) {
             foreach ($this->__children_js as $jsPath) {
                 $this->__parent->addChildJS($jsPath);
             }
         }
     }
     if (!empty($this->__children_epilogs)) {
         $arCache["templateCachedData"]["__children_epilogs"] = $this->__children_epilogs;
         if ($this->__parent) {
             foreach ($this->__children_epilogs as $epilogFile) {
                 $this->__parent->addChildEpilog($epilogFile);
             }
         }
     }
     if (!empty($this->__view)) {
         $arCache["templateCachedData"]["__view"] = $this->__view;
     }
     if (!empty($this->__editButtons)) {
         $arCache["templateCachedData"]["__editButtons"] = $this->__editButtons;
     }
     $cacheWasStarted = $this->__cache->isStarted();
     $this->__cache->endDataCache($arCache);
     if (defined("FX_COMP_MANAGED_CACHE") && $cacheWasStarted) {
         $CACHE_MANAGER->endTagCache();
     }
     $this->__cache = null;
 }