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


PHP eZContentClass::fetch方法代码示例

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


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

示例1: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     $canCreateClassList = $namedParameters['can_create_class_list'];
     switch ($operatorName) {
         case 'ezcreateclasslistgroups':
             $groupArray = array();
             $ini = eZINI::instance('websitetoolbar.ini');
             foreach ($canCreateClassList as $class) {
                 $contentClass = eZContentClass::fetch($class['id']);
                 if (!$contentClass) {
                     return false;
                 }
                 foreach ($contentClass->fetchGroupList() as $group) {
                     $isHidden = false;
                     if (in_array($contentClass->attribute('identifier'), $ini->variable('WebsiteToolbarSettings', 'HiddenContentClasses'))) {
                         $isHidden = true;
                     }
                     if (array_key_exists($group->attribute('group_id'), $groupArray)) {
                         if (!$isHidden) {
                             $groupArray[$group->attribute('group_id')]['items'][] = $contentClass;
                         }
                     } else {
                         if (!$isHidden) {
                             $groupArray[$group->attribute('group_id')]['items'] = array($contentClass);
                             $groupArray[$group->attribute('group_id')]['group_name'] = $group->attribute('group_name');
                         }
                     }
                 }
             }
             $operatorValue = $groupArray;
             break;
     }
 }
开发者ID:heliopsis,项目名称:ezwt,代码行数:33,代码来源:ezcreateclasslistgroups.php

示例2: remove

 static function remove($classID)
 {
     $contentClass = eZContentClass::fetch($classID);
     if ($contentClass == null or !$contentClass->isRemovable()) {
         return false;
     }
     // Remove all objects
     $contentObjects = eZContentObject::fetchSameClassList($classID);
     foreach ($contentObjects as $contentObject) {
         eZContentObjectOperations::remove($contentObject->attribute('id'));
     }
     if (count($contentObjects) == 0) {
         eZContentObject::expireAllViewCache();
     }
     eZContentClassClassGroup::removeClassMembers($classID, 0);
     eZContentClassClassGroup::removeClassMembers($classID, 1);
     // Fetch real version and remove it
     $contentClass->remove(true);
     // Fetch temp version and remove it
     $tempDeleteClass = eZContentClass::fetch($classID, true, 1);
     if ($tempDeleteClass != null) {
         $tempDeleteClass->remove(true, 1);
     }
     return true;
 }
开发者ID:CG77,项目名称:ezpublish-legacy,代码行数:25,代码来源:ezcontentclassoperations.php

示例3: removeGroup

    static function removeGroup( $classID, $classVersion, $selectedGroup )
    {
        $class = eZContentClass::fetch( $classID, true, eZContentClass::VERSION_STATUS_DEFINED );
        if ( !$class )
            return false;
        $groups = $class->attribute( 'ingroup_list' );
        foreach ( array_keys( $groups ) as $key )
        {
            if ( in_array( $groups[$key]->attribute( 'group_id' ), $selectedGroup ) )
            {
                unset( $groups[$key] );
            }
        }

        if ( count( $groups ) == 0 )
        {
            return false;
        }
        else
        {
            foreach(  $selectedGroup as $group_id )
            {
                eZContentClassClassGroup::removeGroup( $classID, $classVersion, $group_id );
            }
        }
        return true;
    }
开发者ID:sushilbshinde,项目名称:ezpublish-study,代码行数:27,代码来源:ezclassfunctions.php

示例4: testContentClassStillInGroupAfterEdition

    /**
     * Test that saving a content class in DEFINED version status
     * correctly manipulate associated class groups
     *
     * @link http://issues.ez.no/16197
     */
    public function testContentClassStillInGroupAfterEdition()
    {
        $class = eZContentClass::fetch( $this->class->id );
        // This is logic contained in kernel/class/edit.php
        foreach ( eZContentClassClassGroup::fetchGroupList( $class->attribute( 'id' ),
                                                            eZContentClass::VERSION_STATUS_DEFINED )  as $classGroup )
        {
            eZContentClassClassGroup::create( $class->attribute( 'id' ),
                                              eZContentClass::VERSION_STATUS_TEMPORARY,
                                              $classGroup->attribute( 'group_id' ),
                                              $classGroup->attribute( 'group_name' ) )
                ->store();
        }

        $attributes = $class->fetchAttributes();
        $class->setAttribute( 'version', eZContentClass::VERSION_STATUS_TEMPORARY );
        $class->NameList->setHasDirtyData();

        foreach ( $attributes as $attribute )
        {
            $attribute->setAttribute( 'version', eZContentClass::VERSION_STATUS_TEMPORARY );
            if ( $dataType = $attribute->dataType() )
                $dataType->initializeClassAttribute( $attribute );
        }

        $class->store( $attributes );
        $db = eZDB::instance();
        $db->begin();
        $class->storeVersioned( $attributes, eZContentClass::VERSION_STATUS_DEFINED );
        $db->commit();

        $this->assertTrue( eZContentClassClassGroup::classInGroup( $class->attribute( 'id' ),
                                                                   eZContentClass::VERSION_STATUS_DEFINED,
                                                                   1 ) );
    }
