示例#1
0
    function attributeDecoder( $event, $attr )
    {
        switch ( $attr )
        {
            case 'selected_sections':
            {
                $attributeValue = trim( $event->attribute( 'data_text1' ) );
                $returnValue = empty( $attributeValue ) ? array( -1 ) : explode( ',', $attributeValue );
            }break;

            case 'approve_users':
            {
                $attributeValue = trim( $event->attribute( 'data_text3' ) );
                $returnValue = empty( $attributeValue ) ? array() : explode( ',', $attributeValue );
            }break;

            case 'approve_groups':
            {
                $attributeValue = trim( $event->attribute( 'data_text4' ) );
                $returnValue = empty( $attributeValue ) ? array() : explode( ',', $attributeValue );
            }break;

            case 'selected_usergroups':
            {
                $attributeValue = trim( $event->attribute( 'data_text2' ) );
                $returnValue = empty( $attributeValue ) ? array() : explode( ',', $attributeValue );
            }break;

            case 'language_list':
            {
                $returnValue = array();
                $attributeValue = $event->attribute( 'data_int2' );
                if ( $attributeValue != 0 )
                {
                    $languages = eZContentLanguage::languagesByMask( $attributeValue );
                    foreach ( $languages as $language )
                    {
                        $returnValue[$language->attribute( 'id' )] = $language->attribute( 'name' );
                    }
                }
            }break;

            case 'version_option':
            {
                $returnValue = eZApproveType::VERSION_OPTION_ALL & $event->attribute( 'data_int3' );
            }break;

            default:
                $returnValue = null;
        }
        return $returnValue;
    }
 /**
  * @return eZContentLanguage[]|array
  */
 function allLanguages()
 {
     $languages = isset( $this->LanguageMask ) ? eZContentLanguage::languagesByMask( $this->LanguageMask ) : array();
     return $languages;
 }
 public static function copyTranslations($objectID, $versionNum)
 {
     $object = eZContentObject::fetch($objectID);
     $publishedVersionNum = $object->attribute('current_version');
     if (!$publishedVersionNum) {
         return;
     }
     $publishedVersion = $object->version($publishedVersionNum);
     $publishedVersionTranslations = $publishedVersion->translations();
     $publishedLanguages = eZContentLanguage::languagesByMask($object->attribute('language_mask'));
     $publishedLanguageCodes = array_keys($publishedLanguages);
     $version = $object->version($versionNum);
     $versionTranslationList = $version->translationList(false, false);
     foreach ($publishedVersionTranslations as $translation) {
         if (in_array($translation->attribute('language_code'), $versionTranslationList) || !in_array($translation->attribute('language_code'), $publishedLanguageCodes)) {
             continue;
         }
         $contentObjectAttributes = $translation->objectAttributes();
         foreach ($contentObjectAttributes as $attribute) {
             $clonedAttribute = $attribute->cloneContentObjectAttribute($versionNum, $publishedVersionNum, $objectID);
             $clonedAttribute->sync();
         }
     }
     $version->updateLanguageMask();
 }
 public static function copyTranslations($objectID, $versionNum)
 {
     $object = eZContentObject::fetch($objectID);
     if (!$object instanceof eZContentObject) {
         return array('status' => eZModuleOperationInfo::STATUS_CANCELLED);
     }
     $publishedVersionNum = $object->attribute('current_version');
     if (!$publishedVersionNum) {
         return;
     }
     $publishedVersion = $object->version($publishedVersionNum);
     $publishedVersionTranslations = $publishedVersion->translations();
     $publishedLanguages = eZContentLanguage::languagesByMask($object->attribute('language_mask'));
     $publishedLanguageCodes = array_keys($publishedLanguages);
     $version = $object->version($versionNum);
     $versionTranslationList = array_keys(eZContentLanguage::languagesByMask($version->attribute('language_mask')));
     foreach ($publishedVersionTranslations as $translation) {
         $translationLanguageCode = $translation->attribute('language_code');
         if (in_array($translationLanguageCode, $versionTranslationList) || !in_array($translationLanguageCode, $publishedLanguageCodes)) {
             continue;
         }
         foreach ($translation->objectAttributes() as $attribute) {
             $clonedAttribute = $attribute->cloneContentObjectAttribute($versionNum, $publishedVersionNum, $objectID);
             $clonedAttribute->sync();
         }
     }
     $version->updateLanguageMask();
 }