<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id='config-LSobject'>
  <title>Configuration LSobject</title>
  <para>
    Cette partie décrit la manière de configurer les différents types de LSobjets
    manipulés par &LdapSaisie;.
  </para>
  
  <para>La configuration des &LSobjects; est stockée dans le dossier <emphasis>
  /conf/LSobjects</emphasis>. Dans ce dossier, on retrouve un fichier par type 
  d'&LSobject;, nommé de la manière suivante :
  <programlisting>config.LSobjects.[nom du type d'LSobject].php</programlisting>
  
  Ce fichier contient la déclaration de la configuration du type d'&LSobject;
  qui est stocké dans la variable globale 
  <varname>$GLOBALS['LSobjects']['[nom du type d'LSobject]']</varname>.
  </para>
  
  <programlisting linenumbering="unnumbered">
<citetitle>Structure</citetitle>...
<![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]'] = array (
  'objectclass' => array(
    'objetclass1',
    'objetclass2',
    ...
  ),
  'filter' => '[filtre LDAP]',

  'rdn' => 'attr1',

  'LSaddons' => [LSaddon(s)],
  
  'container_dn' => 'ou=people',
  'generate_container_dn' => '[callable]',
  'container_auto_create' => array(
    // Information des configurations pour la création du conteneur du type d'LSobjet
    // lors de la création nouveau subDn
  ),

  'disable_creation' => [boolean]',
  
  'before_modify' => 'function1',
  'after_modify' => 'function2',
  'after_create' => 'function3',
  'after_delete' => 'function4',
  
  'label' => 'objet1',  
  'display_name_format' => '[format]',
  'displayAttrName' => '[booleen]',

  //Custom Actions
  'customActions' => array (
    // Configuration des customActions pour ce type d'objet
  ),
  
  // LSrelation
  'LSrelation' => array(
    // Configuration des LSrelations entre ce type d'objet et les autres
  ),
  
  // LSform
  'LSform' => array (
    // Configuration des formulaires de l'objet
  ), // fin LSform
  
  // LSsearch
  'LSsearch' => array (
    // Configuration des recherches de l'objet
  ), // fin LSsearch

  'globalSearch' => [booleen],

  // ioFormat
  'ioFormat' => array (
    // Configuration des formats d'import/export de l'objet
  ),
  
  // Attributs
  'attrs' => array (
    // Configuration des attributs du type d'LSobjet
  )
);]]>
...
</programlisting>
  
<variablelist>
<title>Paramètres de configuration</title>

<varlistentry>
  <term>objectclass</term>
  <listitem>
    <simpara>La liste des <emphasis>objectclass</emphasis> des objets.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>filter</term>
  <listitem>
    <simpara>Filtre de recherche LDAP applicable à tout les objets de ce type et
    qui sera utilisé lors de chaque recherche de ce type d'objet.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>rdn</term>
  <listitem>
    <simpara>Nom de l'attribut correspondant au <emphasis>RDN</emphasis> des
    objets LDAP.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LSaddons</term>
  <listitem>
    <simpara>LSaddon(s) dont le type d'objet dépend. Ce peut être un tableau de chaînes de
    caractères ou une simpe chaîne de caractères correspondant au(x) nom(s) du/des LSaddon(s)
    en dépendance.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>container_dn</term>
  <listitem>
    <simpara>Elément pour construire le <emphasis>basedn</emphasis> de stockage
    de ce type d'objet. Par exemple, si le <emphasis>basedn</emphasis> de 
    l'annuaire est <literal>o=ls</literal> et que les objets
    <emphasis>utilisateurs</emphasis> sont stockés dans la branche de l'annuaire
    <literal>ou=people,o=ls</literal>, alors <parameter>container_dn</parameter>
    devra valoir <literal>ou=people</literal>.</simpara>
    <remark>Lorsque l'annuaire possède des &subDn;, les objets seront cherchés
    dans le <emphasis>basedn</emphasis> résultant de la concaténation du paramètre
    <parameter>container_dn</parameter>, d'une virgule et du 
    <emphasis>basedn</emphasis> correspondant au &subDn; courant.</remark>
  </listitem>