开发者ID:robinmuilwijk,项目名称:ezpublish,代码行数:41,代码来源:ezcontentclass_regression.php

示例5: createUser

 /**
  * Creates a user with provided auth data
  *
  * @param array $authResult
  *
  * @return bool|eZUser
  */
 public static function createUser($authResult)
 {
     $ngConnectINI = eZINI::instance('ngconnect.ini');
     $siteINI = eZINI::instance('site.ini');
     $defaultUserPlacement = $ngConnectINI->variable('LoginMethod_' . $authResult['login_method'], 'DefaultUserPlacement');
     $placementNode = eZContentObjectTreeNode::fetch($defaultUserPlacement);
     if (!$placementNode instanceof eZContentObjectTreeNode) {
         $defaultUserPlacement = $siteINI->variable('UserSettings', 'DefaultUserPlacement');
         $placementNode = eZContentObjectTreeNode::fetch($defaultUserPlacement);
         if (!$placementNode instanceof eZContentObjectTreeNode) {
             return false;
         }
     }
     $contentClass = eZContentClass::fetch($siteINI->variable('UserSettings', 'UserClassID'));
     $userCreatorID = $siteINI->variable('UserSettings', 'UserCreatorID');
     $defaultSectionID = $siteINI->variable('UserSettings', 'DefaultSectionID');
     $db = eZDB::instance();
     $db->begin();
     $contentObject = $contentClass->instantiate($userCreatorID, $defaultSectionID);
     $contentObject->store();
     $nodeAssignment = eZNodeAssignment::create(array('contentobject_id' => $contentObject->attribute('id'), 'contentobject_version' => 1, 'parent_node' => $placementNode->attribute('node_id'), 'is_main' => 1));
     $nodeAssignment->store();
     $currentTimeStamp = eZDateTime::currentTimeStamp();
     /** @var eZContentObjectVersion $version */
     $version = $contentObject->currentVersion();
     $version->setAttribute('modified', $currentTimeStamp);
     $version->setAttribute('status', eZContentObjectVersion::STATUS_DRAFT);
     $version->store();
     $dataMap = $version->dataMap();
     self::fillUserObject($version->dataMap(), $authResult);
     if (!isset($dataMap['user_account'])) {
         $db->rollback();
         return false;
     }
     $userLogin = 'ngconnect_' . $authResult['login_method'] . '_' . $authResult['id'];
     $userPassword = (string) rand() . 'ngconnect_' . $authResult['login_method'] . '_' . $authResult['id'] . (string) rand();
     $userExists = false;
     if (eZUser::requireUniqueEmail()) {
         $userExists = eZUser::fetchByEmail($authResult['email']) instanceof eZUser;
     }
     if (empty($authResult['email']) || $userExists) {
         $email = md5('ngconnect_' . $authResult['login_method'] . '_' . $authResult['id']) . '@localhost.local';
     } else {
         $email = $authResult['email'];
     }
     $user = new eZUser(array('contentobject_id' => $contentObject->attribute('id'), 'email' => $email, 'login' => $userLogin, 'password_hash' => md5("{$userLogin}\n{$userPassword}"), 'password_hash_type' => 1));
     $user->store();
     $userSetting = new eZUserSetting(array('is_enabled' => true, 'max_login' => 0, 'user_id' => $contentObject->attribute('id')));
     $userSetting->store();
     $dataMap['user_account']->setContent($user);
     $dataMap['user_account']->store();
     $operationResult = eZOperationHandler::execute('content', 'publish', array('object_id' => $contentObject->attribute('id'), 'version' => $version->attribute('version')));
     if (array_key_exists('status', $operationResult) && $operationResult['status'] == eZModuleOperationInfo::STATUS_CONTINUE) {
         $db->commit();
         return $user;
     }
     $db->rollback();
     return false;
 }
