function storeObjectAttribute($attribute) { if ($attribute->ID === null) { eZPersistentObject::storeObject($attribute); } $meta = $attribute->content(); $xmlString = self::saveXML($meta); $attribute->setAttribute('data_text', $xmlString); // save keywords $keyword = new eZKeyword(); $keyword->setKeywordArray($meta->keywords); $keyword->store($attribute); }
/** * @param $dataMap : le tableau associatif des attributs d'un objet eZ (tableau d'objets de classe eZContentObjectAttribute) * @param $attributes : un tableau associatif des attributs à initialiser \ * (clé : attribute_id ; valeur : chaine de caractères utilisé comme paramètre de la méthode 'eZDataType::fromString()') * * @return void * */ private static function setDataMapInfos( $dataMap, $attributes ) { foreach ( $attributes as $key=>$value ) { if ( isset( $dataMap[strtolower($key)] ) ) { $contentObjectAttribute = $dataMap[strtolower( $key )]; switch ( $contentObjectAttribute->DataTypeString ) { case 'ezkeyword': // cas particulier ezkeyword : contournement bug sur le datatype dans le cas où les mots clés sont vides $keyword = new eZKeyword(); if ( empty( $value ) ) { $keyword->setKeywordArray( array() ); } else { $keyword->initializeKeyword( $value ); } $contentObjectAttribute->setContent( $keyword ); break; default: $eZType = eZDataType::create( $contentObjectAttribute->DataTypeString ); $eZType->fromString( $contentObjectAttribute,$value ); break; } $contentObjectAttribute->store(); } } }