예제 #1
0
 static function cleanupByNodeIDs(&$nodeIDList)
 {
     if (!is_array($nodeIDList) || count($nodeIDList) === 0) {
         eZSubtreeCache::cleanupAll();
     } else {
         $nodeList = eZContentObjectTreeNode::fetch($nodeIDList);
         if ($nodeList) {
             if (!is_array($nodeList)) {
                 $nodeList = array($nodeList);
             }
             eZSubtreeCache::cleanup($nodeList);
         }
     }
 }
예제 #2
0
 /**
  * Clears template-block cache and template-block with subtree_expiry parameter caches for specified object
  * without checking 'TemplateCache' ini setting.
  *
  * @param int|array|bool $objectID (list of) object ID, if false only ordinary template block caches will be cleared
  *                                 Support for array value available {@since 5.0}.
  * @param bool $checkViewCacheClassSettings Check whether ViewCache class settings should be verified
  */
 public static function clearTemplateBlockCache($objectID, $checkViewCacheClassSettings = false)
 {
     // ordinary template block cache
     eZContentObject::expireTemplateBlockCache();
     if (empty($objectID)) {
         return;
     }
     // subtree template block cache
     $nodeList = false;
     if (is_array($objectID)) {
         $objects = eZContentObject::fetchIDArray($objectID);
     } else {
         $objects = array($objectID => eZContentObject::fetch($objectID));
     }
     $ini = eZINI::instance('viewcache.ini');
     foreach ($objects as $object) {
         if ($object instanceof eZContentObject) {
             $getAssignedNodes = true;
             if ($checkViewCacheClassSettings) {
                 $objectClassIdentifier = $object->attribute('class_identifier');
                 if ($ini->hasVariable($objectClassIdentifier, 'ClearCacheBlocks') && $ini->variable($objectClassIdentifier, 'ClearCacheBlocks') === 'disabled') {
                     $getAssignedNodes = false;
                 }
             }
             if ($getAssignedNodes) {
                 $nodeList = array_merge($nodeList !== false ? $nodeList : array(), $object->assignedNodes());
             }
         }
     }
     eZSubtreeCache::cleanup($nodeList);
 }
예제 #3
0
 static function clearTemplateBlockCache($objectID, $checkViewCacheClassSettings = false)
 {
     // ordinary template block cache
     eZContentObject::expireTemplateBlockCache();
     // subtree template block cache
     $nodeList = false;
     $object = false;
     if ($objectID) {
         $object = eZContentObject::fetch($objectID);
     }
     if ($object instanceof eZContentObject) {
         $getAssignedNodes = true;
         if ($checkViewCacheClassSettings) {
             $ini = eZINI::instance('viewcache.ini');
             $objectClassIdentifier = $object->attribute('class_identifier');
             if ($ini->hasVariable($objectClassIdentifier, 'ClearCacheBlocks') && $ini->variable($objectClassIdentifier, 'ClearCacheBlocks') === 'disabled') {
                 $getAssignedNodes = false;
             }
         }
         if ($getAssignedNodes) {
             $nodeList = $object->assignedNodes();
         }
     }
     eZSubtreeCache::cleanup($nodeList);
 }