开发者ID:netgen,项目名称:ngconnect,代码行数:66,代码来源:ngconnectfunctions.php

示例6: className

 function className()
 {
     if ($this->ClassName === null) {
         $contentClass = eZContentClass::fetch($this->attribute('contentclass_id'));
         $this->ClassName = $contentClass->attribute('name');
     }
     return $this->ClassName;
 }
开发者ID:legende91,项目名称:ez,代码行数:8,代码来源:ezwaituntildatevalue.php

示例7: updateClass

function updateClass($classId, $scheduledScript)
{
    $cli = eZCLI::instance();
    /*
    // If the class is not stored yet, store it now
    $class = eZContentClass::fetch( $classId, true, eZContentClass::VERSION_STATUS_TEMPORARY );
    if ( $class )
    {
        $cli->output( "Storing class" );
        $class->storeDefined( $class->fetchAttributes() );
    }
    */
    // Fetch the stored class
    $class = eZContentClass::fetch($classId, true, eZContentClass::VERSION_STATUS_MODIFIED);
    if (!$class) {
        $cli->error('No class in a modified version status with ID: ' . $classId);
        return;
    }
    // Fetch attributes and definitions
    $attributes = $class->fetchAttributes($classId, true, eZContentClass::VERSION_STATUS_MODIFIED);
    $oldClassAttributes = $class->fetchAttributes($classId, true, eZContentClass::VERSION_STATUS_DEFINED);
    // Delete object attributes which have been removed.
    foreach ($oldClassAttributes as $oldClassAttribute) {
        $attributeExist = false;
        $oldClassAttributeID = $oldClassAttribute->attribute('id');
        foreach ($attributes as $newClassAttribute) {
            if ($oldClassAttributeID == $newClassAttribute->attribute('id')) {
                $attributeExist = true;
            }
        }
        if (!$attributeExist) {
            foreach (eZContentObjectAttribute::fetchSameClassAttributeIDList($oldClassAttributeID) as $objectAttribute) {
                $objectAttribute->removeThis($objectAttribute->attribute('id'));
            }
        }
    }
    $class->storeVersioned($attributes, eZContentClass::VERSION_STATUS_DEFINED);
    // Add object attributes which have been added.
    foreach ($attributes as $newClassAttribute) {
        $attributeExist = false;
        foreach ($oldClassAttributes as $oldClassAttribute) {
            if ($oldClassAttribute->attribute('id') == $newClassAttribute->attribute('id')) {
                $attributeExist = true;
                break;
            }
        }
        if (!$attributeExist) {
            $objects = null;
            $newClassAttribute->initializeObjectAttributes($objects);
        }
    }
    if ($scheduledScript !== false) {
        $scheduledScript->updateProgress(100);
    }
}
开发者ID:legende91,项目名称:ez,代码行数:55,代码来源:syncobjectattributes.php

示例8: contentClassList

 private function contentClassList()
 {
     $db = eZDB::instance();
     $query = "SELECT ezcontentclass.id\n                  FROM   ezcontentclass,\n                         ezcontentclass_attribute ezcontentclass_attribute1,\n                         ezcontentclass_attribute ezcontentclass_attribute2\n                  WHERE  ezcontentclass.version='0' AND\n                         ezcontentclass.id=ezcontentclass_attribute1.contentclass_id AND\n                         ezcontentclass_attribute1.is_information_collector='0' AND\n                         ezcontentclass.id=ezcontentclass_attribute2.contentclass_id AND\n                         ezcontentclass_attribute2.is_information_collector='0' AND\n                         ezcontentclass_attribute1.contentclass_id=ezcontentclass_attribute2.contentclass_id AND\n                         ezcontentclass_attribute1.data_type_string='ezxmltext' AND\n                         ezcontentclass_attribute2.data_type_string='eztext'";
     $contentClassArray = $db->arrayQuery($query);
     $retArray = array();
     foreach ($contentClassArray as $contentClass) {
         $retArray[] = eZContentClass::fetch($contentClass['id']);
     }
     return $retArray;
 }
开发者ID:heliopsis,项目名称:ezsurvey,代码行数:11,代码来源:ezsurveywizard.php

