當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。