当前位置: 首页>>代码示例>>PHP>>正文


PHP eZContentCacheManager::addAdditionalNodeIDPerObject方法代码示例

本文整理汇总了PHP中eZContentCacheManager::addAdditionalNodeIDPerObject方法的典型用法代码示例。如果您正苦于以下问题:PHP eZContentCacheManager::addAdditionalNodeIDPerObject方法的具体用法?PHP eZContentCacheManager::addAdditionalNodeIDPerObject怎么用?PHP eZContentCacheManager::addAdditionalNodeIDPerObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在eZContentCacheManager的用法示例。


在下文中一共展示了eZContentCacheManager::addAdditionalNodeIDPerObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: deleteObject

 /**
  * Deletes a content object, or a list of content objects
  *
  * @param array $deleteIDArray
  * @param bool $moveToTrash
  *
  * @return array An array with operation status, always true
  */
 public static function deleteObject($deleteIDArray, $moveToTrash = false)
 {
     $ini = eZINI::instance();
     $aNodes = eZContentObjectTreeNode::fetch($deleteIDArray);
     if (!is_array($aNodes)) {
         $aNodes = array($aNodes);
     }
     $delayedIndexingValue = $ini->variable('SearchSettings', 'DelayedIndexing');
     if ($delayedIndexingValue === 'enabled' || $delayedIndexingValue === 'classbased') {
         $pendingActionsToDelete = array();
         $classList = $ini->variable('SearchSettings', 'DelayedIndexingClassList');
         // Will be used below if DelayedIndexing is classbased
         $assignedNodesByObject = array();
         $nodesToDeleteByObject = array();
         foreach ($aNodes as $node) {
             $object = $node->object();
             $objectID = $object->attribute('id');
             $assignedNodes = $object->attribute('assigned_nodes');
             // Only delete pending action if this is the last object's node that is requested for deletion
             // But $deleteIDArray can also contain all the object's node (mainly if this method is called programmatically)
             // So if this is not the last node, then store its id in a temp array
             // This temp array will then be compared to the whole object's assigned nodes array
             if (count($assignedNodes) > 1) {
                 // $assignedNodesByObject will be used as a referent to check if we want to delete all lasting nodes
                 if (!isset($assignedNodesByObject[$objectID])) {
                     $assignedNodesByObject[$objectID] = array();
                     foreach ($assignedNodes as $assignedNode) {
                         $assignedNodesByObject[$objectID][] = $assignedNode->attribute('node_id');
                     }
                 }
                 // Store the node assignment we want to delete
                 // Then compare the array to the referent node assignment array
                 $nodesToDeleteByObject[$objectID][] = $node->attribute('node_id');
                 $diff = array_diff($assignedNodesByObject[$objectID], $nodesToDeleteByObject[$objectID]);
                 if (!empty($diff)) {
                     continue;
                 }
             }
             if ($delayedIndexingValue !== 'classbased' || is_array($classList) && in_array($object->attribute('class_identifier'), $classList)) {
                 $pendingActionsToDelete[] = $objectID;
             }
         }
         if (!empty($pendingActionsToDelete)) {
             $filterConds = array('param' => array($pendingActionsToDelete));
             eZPendingActions::removeByAction('index_object', $filterConds);
         }
     }
     // Add assigned nodes to the clear cache list
     // This allows to clear assigned nodes separately (e.g. in reverse proxies)
     // as once content is removed, there is no more assigned nodes, and http cache clear is not possible any more.
     // See https://jira.ez.no/browse/EZP-22447
     foreach ($aNodes as $node) {
         eZContentCacheManager::addAdditionalNodeIDPerObject($node->attribute('contentobject_id'), $node->attribute('node_id'));
     }
     eZContentObjectTreeNode::removeSubtrees($deleteIDArray, $moveToTrash);
     return array('status' => true);
 }
开发者ID:mugoweb,项目名称:ezpublish-legacy,代码行数:65,代码来源:ezcontentoperationcollection.php


注:本文中的eZContentCacheManager::addAdditionalNodeIDPerObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。