static function fetchAttributes( $version, $contentObjectID, $language = false, $asObject = true ) { $db = eZDB::instance(); $language = $db->escapeString( $language ); $contentObjectID = (int) $contentObjectID; $version =(int) $version; $query = "SELECT ezcontentobject_attribute.*, ezcontentclass_attribute.identifier as classattribute_identifier, ezcontentclass_attribute.can_translate, ezcontentclass_attribute.serialized_name_list as attribute_serialized_name_list FROM ezcontentobject_attribute, ezcontentclass_attribute, ezcontentobject_version WHERE ezcontentclass_attribute.version = '0' AND ezcontentclass_attribute.id = ezcontentobject_attribute.contentclassattribute_id AND ezcontentobject_attribute.version = '$version' AND ezcontentobject_attribute.contentobject_id = '$contentObjectID' AND ezcontentobject_version.contentobject_id = '$contentObjectID' AND ezcontentobject_version.version = '$version' AND ". ( ( $language )? "ezcontentobject_attribute.language_code = '$language'": eZContentLanguage::sqlFilter( 'ezcontentobject_attribute', 'ezcontentobject_version' ) ). " ORDER by ezcontentclass_attribute.placement ASC"; $attributeArray = $db->arrayQuery( $query ); $returnAttributeArray = array(); foreach ( $attributeArray as $attribute ) { $attr = new eZContentObjectAttribute( $attribute ); $attr->setContentClassAttributeIdentifier( $attribute['classattribute_identifier'] ); $dataType = $attr->dataType(); if ( is_object( $dataType ) && $dataType->Attributes["properties"]["translation_allowed"] && $attribute['can_translate'] ) $attr->setContentClassAttributeCanTranslate( 1 ); else $attr->setContentClassAttributeCanTranslate( 0 ); $attr->setContentClassAttributeName( eZContentClassAttribute::nameFromSerializedString( $attribute['attribute_serialized_name_list'] ) ); $returnAttributeArray[] = $attr; } return $returnAttributeArray; }