本文整理汇总了PHP中eZSearch::updateObjectsSection方法的典型用法代码示例。如果您正苦于以下问题:PHP eZSearch::updateObjectsSection方法的具体用法?PHP eZSearch::updateObjectsSection怎么用?PHP eZSearch::updateObjectsSection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZSearch
的用法示例。
在下文中一共展示了eZSearch::updateObjectsSection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: assignSectionToSubTree
static function assignSectionToSubTree($nodeID, $sectionID, $oldSectionID = false)
{
$db = eZDB::instance();
$node = eZContentObjectTreeNode::fetch($nodeID);
$nodePath = $node->attribute('path_string');
$sectionID = (int) $sectionID;
$pathString = " path_string like '{$nodePath}%' AND ";
// fetch the object id's which needs to be updated
$objectIDArray = $db->arrayQuery("SELECT\n ezcontentobject.id\n FROM\n ezcontentobject_tree, ezcontentobject\n WHERE\n {$pathString}\n ezcontentobject_tree.contentobject_id=ezcontentobject.id AND\n ezcontentobject_tree.main_node_id=ezcontentobject_tree.node_id");
if (count($objectIDArray) == 0) {
return;
}
// Who assigns which section at which node should be logged.
$section = eZSection::fetch($sectionID);
$object = $node->object();
eZAudit::writeAudit('section-assign', array('Section ID' => $sectionID, 'Section name' => $section->attribute('name'), 'Node ID' => $nodeID, 'Content object ID' => $object->attribute('id'), 'Content object name' => $object->attribute('name'), 'Comment' => 'Assigned a section to the current node and all child objects: eZContentObjectTreeNode::assignSectionToSubTree()'));
$objectSimpleIDArray = array();
foreach ($objectIDArray as $objectID) {
$objectSimpleIDArray[] = $objectID['id'];
}
$filterPart = '';
if ($oldSectionID !== false) {
$oldSectionID = (int) $oldSectionID;
$filterPart = " section_id = '{$oldSectionID}' and ";
}
$db->begin();
foreach (array_chunk($objectSimpleIDArray, 100) as $pagedObjectIDs) {
$db->query("UPDATE ezcontentobject SET section_id='{$sectionID}' WHERE {$filterPart} " . $db->generateSQLINStatement($pagedObjectIDs, 'id', false, true, 'int'));
eZSearch::updateObjectsSection($pagedObjectIDs, $sectionID);
}
$db->commit();
// clear caches for updated objects
eZContentObject::clearCache($objectSimpleIDArray);
}