示例9: className

 function className()
 {
     if ($this->ClassName === null) {
         $contentClass = eZContentClass::fetch($this->attribute('contentclass_id'));
         if (!$contentClass instanceof eZContentClass) {
             eZDebug::writeError('Unable to find eZContentClass #' . $this->attribute('contentclass_id'), __METHOD__);
             return null;
         }
         $this->ClassName = $contentClass->attribute('name');
     }
     return $this->ClassName;
 }
开发者ID:patrickallaert,项目名称:ezpublish-legacy-php7,代码行数:12,代码来源:ezwaituntildatevalue.php

示例10:

 function &classAttributes()
 {
     if (isset($this->ClassID) and $this->ClassID) {
         $contentClass = eZContentClass::fetch($this->ClassID);
         if ($contentClass) {
             $attributes = $contentClass->fetchAttributes();
         } else {
             $attributes = null;
         }
     } else {
         $attributes = null;
     }
     return $attributes;
 }
开发者ID:nfrp,项目名称:ezpublish,代码行数:14,代码来源:ezrssexportitem.php

示例11: getClassConstraintListAsArray

function getClassConstraintListAsArray($class_identifier = false, $contentclass_id = false, $debug = false)
{
    //todo debug
    if (!$contentclass_id && !$class_identifier) {
        return;
    }
    if ($contentclass_id && $class_identifier) {
        return;
    }
    $ezobjectrelationlist = eZContentClassAttribute::fetchFilteredList(array('data_type_string' => 'ezobjectrelationlist'));
    $return = array();
    if ($contentclass_id) {
        foreach ($ezobjectrelationlist as $attribute) {
            if ($attribute->attribute('contentclass_id') == $contentclass_id) {
                $attributeContent = $attribute->content();
                if (!empty($attributeContent['class_constraint_list'])) {
                    $return = array_merge($return, $attributeContent['class_constraint_list']);
                }
            }
        }
        if (!empty($return)) {
            return $return;
        } else {
            return false;
        }
    }
    if ($class_identifier) {
        foreach ($ezobjectrelationlist as $attribute) {
            $attributeContent = $attribute->content();
            if (!empty($attributeContent['class_constraint_list'])) {
                if (in_array($class_identifier, $attributeContent['class_constraint_list'])) {
                    $class = eZContentClass::fetch($attribute->attribute('contentclass_id'));
                    $classIdentifier = eZContentClass::classIdentifierByID($attribute->attribute('contentclass_id'));
                    $return[$classIdentifier][] = array('class_id' => $attribute->attribute('contentclass_id'), 'class_name' => $class->attribute('name'), 'attribute_identifier' => $attribute->attribute('identifier'), 'attribute_name' => $attribute->attribute('name'), 'class_constraint_list' => $attributeContent['class_constraint_list'], 'search_filter' => $classIdentifier . '/' . $attribute->attribute('identifier') . '/main_node_id');
                }
            }
        }
        //eZDebug::writeNotice( $return, __METHOD__ );
        if (!empty($return)) {
            return $return;
        } else {
            return false;
        }
    }
    return false;
}
开发者ID:Opencontent,项目名称:wrapoperator,代码行数:46,代码来源:getClassConstraintListAsArray.php

示例12: getFieldMapping

 /**
  * Retrieve mapping between content attribute css id and swarm attribute identifier
  *
  * @return array
  */
 public function getFieldMapping()
 {
     $siteIni = eZINI::instance('site.ini');
     $swarmIni = eZINI::instance('ezswarm.ini');
     $userAttribMapping = $swarmIni->variable('SwarmSettings', 'UserAttributeMapping');
     $userClassId = $siteIni->variable('UserSettings', 'UserClassID');
     $userAccountAttribute = $swarmIni->variable('SwarmSettings', 'UserAccountAttribute');
     $userClass = eZContentClass::fetch($userClassId);
     $userClassAttributes = $userClass->dataMap();
     $fieldMapping = array();
     $userAccountAttributeId = $userClassAttributes[$userAccountAttribute]->attribute('id');
     $fieldMapping["#ezcoa-" . $userAccountAttributeId . "_" . $userAccountAttribute . "_email"] = 'email';
     if ($siteIni->variable('UserSettings', 'RequireConfirmEmail') == 'true') {
         $fieldMapping["#ezcoa-" . $userAccountAttributeId . "_" . $userAccountAttribute . "_email_confirm"] = 'email';
     }
     foreach ($userAttribMapping as $attribIdentifier => $swarmField) {
         $attributeId = $userClassAttributes[$attribIdentifier]->attribute('id');
         $fieldMapping["#ezcoa-" . $attributeId . "_" . $attribIdentifier] = $swarmField;
     }
     return $fieldMapping;
 }
