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


PHP eZContentObject::relationTypeMask方法代码示例

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


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

示例1: relatedObjectCount

    /**
     * Fetch the number of (reverse) related objects
     *
     * @param bool|int $version
     * @param int $attributeID
     *        This parameter only makes sense if $params[AllRelations] is unset,
     *        set to false, or matches eZContentObject::RELATION_ATTRIBUTE
     *        Possible values:
     *        - 0 or false:
     *          Count relations made with any attribute
     *        - >0
     *          Count relations made with attribute $attributeID
     * @param int|bool $reverseRelatedObjects
     *        Wether to count related objects (false) or reverse related
     *        objects (false)
     * @param array|bool $params
     *        Various params, as an associative array.
     *        Possible values:
     *        - AllRelations (bool|int)
     *          true: count ALL relations, object and attribute level
     *          false: only count object level relations
     *          other: bit mask of eZContentObject::RELATION_* constants
     *        - IgnoreVisibility (bool)
     *          If true, 'hidden' status will be ignored
     *
     * @return int The number of (reverse) related objects for the object
     */
    function relatedObjectCount( $version = false, $attributeID = 0, $reverseRelatedObjects = false, $params = false )
    {
        $objectID = $this->ID;
        if ( $version == false )
            $version = isset( $this->CurrentVersion ) ? $this->CurrentVersion : false;
        $version = (int) $version;

        $db = eZDB::instance();
        $showInvisibleNodesCond = '';

        // process params (only IgnoreVisibility currently supported):
        if ( is_array( $params ) )
        {
            if ( isset( $params['IgnoreVisibility'] ) )
            {
                $showInvisibleNodesCond = self::createFilterByVisibilitySQLString(
                    $params['IgnoreVisibility'],
                    // inner_object represents the source of relation while outer_object represents the target
                    $reverseRelatedObjects ? 'inner_object' : 'outer_object'
                );
            }
        }

        $relationTypeMasking = '';
        $relationTypeMask = isset( $params['AllRelations'] ) ? $params['AllRelations'] : ( $attributeID === false );
        if ( $attributeID && ( $relationTypeMask === false || $relationTypeMask === eZContentObject::RELATION_ATTRIBUTE ) )
        {
            $attributeID =(int) $attributeID;
            $relationTypeMasking .= " AND inner_link.contentclassattribute_id = $attributeID ";
            $relationTypeMask = eZContentObject::RELATION_ATTRIBUTE;
        }
        elseif ( is_bool( $relationTypeMask ) )
        {
            $relationTypeMask = eZContentObject::relationTypeMask( $relationTypeMask );
        }

        if ( $db->databaseName() == 'oracle' )
        {
            $relationTypeMasking .= " AND bitand( inner_link.relation_type, $relationTypeMask ) <> 0 ";
        }
        else
        {
            $relationTypeMasking .= " AND ( inner_link.relation_type & $relationTypeMask ) <> 0 ";
        }

        if ( $reverseRelatedObjects )
        {
            $outerObjectIDSQL = 'outer_object.id = outer_link.from_contentobject_id';
            if ( is_array( $objectID ) )
            {
                if ( count( $objectID ) > 0 )
                {
                    $objectIDSQL = ' AND ' . $db->generateSQLINStatement( $objectID, 'inner_link.to_contentobject_id', false, false, 'int' ) . ' AND
                                     inner_link.from_contentobject_version = inner_object.current_version';
                }
                else
                {
                    $objectIDSQL = '';
                }
            }
            else
            {
                $objectID = (int) $objectID;
                $objectIDSQL = " AND inner_link.to_contentobject_id = $objectID
                                 AND inner_link.from_contentobject_version = inner_object.current_version";
            }
        }
        else
        {
            $outerObjectIDSQL = 'outer_object.id = outer_link.to_contentobject_id';
            $objectIDSQL = " AND inner_link.from_contentobject_id = $objectID
                             AND inner_link.from_contentobject_version = $version";
        }
//.........这里部分代码省略.........
开发者ID:ezsystemstraining,项目名称:ez54training,代码行数:101,代码来源:ezcontentobject.php

示例2: contentobjectRelationTypeMask

 public static function contentobjectRelationTypeMask($contentObjectRelationTypes = false)
 {
     $relationTypeMask = 0;
     if (is_array($contentObjectRelationTypes)) {
         $relationTypeMap = array('common' => eZContentObject::RELATION_COMMON, 'xml_embed' => eZContentObject::RELATION_EMBED, 'xml_link' => eZContentObject::RELATION_LINK, 'attribute' => eZContentObject::RELATION_ATTRIBUTE);
         foreach ($contentObjectRelationTypes as $relationType) {
             if (isset($relationTypeMap[$relationType])) {
                 $relationTypeMask |= $relationTypeMap[$relationType];
             } else {
                 eZDebug::writeWarning("Unknown relation type: '{$relationType}'.", __METHOD__);
             }
         }
     } elseif (!is_bool($contentObjectRelationTypes)) {
         $contentObjectRelationTypes = false;
     }
     if (is_bool($contentObjectRelationTypes)) {
         $relationTypeMask = eZContentObject::relationTypeMask($contentObjectRelationTypes);
     }
     return $relationTypeMask;
 }
开发者ID:CG77,项目名称:ezpublish-legacy,代码行数:20,代码来源:ezcontentfunctioncollection.php

示例3: fastRelatedObjectCount

 static function fastRelatedObjectCount($objectId, $objectVersion, $attributeID = 0, $reverseRelatedObjects = false, $params = false)
 {
     $db = eZDB::instance();
     $showInvisibleNodesCond = '';
     // process params (only IgnoreVisibility currently supported):
     if (is_array($params)) {
         if (isset($params['IgnoreVisibility'])) {
             $showInvisibleNodesCond = eZContentObject::createFilterByVisibilitySQLString($params['IgnoreVisibility']);
         }
     }
     $relationTypeMasking = '';
     $relationTypeMask = isset($params['AllRelations']) ? $params['AllRelations'] : $attributeID === false;
     if ($attributeID && ($relationTypeMask === false || $relationTypeMask === eZContentObject::RELATION_ATTRIBUTE)) {
         $attributeID = (int) $attributeID;
         $relationTypeMasking .= " AND contentclassattribute_id={$attributeID} ";
         $relationTypeMask = eZContentObject::RELATION_ATTRIBUTE;
     } elseif (is_bool($relationTypeMask)) {
         $relationTypeMask = eZContentObject::relationTypeMask($relationTypeMask);
     }
     if ($db->databaseName() == 'oracle') {
         $relationTypeMasking .= " AND bitand( relation_type, {$relationTypeMask} ) <> 0 ";
     } else {
         $relationTypeMasking .= " AND ( relation_type & {$relationTypeMask} ) <> 0 ";
     }
     if ($reverseRelatedObjects) {
         if (is_array($objectId)) {
             if (count($objectId) > 0) {
                 $objectIDSQL = ' AND ' . $db->generateSQLINStatement($objectId, 'ezcontentobject_link.to_contentobject_id', false, false, 'int') . ' AND
                                 ezcontentobject_link.from_contentobject_version=ezcontentobject.current_version';
             } else {
                 $objectIDSQL = '';
             }
         } else {
             $objectId = (int) $objectId;
             $objectIDSQL = ' AND ezcontentobject_link.to_contentobject_id = ' . $objectId . ' AND
                             ezcontentobject_link.from_contentobject_version=ezcontentobject.current_version';
         }
         $select = " count( DISTINCT ezcontentobject.id ) AS count";
     } else {
         $select = " count( ezcontentobject_link.from_contentobject_id ) as count ";
         $objectIDSQL = " AND ezcontentobject_link.from_contentobject_id='{$objectId}'\n                                AND ezcontentobject_link.from_contentobject_version='{$objectVersion}'";
     }
     // from the following query, this is the excerpted where condition; it causes
     // a BC break in 4.7 and does not seem to do anything ...
     //  AND ezcontentobject_link.op_code='0'
     $query = "SELECT {$select}\n                  FROM\n                    ezcontentobject, ezcontentobject_link\n                  WHERE\n                    ezcontentobject.id=ezcontentobject_link.from_contentobject_id AND\n                    ezcontentobject.status=" . eZContentObject::STATUS_PUBLISHED . " \n                    \n                    {$objectIDSQL}\n                    {$relationTypeMasking}\n                    {$showInvisibleNodesCond}";
     $rows = $db->arrayQuery($query);
     return $rows[0]['count'];
 }
开发者ID:truffo,项目名称:eep,代码行数:49,代码来源:eepHelpers.php


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