<sect2 id="config-LSobject-LSsearch">
  <title>LSsearch</title>
  <para>Cette section décrit la manière de paramétrer les recherches dans
  l'annuaire pour un type d'&LSobject; donné.</para>

<para>La configuration des <emphasis>LSsearch</emphasis> se situe dans la 
configuration des &LSobjects;, dans la variable <varname>LSsearch</varname>
(<emphasis>$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSsearch']</emphasis>).
<programlisting>
<citetitle>Structure</citetitle>
<![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSsearch'] = array (
  'attrs' => array(
    'attr1',
    'attr2',
    ...
  ),
  'params' => array(
    // Paramètres de la recherche
    'pattern' => '[string]',
    'sizelimit' => [integer],
    'recursive' => [boolean],
    'approx' => [boolean],
    'withoutCache' => [boolean],
    // Paramètres de tri
    'sortBy' => [displayName|subDn],
    'sortDirection' => [ASC|DESC],
    'sortlimit' => [integer],
    // Paramètre d'affichage
    'displayFormat' => [LSformat],
    'nbObjectsByPage' => [integer],
    'nbPageLinkByPage' => [integer]
  ),
  'predefinedFilters' => array(
    'filter1' => 'label filter1',
    'filter2' => 'label filter2'
  )
);]]>
</programlisting>

<variablelist>
<title>Paramètres de configuration</title>

<varlistentry>
  <term>attrs</term>
  <listitem>
    <para>Tableau listant les attributs pouvant être utilisés dans les filtres
    de recherche LDAP employés par &LdapSaisie;. Lorsqu'un motif de recherche est
    passé par l'utilisateur, &LdapSaisie; composera un filtre LDAP à partir de
    cette liste.</para>
    <para>Lors d'une recherche non-approximative, le filtre de recherche sera
    composé de la manière suivante :
    <programlisting>(|(attr1=*motif*)(attr2=*motif*)...)</programlisting></para>
    <para>Lors d'une recherche approximative, le filtre de recherche sera
    composé de la manière suivante :
    <programlisting>(|(attr1=~motif)(attr2~=motif)...)</programlisting></para>
    <important><simpara>Ces filtres, une fois composés, sont insérés dans un autre,
    filtrant en plus sur les <emphasis>ObjectClass</emphasis> du type
    d'&LSobject; de la manière suivante :</simpara>
    <programlisting><![CDATA[(& (&(objectclass=oc1)(objectclass=oc2)) (filtre) )]]></programlisting></important>
  </listitem>
</varlistentry>

<varlistentry>
  <term>params</term>
  <listitem>
    <para>Tableau des paramètres par défaut d'une recherche. Ce tableau contient
les paramètres qui seront utilisés pour initialisé une recherche. Ces paramètres
pourront être redéfini par l'utilisateur ou par l'application en fonction du
contexte dans lequel cette recherche est effectuée.</para>
    
    <variablelist>
    <title>Paramètres de configuration</title>
    
<varlistentry>
  <term>pattern</term>
  <listitem>
    <simpara>Mot clé de la recherche.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>sizelimit</term>
  <listitem>
    <simpara>Entier determinant le nombre maximum d'objet pouvant être retournés dans
    une recherche.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>recursive</term>
  <listitem>
    <simpara>Booléen déterminant si la recherche récursive est activée.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>approx</term>
  <listitem>
    <simpara>Booléen déterminant si la recherche approximative est activée.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>withoutCache</term>
  <listitem>
    <simpara>Booléen déterminant si le cache de recherche doit être utilisé.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>sortBy</term>
  <listitem>
    <simpara>Mot clé déterminant sur quel valeur/colonne le résultat de recherche
    sera trié.</simpara>
    <simpara>Valeurs possibles : <literal>displayName</literal>, <literal>subDn</literal> ou  <literal>NULL</literal>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>sortDirection</term>
  <listitem>
    <simpara>Mot clé déterminant le sens du trie du résultat de la recherche.</simpara>
    <simpara>Valeurs possibles : <literal>ASC</literal>, <literal>DESC</literal> ou  <literal>NULL</literal>.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>sortlimit</term>
  <listitem>
    <simpara>Entier determinant le nombre maximum d'objet pouvant être triés dans
    le résultat d'une recherche.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>displayFormat</term>
  <listitem>
    <simpara>&LSformat; d'affichage du nom de l'objet dans le résultat de la recherche.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>nbObjectsByPage</term>
  <listitem>
    <simpara>Entier déterminant le nombre d'objet maximum affichés dans une page
    de résultat de la recherche.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>nbPageLinkByPage</term>
  <listitem>
    <simpara>Entier déterminant le nombre maximum de liens vers d'autres pages
    affichés sous le résultat de la recherche.</simpara>
    <simpara>Par défaut : <literal>10</literal></simpara>
  </listitem>
</varlistentry>

    </variablelist>
    
  </listitem>
</varlistentry>

<varlistentry>
  <term>predefinedFilters</term>
  <listitem>
    <para>Tableau associatif contenant des filtres prédéfinis pour la recherche.
    Les clés sont les filtres au format LDAP et les valeurs sont les labels associés.</para>
  </listitem>
</varlistentry> 

</variablelist>
</para>

</sect2>