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(); }