本文整理汇总了PHP中eZContentObject::fetchIDArray方法的典型用法代码示例。如果您正苦于以下问题:PHP eZContentObject::fetchIDArray方法的具体用法?PHP eZContentObject::fetchIDArray怎么用?PHP eZContentObject::fetchIDArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZContentObject
的用法示例。
在下文中一共展示了eZContentObject::fetchIDArray方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testFetchIDArray
/**
* Unit test for eZContentObject::fetchIDArray()
*
* Outline:
* 1) Create more than 1000 objects
* 2) Call fetchIDArray() on these object's ids
* 3) Check that they were all returned
*/
public function testFetchIDArray()
{
$contentObjectIDArray = array();
$object = new ezpObject( "article", 2 );
$object->title = __FUNCTION__;
$object->publish();
$contentObjectIDArray[] = $object->attribute( 'id' );
for( $i = 0; $i < 20; $i++ )
{
$newObject = $object->copy();
$contentObjectIDArray[] = $newObject->attribute( 'id' );
}
$contentObjects = eZContentObject::fetchIDArray( $contentObjectIDArray );
// we will store the objects we find in this array
$matchedContentObjectsIDArray = array();
foreach( $contentObjectIDArray as $contentObjectID )
{
$this->assertArrayHasKey( $contentObjectID, $contentObjects,
"eZContentObject #{$contentObjectID} should be a key from the return value" );
$this->assertInstanceOf( 'eZContentObject', $contentObjects[$contentObjectID],
"Key for eZContentObject #{$contentObjectID} isn't an eZContentObject" );
$this->assertEquals( $contentObjectID, $contentObjects[$contentObjectID]->attribute( 'id' ),
"eZContentObject's id for key #{$contentObjectID} doesn't match" );
$matchedContentObjectsIDArray[] = $contentObjectID;
}
// Check that all the objects from the original array were returned
$this->assertTrue( count( array_diff( $matchedContentObjectsIDArray, $contentObjectIDArray ) ) == 0,
"Not all objects from original ID array were returned" );
}
示例2: clearTemplateBlockCache
/**
* 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: prefetch
function prefetch()
{
$relatedObjectIDArray = array();
$nodeIDArray = array();
// Fetch all links and cache urls
$linkIDArray = $this->getAttributeValueArray('link', 'url_id');
if (count($linkIDArray) > 0) {
$inIDSQL = implode(', ', $linkIDArray);
$db = eZDB::instance();
$linkArray = $db->arrayQuery("SELECT * FROM ezurl WHERE id IN ( {$inIDSQL} ) ");
foreach ($linkArray as $linkRow) {
$url = str_replace('&', '&', $linkRow['url']);
$this->LinkArray[$linkRow['id']] = $url;
}
}
$linkRelatedObjectIDArray = $this->getAttributeValueArray('link', 'object_id');
$linkNodeIDArray = $this->getAttributeValueArray('link', 'node_id');
// Fetch all embeded objects and cache by ID
$objectRelatedObjectIDArray = $this->getAttributeValueArray('object', 'id');
$embedRelatedObjectIDArray = $this->getAttributeValueArray('embed', 'object_id');
$embedInlineRelatedObjectIDArray = $this->getAttributeValueArray('embed-inline', 'object_id');
$embedNodeIDArray = $this->getAttributeValueArray('embed', 'node_id');
$embedInlineNodeIDArray = $this->getAttributeValueArray('embed-inline', 'node_id');
$relatedObjectIDArray = array_merge($linkRelatedObjectIDArray, $objectRelatedObjectIDArray, $embedRelatedObjectIDArray, $embedInlineRelatedObjectIDArray);
$relatedObjectIDArray = array_unique($relatedObjectIDArray);
if (count($relatedObjectIDArray) > 0) {
$this->ObjectArray = eZContentObject::fetchIDArray($relatedObjectIDArray);
}
$nodeIDArray = array_merge($linkNodeIDArray, $embedNodeIDArray, $embedInlineNodeIDArray);
$nodeIDArray = array_unique($nodeIDArray);
if (count($nodeIDArray) > 0) {
$nodes = eZContentObjectTreeNode::fetch($nodeIDArray);
if (is_array($nodes)) {
foreach ($nodes as $node) {
$nodeID = $node->attribute('node_id');
$this->NodeArray["{$nodeID}"] = $node;
}
} elseif ($nodes) {
$node = $nodes;
$nodeID = $node->attribute('node_id');
$this->NodeArray["{$nodeID}"] = $node;
}
}
}
示例4: getRelatedObjects
/**
* Returns objects related to this tag
*
* @return array
*/
function getRelatedObjects()
{
// Not an easy task to fetch published objects with API and take care of current_version, status
// and attribute version, so just use SQL to fetch all related object ids in one go
$tagID = (int) $this->attribute('id');
$db = eZDB::instance();
$result = $db->arrayQuery("SELECT DISTINCT(o.id) AS object_id FROM eztags_attribute_link l\n INNER JOIN ezcontentobject o ON l.object_id = o.id\n AND l.objectattribute_version = o.current_version\n AND o.status = " . eZContentObject::STATUS_PUBLISHED . "\n WHERE l.keyword_id = {$tagID}");
if (is_array($result) && !empty($result)) {
$objectIDArray = array();
foreach ($result as $r) {
array_push($objectIDArray, $r['object_id']);
}
return eZContentObject::fetchIDArray($objectIDArray);
}
return array();
}