<sect2 id="config-LSobject-ioFormat"> <title>ioFormat</title> <para>Cette section décrit la manière de paramétrer les formats d'import/export pour un type d'&LSobject; donné.</para> <para>La configuration des <emphasis>ioFormats</emphasis> se situe dans la configuration des &LSobjects;, dans la variable <varname>ioFormat</varname> (<emphasis>$GLOBALS['LSobjects']['[nom du type d'LSobject]']['ioFormat']</emphasis>). Cette variable est un tableau associatif dont la clé est l'identifiant du format et dont la valeur associée est la configuration du format. <important><para>Le moteur d'importation simule la validation d'un formulaire de création du type d'&LSobject;. En conséquence : <itemizedlist> <listitem><simpara>seul les attributs présent dans le formulaire de création peuvent être importés.</simpara></listitem> <listitem><simpara>tous les attributs obligatoires présents dans le formulaire de création doivent être fournis par le fichier source ou générer à partir des autres attributs.</simpara></listitem> <listitem><simpara>Les valeurs des attributs issus de l'importation seront vue comme des valeurs retournées par le formulaire et non comme des valeurs des attribus LDAP eux-même. Ainsi et par exemple, un attribut traité comme un booléen dans un formulaire pourra prendre comme valeur par défaut <literal>yes</literal> ou <literal>no</literal>. </simpara></listitem> </itemizedlist> </para></important> <programlisting> <citetitle>Structure</citetitle> <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['ioFormat'] = array ( '[ioFormat ID]' => array ( 'label' => '[Label du type de fichier]', 'driver' => '[Pilote d'ioFormat utilisé]', 'driver_options' => array([Options du pilote d'ioFormat utilisé]), 'fields => array ( '[champ 1]' => '[attribut 1]', '[champ 2]' => '[attribut 2]', [...] ), 'generated_fields' => array ( '[attribute 3]' => '[LSformat]', '[attribute 4]' => '[LSformat]', [...] ) ), [...] );]]> </programlisting> <variablelist> <title>Paramètres de configuration</title> <varlistentry> <term>label</term> <listitem> <simpara>Le label du format</simpara> </listitem> </varlistentry> <varlistentry> <term>driver</term> <listitem> <simpara>Le pilote a utilisé pour ce format. Le pilote permet de gérér la lecture et l'écriture dans un type de fichier d'import/export. Pour plus d'information sur les pilotes disponibles, <link linkend='config-LSobject-ioFormat-drivers'>Voir la section concernée.</link></simpara> </listitem> </varlistentry> <varlistentry> <term>driver_options</term> <listitem> <simpara>Tableau associatif des options du pilote utilisé pour ce format. Pour plus d'informations, consulter la documentation du pilote utilisé.</simpara> </listitem> </varlistentry> <varlistentry> <term>fields</term> <listitem> <simpara>Tableau associatif permettant d'associer un champ du fichier source (la clé) avec attribut de l'objet LDAP (la valeur).</simpara> </listitem> </varlistentry> <varlistentry> <term>generated_fields</term> <listitem> <simpara>Tableau associatif permettant de définir des &LSformats; pour générer des valeurs d'attributs automatiquement. Ce tableau contient en clé, le nom de l'attribut à généré, et en valeur associée, le &LSformat; à utilisé. Ce &LSformat; est composé à l'aide des valeurs des autres attributs de l'objet.</simpara> </listitem> </varlistentry> </variablelist> </para> <sect3 id="config-LSobject-ioFormat-drivers"> <title>Pilote d'ioFormat</title> <para>Cette section décrit la manière de configurer les pilotes d'ioFormat utilisés lors des imports/exports d'&LSobjects;.</para> <sect4 id="config-LSobject-ioFormat-drivers-CSV"> <title>Pilote de fichiers CSV</title> <para>Ce pilote permet de gérer l'import/export de &LSobject; à partir d'un fichier <literal>CSV</literal>. Ce pilote utilise la classe PEAR <application> <ulink url='http://pear.php.net/package/File_CSV_DataSource'>File_CSV_DataSource </ulink></application>. Par défaut, les paramètres de lecture et d'écriture des fichiers sont : la virgule sert de délimiteur, le caractère <literal>"</literal> peut être utilisé pour encadrer les valeurs des champs et la longueur maximale d'une ligne est 999999. Ces paramètres peuvent être modifiés en configurant les options du pilote. <programlisting> <citetitle>Structure</citetitle> <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['ioFormat']['[ID ioFormat]']['driver_options'] = array ( 'delimiter' => '[délimiteur]', 'length' => [longueur maximale d'une ligne], 'escape' => '[caratère d'encadrement]' );]]> </programlisting> <variablelist> <title>Paramètres de configuration</title> <varlistentry> <term>delimiter</term> <listitem> <simpara>Le caractère utilisé pour délimiter les champs (Par défault, une virgule).</simpara> </listitem> </varlistentry> <varlistentry> <term>length</term> <listitem> <simpara>La longueur maximale d'une ligne du fichier. Si zéro est spécifié, la longueur d'une ligne ne sera pas limité, mais la lecture du fichier sera ralenti. (Par défaut : <literal>999999 </literal>) </simpara> </listitem> </varlistentry> <varlistentry> <term>escape</term> <listitem> <simpara>Le caractère utilisé pour encadrer les valeurs des champs (Par défault : <literal>"</literal>).</simpara> </listitem> </varlistentry> </variablelist> </para> </sect4> </sect3> </sect2>