开发者ID:Novactive,项目名称:ezswarm,代码行数:26,代码来源:swarmapi.php

示例13: fetchOverrideTemplateList

 function fetchOverrideTemplateList($classID)
 {
     $class = eZContentClass::fetch($classID);
     $classIdentifier = $class->attribute('identifier');
     $result = array();
     $ini = eZINI::instance();
     $siteAccessArray = $ini->variable('SiteAccessSettings', 'AvailableSiteAccessList');
     foreach ($siteAccessArray as $siteAccess) {
         $overrides = eZTemplateDesignResource::overrideArray($siteAccess);
         foreach ($overrides as $override) {
             if (isset($override['custom_match'])) {
                 foreach ($override['custom_match'] as $customMatch) {
                     if (isset($customMatch['conditions']['class_identifier']) && $customMatch['conditions']['class_identifier'] == $classIdentifier) {
                         $result[] = array('siteaccess' => $siteAccess, 'block' => $customMatch['override_name'], 'source' => $override['template'], 'target' => $customMatch['match_file']);
                     }
                     if (isset($customMatch['conditions']['class']) && $customMatch['conditions']['class'] == $classID) {
                         $result[] = array('siteaccess' => $siteAccess, 'block' => $customMatch['override_name'], 'source' => $override['template'], 'target' => $customMatch['match_file']);
                     }
                 }
             }
         }
     }
     return array('result' => $result);
 }
开发者ID:EVE-Corp-Center,项目名称:ECC-Website,代码行数:24,代码来源:ezclassfunctioncollection.php

示例14: importRSSItem

