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


PHP eZContentObject::fetchIDArray方法代码示例

本文整理汇总了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" );
    }
开发者ID:robinmuilwijk,项目名称:ezpublish,代码行数:42,代码来源:ezcontentobject_test.php

示例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);
 }
开发者ID:nlescure,项目名称:ezpublish,代码行数:39,代码来源:ezcontentcachemanager.php

示例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('&', '&amp;', $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;
         }
     }
 }
开发者ID:EVE-Corp-Center,项目名称:ECC-Website,代码行数:44,代码来源:ezxmloutputhandler.php

示例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();
 }
开发者ID:jordanmanning,项目名称:ezpublish,代码行数:21,代码来源:eztagsobject.php


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