eZContentOperationCollection::setObjectStatusPublished PHP Method

setObjectStatusPublished() public static method

public static setObjectStatusPublished ( $objectID, $versionNum )
    public static function setObjectStatusPublished($objectID, $versionNum)
    {
        $object = eZContentObject::fetch($objectID);
        $version = $object->version($versionNum);
        $db = eZDB::instance();
        $db->begin();
        $object->setAttribute('status', eZContentObject::STATUS_PUBLISHED);
        $version->setAttribute('status', eZContentObjectVersion::STATUS_PUBLISHED);
        $object->setAttribute('current_version', $versionNum);
        $objectIsAlwaysAvailable = $object->isAlwaysAvailable();
        $object->setAttribute('language_mask', eZContentLanguage::maskByLocale($version->translationList(false, false), $objectIsAlwaysAvailable));
        if ($object->attribute('published') == 0) {
            $object->setAttribute('published', time());
        }
        $object->setAttribute('modified', time());
        $classID = $object->attribute('contentclass_id');
        $class = eZContentClass::fetch($classID);
        $objectName = $class->contentObjectName($object);
        $object->setName($objectName, $versionNum);
        $existingTranslations = $version->translations(false);
        foreach ($existingTranslations as $translation) {
            $translatedName = $class->contentObjectName($object, $versionNum, $translation);
            $object->setName($translatedName, $versionNum, $translation);
        }
        if ($objectIsAlwaysAvailable) {
            $initialLanguageID = $object->attribute('initial_language_id');
            $object->setAlwaysAvailableLanguageID($initialLanguageID);
        }
        $version->store();
        $object->store();
        eZContentObjectTreeNode::setVersionByObjectID($objectID, $versionNum);
        $nodes = $object->assignedNodes();
        foreach ($nodes as $node) {
            $node->setName($object->attribute('name'));
            $node->updateSubTreePath();
        }
        $db->commit();
        /* Check if current class is the user class, and if so, clean up the user-policy cache */
        if (in_array($classID, eZUser::contentClassIDs())) {
            eZUser::purgeUserCacheByUserId($object->attribute('id'));
        }
    }