Ejemplo n.º 1
0
 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();
			}
		}
	}