function importRSSItem($item, $rssImport, $cli, $channel)
{
    $rssImportID = $rssImport->attribute('id');
    $rssOwnerID = $rssImport->attribute('object_owner_id');
    // Get owner user id
    $parentContentObjectTreeNode = eZContentObjectTreeNode::fetch($rssImport->attribute('destination_node_id'));
    // Get parent treenode object
    if ($parentContentObjectTreeNode == null) {
        $cli->output('RSSImport ' . $rssImport->attribute('name') . ': Destination tree node seems to be unavailable');
        return 0;
    }
    $parentContentObject = $parentContentObjectTreeNode->attribute('object');
    // Get parent content object
    $titleElement = $item->getElementsByTagName('title')->item(0);
    $title = is_object($titleElement) ? $titleElement->textContent : '';
    // Test for link or guid as unique identifier
    $link = $item->getElementsByTagName('link')->item(0);
    $guid = $item->getElementsByTagName('guid')->item(0);
    $rssId = '';
    if ($link->textContent) {
        $rssId = $link->textContent;
    } elseif ($guid->textContent) {
        $rssId = $guid->textContent;
    } else {
        $cli->output('RSSImport ' . $rssImport->attribute('name') . ': Item has no unique identifier. RSS guid or link missing.');
        return 0;
    }
    $md5Sum = md5($rssId);
    // Try to fetch RSSImport object with md5 sum matching link.
    $existingObject = eZPersistentObject::fetchObject(eZContentObject::definition(), null, array('remote_id' => 'RSSImport_' . $rssImportID . '_' . $md5Sum));
    // if object exists, continue to next import item
    if ($existingObject != null) {
        $cli->output('RSSImport ' . $rssImport->attribute('name') . ': Object ( ' . $existingObject->attribute('id') . ' ) with ID: "' . $rssId . '" already exists');
        unset($existingObject);
        // delete object to preserve memory
        return 0;
    }
    // Fetch class, and create ezcontentobject from it.
    $contentClass = eZContentClass::fetch($rssImport->attribute('class_id'));
    // Instantiate the object with user $rssOwnerID and use section id from parent. And store it.
    $contentObject = $contentClass->instantiate($rssOwnerID, $parentContentObject->attribute('section_id'));
    $db = eZDB::instance();
    $db->begin();
    $contentObject->store();
    $contentObjectID = $contentObject->attribute('id');
    // Create node assignment
    $nodeAssignment = eZNodeAssignment::create(array('contentobject_id' => $contentObjectID, 'contentobject_version' => $contentObject->attribute('current_version'), 'is_main' => 1, 'parent_node' => $parentContentObjectTreeNode->attribute('node_id')));
    $nodeAssignment->store();
    $version = $contentObject->version(1);
    $version->setAttribute('status', eZContentObjectVersion::STATUS_DRAFT);
    $version->store();
    // Get object attributes, and set their values and store them.
    $dataMap = $contentObject->dataMap();
    $importDescription = $rssImport->importDescription();
    // Set content object attribute values.
    $classAttributeList = $contentClass->fetchAttributes();
    foreach ($classAttributeList as $classAttribute) {
        $classAttributeID = $classAttribute->attribute('id');
        if (isset($importDescription['class_attributes'][$classAttributeID])) {
            if ($importDescription['class_attributes'][$classAttributeID] == '-1') {
                continue;
            }
            $importDescriptionArray = explode(' - ', $importDescription['class_attributes'][$classAttributeID]);
            if (count($importDescriptionArray) < 1) {
                $cli->output('RSSImport ' . $rssImport->attribute('name') . ': Invalid import definition. Please redit.');
                break;
            }
            $elementType = $importDescriptionArray[0];
            array_shift($importDescriptionArray);
            switch ($elementType) {
                case 'item':
                    setObjectAttributeValue($dataMap[$classAttribute->attribute('identifier')], recursiveFindRSSElementValue($importDescriptionArray, $item));
                    break;
                case 'channel':
                    setObjectAttributeValue($dataMap[$classAttribute->attribute('identifier')], recursiveFindRSSElementValue($importDescriptionArray, $channel));
                    break;
            }
        }
    }
    $contentObject->setAttribute('remote_id', 'RSSImport_' . $rssImportID . '_' . $md5Sum);
    $contentObject->store();
    $db->commit();
    // Publish new object. The user id is sent to make sure any workflow
    // requiring the user id has access to it.
    $operationResult = eZOperationHandler::execute('content', 'publish', array('object_id' => $contentObject->attribute('id'), 'version' => 1, 'user_id' => $rssOwnerID));
    if (!isset($operationResult['status']) || $operationResult['status'] != eZModuleOperationInfo::STATUS_CONTINUE) {
        if (isset($operationResult['result']) && isset($operationResult['result']['content'])) {
            $failReason = $operationResult['result']['content'];
        } else {
            $failReason = "unknown error";
        }
        $cli->error("Publishing failed: {$failReason}");
        unset($failReason);
    }
    $db->begin();
    unset($contentObject);
    unset($version);
    $contentObject = eZContentObject::fetch($contentObjectID);
    $version = $contentObject->attribute('current');
    // Set object Attributes like modified and published timestamps
//.........这里部分代码省略.........
开发者ID:nfrp,项目名称:ezpublish,代码行数:101,代码来源:rssimport.php

示例15: storeRSSExport

 static function storeRSSExport($Module, $http, $publish = false, $skipValuesID = null)
 {
     $valid = true;
     $validationErrors = array();
     /* Kill the RSS cache in all siteaccesses */
     $config = eZINI::instance('site.ini');
     $cacheDir = eZSys::cacheDirectory();
     $availableSiteAccessList = $config->variable('SiteAccessSettings', 'AvailableSiteAccessList');
     foreach ($availableSiteAccessList as $siteAccess) {
         $cacheFilePath = $cacheDir . '/rss/' . md5($siteAccess . $http->postVariable('Access_URL')) . '.xml';
         $cacheFile = eZClusterFileHandler::instance($cacheFilePath);
         if ($cacheFile->exists()) {
             $cacheFile->delete();
         }
     }
     $db = eZDB::instance();
     $db->begin();
     /* Create the new RSS feed */
     for ($itemCount = 0; $itemCount < $http->postVariable('Item_Count'); $itemCount++) {
         if ($skipValuesID == $http->postVariable('Item_ID_' . $itemCount)) {
             continue;
         }
         $rssExportItem = eZRSSExportItem::fetch($http->postVariable('Item_ID_' . $itemCount), true, eZRSSExport::STATUS_DRAFT);
         if ($rssExportItem == null) {
             continue;
         }
         // RSS is supposed to feed certain objects from the subnodes
         if ($http->hasPostVariable('Item_Subnodes_' . $itemCount)) {
             $rssExportItem->setAttribute('subnodes', 1);
         } else {
             $rssExportItem->setAttribute('subnodes', 0);
         }
         $rssExportItem->setAttribute('class_id', $http->postVariable('Item_Class_' . $itemCount));
         $class = eZContentClass::fetch($http->postVariable('Item_Class_' . $itemCount));
         $titleClassAttributeIdentifier = $http->postVariable('Item_Class_Attribute_Title_' . $itemCount);
         $descriptionClassAttributeIdentifier = $http->postVariable('Item_Class_Attribute_Description_' . $itemCount);
         $categoryClassAttributeIdentifier = $http->postVariable('Item_Class_Attribute_Category_' . $itemCount);
         if (!$class) {
             $validated = false;
             $validationErrors[] = ezpI18n::tr('kernel/rss/edit_export', 'Selected class does not exist');
         } else {
             $dataMap = $class->attribute('data_map');
             if (!isset($dataMap[$titleClassAttributeIdentifier])) {
                 $valid = false;
                 $validationErrors[] = ezpI18n::tr('kernel/rss/edit_export', 'Invalid selection for title class %1 does not have attribute "%2"', null, array($class->attribute('name'), $titleClassAttributeIdentifier));
             }
             if ($descriptionClassAttributeIdentifier != '' && !isset($dataMap[$descriptionClassAttributeIdentifier])) {
                 $valid = false;
                 $validationErrors[] = ezpI18n::tr('kernel/rss/edit_export', 'Invalid selection for description class %1 does not have attribute "%2"', null, array($class->attribute('name'), $descriptionClassAttributeIdentifier));
             }
             if ($categoryClassAttributeIdentifier != '' && !isset($dataMap[$categoryClassAttributeIdentifier])) {
                 $valid = false;
                 $validationErrors[] = ezpI18n::tr('kernel/rss/edit_export', 'Invalid selection for category class %1 does not have attribute "%2"', null, array($class->attribute('name'), $categoryClassAttributeIdentifier));
             }
         }
         $rssExportItem->setAttribute('title', $http->postVariable('Item_Class_Attribute_Title_' . $itemCount));
         $rssExportItem->setAttribute('description', $http->postVariable('Item_Class_Attribute_Description_' . $itemCount));
         $rssExportItem->setAttribute('category', $http->postVariable('Item_Class_Attribute_Category_' . $itemCount));
         if ($http->hasPostVariable('Item_Class_Attribute_Enclosure_' . $itemCount)) {
             $rssExportItem->setAttribute('enclosure', $http->postVariable('Item_Class_Attribute_Enclosure_' . $itemCount));
         }
         if ($publish && $valid) {
             $rssExportItem->setAttribute('status', eZRSSExport::STATUS_VALID);
             $rssExportItem->store();
             // delete drafts
             $rssExportItem->setAttribute('status', eZRSSExport::STATUS_DRAFT);
             $rssExportItem->remove();
         } else {
             $rssExportItem->store();
         }
     }
     $rssExport = eZRSSExport::fetch($http->postVariable('RSSExport_ID'), true, eZRSSExport::STATUS_DRAFT);
     $rssExport->setAttribute('title', $http->postVariable('title'));
     $rssExport->setAttribute('url', $http->postVariable('url'));
     // $rssExport->setAttribute( 'site_access', $http->postVariable( 'SiteAccess' ) );
     $rssExport->setAttribute('description', $http->postVariable('Description'));
     $rssExport->setAttribute('rss_version', $http->postVariable('RSSVersion'));
     $rssExport->setAttribute('number_of_objects', $http->postVariable('NumberOfObjects'));
     $rssExport->setAttribute('image_id', $http->postVariable('RSSImageID'));
     if ($http->hasPostVariable('active')) {
         $rssExport->setAttribute('active', 1);
     } else {
         $rssExport->setAttribute('active', 0);
     }
     $rssExport->setAttribute('access_url', str_replace(array('/', '?', '&', '>', '<'), '', $http->postVariable('Access_URL')));
     if ($http->hasPostVariable('MainNodeOnly')) {
         $rssExport->setAttribute('main_node_only', 1);
     } else {
         $rssExport->setAttribute('main_node_only', 0);
     }
     $published = false;
     if ($publish && $valid) {
         $rssExport->store(true);
         // remove draft
         $rssExport->remove();
         $published = true;
     } else {
         $rssExport->store();
     }
     $db->commit();
//.........这里部分代码省略.........
开发者ID:legende91,项目名称:ez,代码行数:101,代码来源:edit_functions.php


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