</varlistentry>

<varlistentry>
  <term>generate_container_dn</term>
  <listitem>
    <simpara><emphasis>Callable</emphasis> (au sens PHP), utilisé pour générer la
    valeur du paramètre <literal>container_dn</literal> dynamiquement. Ce <emphasis>
    callable</emphasis> prend en paramètre l'objet &LSobject; à créer et retourne
    la valeur du paramètre <literal>container_dn</literal>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>container_auto_create</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    nécessaires à la création des <parameter>container_dn</parameter> dans les
    nouveaux objets utilisés comme &subDn;. 
    <link linkend="config-LSobject-container_auto_create">Voir la section
    concernée</link>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>disable_creation</term>
  <listitem>
    <simpara>Booléen permetant de desactiver la creation de ce type d'objet de
    manière globale.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>before_modify</term>
  <listitem>
    <simpara>Chaîne de caractères correspondant au nom d'une fonction qui sera
    exécutée avant la modification d'un objet.
    <link linkend="config-LSobject-triggers">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>after_modify</term>
  <listitem>
    <simpara>Chaîne de caractères correspondant au nom d'une fonction qui sera
    exécutée après la modification d'un objet.
    <link linkend="config-LSobject-triggers">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>after_create</term>
  <listitem>
    <simpara>Chaîne de caractères correspondant au nom d'une fonction qui sera
    exécutée après la création d'un objet.
    <link linkend="config-LSobject-triggers">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>after_delete</term>
  <listitem>
    <simpara>Chaîne de caractères correspondant au nom d'une fonction qui sera
    exécutée après la suppression d'un objet.
    <link linkend="config-LSobject-triggers">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>label</term>
  <listitem>
    <simpara>Nom générique au pluriel qualifiant le type d'objet. Exemple : 
    <emphasis>Utilisateurs</emphasis>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>display_name_format</term>
  <listitem>
    <simpara><link linkend="config-LSformat">Format paramètrable</link> du nom
    des objets composés à partir des valeurs d'affichage des attributs de l'objet.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>displayAttrName</term>
  <listitem>
    <simpara>Booléen définissant si le nom des attributs doit être affiché en
    préfixe de leur message d'aide (paramètre <parameter>help_info</parameter>).</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>customActions</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des &customActions;. <link linkend="config-LSobject-customActions">Voir la section
    concernée</link>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LSrelation</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des &LSrelations;. <link linkend="config-LSobject-LSrelation">Voir la section
    concernée</link>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LSform</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des &LSforms; des &LSobjects;. <link linkend="config-LSobject-LSform">Voir
    la section concernée</link>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LSsearch</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des recherches de &LSobject; de ce type dans l'annuaire.
    <link linkend="config-LSobject-LSsearch">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>globalSearch</term>
  <listitem>
    <simpara>Inclure ou non ce type d'objet dans le résultat des recherches globales
    (Par défaut : <literal>True</literal>).</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>ioFormat</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des formats de fichiers d'import/export de ce type d'&LSobject;.
    <link linkend="config-LSobject-ioFormat">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>attrs</term>
  <listitem>
    <simpara>Tableau associatif contenant les paramètres de configuration
    des attributs des objets. <link linkend="config-LSattribute">Voir
    la section concernée</link>.</simpara>
  </listitem>
</varlistentry>

</variablelist>

  &conf-LSattribute;
  &conf-LSobject-container_auto_create;
  &conf-LSobject-triggers;
  &conf-LSobject-customActions;
  &conf-LSobject-LSrelation;
  &conf-LSobject-LSform;
  &conf-LSobject-LSsearch;
  &config-LSobject-ioFormat;

</sect1>