Subversion Repositories Sites.tela-botanica.org

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: FRAG_fragmenteur.fonct.php,v 1.6 2005/02/23 17:28:35 jpm Exp $
23
/**
24
* API : fragmenteur.
25
*
26
* Cette librairie contient les fonctions :
27
* - UnstoreTransTab()
28
* - AffTxtNbRes()
29
* - rechercheAlphabet()
30
*
31
*@package API
32
*@subpackage Framenteur
33
//Auteur original :
34
*@author        Jean-Charles GRANGER <tela@vecteur.org>
35
//Autres auteurs :
36
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
37
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
38
*@copyright     Tela-Botanica 2000-2004
39
*@version       $Revision: 1.6 $ $Date: 2005/02/23 17:28:35 $
40
// +------------------------------------------------------------------------------------------------------+
41
*/
42
 
43
// +------------------------------------------------------------------------------------------------------+
44
// |                                            ENTETE du PROGRAMME                                       |
45
// +------------------------------------------------------------------------------------------------------+
46
                                    /*Mettre ici les inclusions de fichiers*/
47
 
48
include_once 'FRAG_Fragmenteur.class.php';
49
 
50
// Compatibilité avec les anciennes versions :
51
function UnstoreTransTab($chaine)
52
{
53
    return FRAG_decoupageChaine($chaine);
54
}
55
function AffTxtNbRes($modele, $tableau, $nb_query_ltd, $nbre_total)
56
{
57
    return FRAG_afficherTxtNbreResultat($modele, $tableau, $nb_query_ltd, $nbre_total);
58
}
59
function rechercheAlphabet( $requete, $baseURL, $paramURL = '', $affichageResultAvt = '', $affichageResultAps = '',
60
                            $tablo_formatLigne = array(), $tablo_formatResultat = array(), $messageErreur = '', $fragmenteur = array())
61
{
62
    return FRAG_rechercherAvecAlphabet( $requete, $baseURL, $paramURL, $affichageResultAvt, $affichageResultAps,
63
                                        $tablo_formatLigne, $tablo_formatResultat, $messageErreur, $fragmenteur);
64
}
65
// +------------------------------------------------------------------------------------------------------+
66
// |                                         LISTE des FONCTIONS                                          |
67
// +------------------------------------------------------------------------------------------------------+
68
                                        /*Mettre ici la liste de fonctions.*/
69
 
70
/**Fonction FRAG_afficherTxtNbreResultat() - Affiche un texte formaté.
71
*
72
* Permet de créer un petit texte uniforme du type "il y a x resultats sur y"...
73
* Possibilité de paramétrer un "modèle" pour afficher selon différentes mises
74
* en forme.
75
*
76
* @param string nom du modèle utilisé (vide = modèle par défaut).
77
* @param array tableau de résultats
78
* - $tableau['pstart'] : valeur du premier item (ex. : pages de 20 items, la 2è page commence au 21è, $tableau['pstart'] = 20)
79
* - $tableau['pend'] : valeur du dernier item (nombre total d'items retournés par la requête, sans clause LIMIT
80
* - $tableau['step'] : pas de regroupement (x items par page)
81
* @param integer nombre d'items trouvés par la requête, avec clause LIMIT
82
* @param integer nombre total d'items dans la Base
83
*
84
* @return string la chaine formatée.
85
*/
86
function FRAG_afficherTxtNbreResultat($modele, $tableau, $nb_query_ltd, $nb_total)
87
{
88
    // Initialisation de $var_affiche
89
    $var_affiche = '';
90
 
91
    if ($nb_query_ltd > 1) {
92
        $pluriel_loc = 's';
93
    } else {
94
        $pluriel_loc = '';
95
    }
96
 
97
    if ($nb_total > 1) {
98
        $pluriel_tot = 's';
99
    } else {
100
        $pluriel_tot = '';
101
    }
102
 
103
    if ($tableau['pend'] > 0) {
104
        $add_from = $tableau['pstart'] + 1;
105
        $tmp_num = $tableau['pstart'] + $tableau['step'];
106
        if ($tmp_num < $tableau['pend']) {
107
            $add_to = $tmp_num;
108
        } else {
109
            $add_to = $tableau['pend'];
110
        }
111
    }
112
 
113
    switch ($modele) {
114
        case 'synth':
115
            $var_affiche .= '<strong>'.$nb_total.'</strong>'.' synthèse'.$pluriel_tot.' trouvée'.$pluriel_tot.'.';
116
            if ($tableau['pend'] > 0) {
117
                $var_affiche .= ' Affichage des synthèses '.$add_from.' à '.$add_to.'.';
118
            }
119
        break;
120
        case 'bbpopup':
121
            $feminin = '';
122
            if ($tableau['feminin'] == 1) {
123
                $feminin = 'e';
124
            }
125
 
126
            $var_affiche .= '<strong>'.$nb_total.'</strong>'.' '.$tableau['libelle'].$pluriel_tot.' trouvé'.$feminin.$pluriel_tot.'.';
127
            if ($tableau['pend'] > 0) {
128
                $var_affiche .= ' Affichage des éléments '.$add_from.' à '.$add_to.'.';
129
            }
130
        break;
131
        // Mise en forme par défaut :
132
        default:
133
            if ($tableau['pend'] > 0) {
134
                $var_affiche .= ' Affichage des données <strong>'.$add_from.'</strong> à <strong>'.$add_to.'</strong>'."\n";
135
            }
136
            $var_affiche .= ' parmi '.'<strong>'.$tableau['pend'].'</strong>'.' résultat'.$pluriel_loc.'.'."\n";
137
        break;
138
    }
139
    return $var_affiche;
140
}
141
 
142
/**Fonction FRAG_decoupageChaine() - Découpe une chaine.
143
*
144
* Cette fonction permet de découper la variable de tranfert $chaine et de réaffecter dans un tableau
145
* les valeurs et les index.
146
*
147
* @param string chaine à désérialiser.
148
*
149
* @return array le tableau contenant les index et les valeurs de la chaine.
150
*/
151
function FRAG_decoupageChaine($chaine)
152
{
153
    $chaine = eregi_replace('{', ' ', $chaine);
154
    $tableau_transfert = explode('!', $chaine);
155
 
156
    foreach ($tableau_transfert as $objet) {
157
        $objet_decoupe = explode(',', $objet);
158
        $objet_decoupe_1 = $objet_decoupe[0];
159
        if ((!empty($objet_decoupe_1)) && (!empty($objet_decoupe[1]))) {
160
            $tableau_retour[$objet_decoupe_1] = $objet_decoupe[1];
161
        }
162
    }
163
    return $tableau_retour;
164
}
165
 
166
/**
167
//==================================== FUNCTION ==================================
168
* La fonction rechercheAlphabet() renvoie une liste alphabétique.
169
*
170
*Cette fonction retourne une liste alphabétique et un tableau html contenant les résultats
171
*d'une requête sql pour une lettre de l'alphabet donnée.
172
*Quand on clique sur une lettre de la liste alphabétique la page est rechargée et la
173
*fonction renvoie la liste et le tableau de résultat correspondant à la requête sql
174
*avec la lettre de l'alphabet sélectionnée.
175
* Elle nécéssite l'inclusion du fichier lib.form.php
176
*
177
*Le tableau associatif de formatage des lignes:
178
*-clé "Class_pair":    contient le nom d'une classe css à utiliser pour le
179
*                       formatage des lignes de résultats paires.
180
*-clé "Class_impair":  contient le nom d'une classe css à utiliser pour le
181
*                       formatage des lignes de résultats impaires.
182
*-clé "Style_pair":     contient les syles à utiliser pour le
183
*                       formatage des lignes de résultats paires.
184
*-clé "Style_impair":   contient les syles à utiliser pour le
185
*                       formatage des lignes de résultats impaires.
186
*-clé "Couleur_pair":   la valeur héxadécimale de la couleur des lignes
187
*                       paires du tableau de résultats.
188
*-clé "Couleur_impair": la valeur héxadécimale de la couleur des lignes
189
*                       impaires du tableau de résultats.
190
*                       Il est conseillé d'utilser les styles ou les
191
*                       classes pour gérer la couleur.
192
*
193
*Le tableau associatif de formatage des résultats:
194
*Nous stockons des tableaux associatifs dans le tableau de formatage.
195
*Chaque ligne du tableau de formatage correspond à une colone, on doit
196
*les entrer dans l'orde d'affichage.
197
*-clé "Col_nom": chaine le nom du champ de la requête sql à afficher.
198
*-clé "Col_width": entier largeur de la colone
199
*-clé "Col_class": chaine nom de la classe css de la colone.
200
*-clé "Col_lien_href": chaine l'url de base pour créer un lien sur la colone.
201
*-clé "Col_lien_href_param": chaine nom du champ dans la requete SQL servant à compléter l'url.
202
*-clé "Col_lien_target": chaine la valeur de l'attribut 'target'du lien.
203
*-clé "Col_lien_class": chaine la valeur de l'attribut 'class'du lien.
204
*-clé "Col_lien_title": chaine la valeur de l'attribut 'title'du lien.
205
*
206
*Exemple:
207
*$tablo_formatResultat[0]=array(
208
*"Col_nom"=>ENT_NOM_COMPLET,
209
*"Col_width"=> 375,
210
*"Col_class"=>'texte_tb2',
211
*"Col_lien_href"=>'http://test.tela-botanica.org/',
212
*"Col_lien_href_param"=>ENT_NUM_NOMEN,
213
*"Col_lien_target"=>'_top',
214
*"Col_lien_class"=>'eflore_lien',
215
*"Col_lien_title"=>'Voir la fiche correspondante dans l\'index des plantes');
216
*$tablo_formatResultat[1]=array(
217
*"Col_nom"=>ECS_INTITULE,
218
*"Col_width"=> 75,
219
*"Col_class"=>'texte_tb2 texte_c');
220
*
221
* @param string une chaine fournissant la base de l'url de la page où la fonction est utilisée.
222
* @param string la chaine correspondant aux paramètres à faire passer dans l'url.
223
* @param string la requete sql qui fournira le tableau pour une lettre donnée.
224
* @param string le code html d'ouverture du tableau entre la liste alphabétique et les lignes de résultat.
225
* @param string le code html de fermeture du tableau aprés les lignes de résultat.
226
* @param array un tableau associatif contenant le formatage des lignes
227
* @param string le code html du message d'erreur s'il n'y a pas de lignes de résultat.
228
* @return string le code html de la liste alphabétique et du tableaux de lignes de résultat.
229
//==============================================================================
230
*/
231
function FRAG_rechercherAvecAlphabet(   $requete, $baseURL, $paramURL = '', $affichageResultAvt = '', $affichageResultAps = '',
232
                                        $tablo_formatLigne = array(), $tablo_formatResultat = array(), $messageErreur = '',
233
                                        $fragmenteur = array())
234
{
235
        global $lettre;// Variable passée dans l'url contenant la lettre sélectionnée
236
 
237
        //Nous concaténons les valeurs de l'url :
238
        $url = $baseURL.$paramURL;
239
 
240
        //Nous initialisons les variables par défaut
241
        if($messageErreur == '') {
242
            $messageErreur = '<p>Pas de résultats affichable!</p>';
243
        }
244
        if($affichageResultAvt == '') {
245
            $affichageResultAvt = '<!-- AVANT RÉSULTATS -->';
246
        }
247
        if($affichageResultAps == '') {
248
            $affichageResultAps = '<!-- APRÈS RÉSULTATS -->';
249
        }
250
        if (empty($tablo_formatLigne)) {
251
            $tablo_formatLigne['Couleur_pair'] = '#E8FFE5';
252
        }
253
 
254
        if ( ! empty($fragmenteur) ) {
255
            if (!isset($GLOBALS['T_REPONSE'])) {
256
                $GLOBALS['T_REPONSE'] = '';
257
            }
258
            //Nous définissons les valeurs par défaut du fragmenteur :
259
            isset($fragmenteur['nbre_ligne_page_defaut']) ? '' : $fragmenteur['nbre_ligne_page_defaut'] = 20;
260
            isset($fragmenteur['afficher_titre']) ? '' : $fragmenteur['afficher_titre'] = 1;
261
            isset($fragmenteur['titre']) ? '' : $fragmenteur['titre'] = 'Sélectionner le nombre de résultats à afficher par page';
262
            isset($fragmenteur['tableau_choix_ligne_page']) ? '' : $fragmenteur['tableau_choix_ligne_page'] = array(10,'par 10',20,'par 20',50,'par 50');
263
            isset($fragmenteur['modele_info']) ? '' : $fragmenteur['modele_info'] = '';
264
            isset($fragmenteur['classe_css_titre']) ? '' : $fragmenteur['classe_css_titre'] = 'insTitle1';
265
            isset($fragmenteur['classe_css_fragmenteur']) ? '' : $fragmenteur['classe_css_fragmenteur'] = 'real_fragmenteur';
266
            isset($fragmenteur['classe_css_info']) ? '' : $fragmenteur['classe_css_info'] = 'insTitle1';
267
 
268
            // Nous créons le fragmentateur :
269
            $mon_fragmenteur = new fragmenteur_session();
270
 
271
        }
272
        //Nous ajoutons à l'url le nom de la variable lettre.
273
        $url .= '&amp;lettre=';
274
 
275
        // Nous construisons le tableau d'affichage de la liste alphabétique
276
        $sortieTexte = '' ;
277
        $sortieTexte .= '<p id="real_info">'."\n".
278
                        '<span>'.
279
                        'Cliquer sur une lettre pour faire apparaitre la liste des taxons correspondante :'.
280
                        '</span>'."\n".
281
                        '</p>'."\n";
282
        $sortieTexte .= '<p id="real_alphabet"><strong>'."\n";
283
        // Nous écrivons toutes les lettres avec un lien.
284
        // Nous utilisons les caractères asci de l'alphabet situé entre les numéros 61 et 95.
285
        for ($num_asci = 65 ; $num_asci < 91 ; $num_asci++) {
286
            $caractere = chr($num_asci) ;
287
            $sortieTexte .= "\t".'<a class="lien_recherche_alpha" href="'.$url.$caractere.'">'.chr($num_asci).'</a>&nbsp;'."\n";
288
        }
289
        $sortieTexte .= "\t".'<a href="'.$url.'tous">'.'Tous'.'</a>'."\n";
290
        $sortieTexte .= '</strong></p>'."\n";
291
 
292
        // Si une lettre est selectionnée :
293
        if (!empty($lettre)) {//la variable est récupérée directement de l'url
294
            //Nous redéfinissons l'url en ajoutant la valeur de la variable lettre :
295
            $url .= $lettre;
296
 
297
            $resultat = mysql_query($requete) or die('<b>Erreur</b>:<br/><b>Requete : </b>'.$requete.'<br/><b>Erreur mysql: </b>' .mysql_error());
298
            $nbre_ligne_resultat_total = mysql_num_rows($resultat) ;
299
 
300
            if ($nbre_ligne_resultat_total != 0) {
301
 
302
                if ( ! empty($fragmenteur) ) {
303
 
304
                    $mon_fragmenteur->setURL($url) ;
305
                    $T_REPONSE = $mon_fragmenteur->getVariable('T_REPONSE');
306
                    if( $T_REPONSE == '') {
307
                        $mon_fragmenteur->fixerLePas ($fragmenteur['nbre_ligne_page_defaut']);
308
                    }
309
 
310
                    $requete .= ' LIMIT '.$mon_fragmenteur->lireLeDebut().','.$mon_fragmenteur->lireLePas();
311
                    $resultat = mysql_query($requete) or die('<b>Erreur</b>:<br/><b>Requete : </b>'.$requete.'<br/><b>Erreur mysql: </b>' .mysql_error());
312
                    $nbre_ligne_resultat_affiche = mysql_num_rows($resultat) ;
313
 
314
                    if ($fragmenteur['afficher_titre'] == 1) {
315
                        $sortieTexte .= '<tr class="'.$fragmenteur['classe_css_titre'].'"><td colspan="2">' ;
316
                        $sortieTexte .= $fragmenteur['titre'];
317
                        $sortieTexte .= '</td></tr>'."\n" ;
318
                    }
319
                    $sortieTexte .= '<form id="real_page_quantite" action="'.$url.'" method="post">'."\n";
320
                    $sortieTexte .= '<p>'."\n";
321
                    $formulaire = new form($GLOBALS['_GEN_commun']['pear_db']);
322
                    $javascript_select['nom_evenement'] = 'onchange';
323
                    $javascript_select['valeur_evenement'] = 'javascript:this.form.submit();';
324
                    $sortieTexte .= $formulaire->selectFromTableau('T_REPONSE', $fragmenteur['tableau_choix_ligne_page'],
325
                                                            empty($T_REPONSE) ? $fragmenteur['nbre_ligne_page_defaut'] : $T_REPONSE, $javascript_select) ;
326
                    $sortieTexte .= '</p>'."\n";
327
                    $sortieTexte .= '</form>'."\n";
328
                    $sortieTexte .= '<p id="real_nbre_resultat">'."\n".
329
                                    $mon_fragmenteur->affNbRes($nbre_ligne_resultat_total).
330
                                    '</p>'."\n";
331
                    $sortieTexte .= '<p class="'.$fragmenteur['classe_css_fragmenteur'].'">'."\n".
332
                                    $mon_fragmenteur->fragmente($nbre_ligne_resultat_total).
333
                                    '</p>'."\n";
334
                }
335
                // Nous affichons les résutats de la requête avec une lettre donnée.
336
                $sortieTexte .= $affichageResultAvt;
337
                // Dans le cas de l'affichage par défaut, nous affichons les noms des colones :
338
                if (empty($tablo_formatResultat)) {//Dans le cas ou l'on utilise la fonction par défaut
339
                    $sortieTexte .='<tr>';
340
                    for ($i=0; $i<mysql_num_fields($resultat); $i++) {
341
                        $sortieTexte .= '<td>'.mysql_field_name($resultat, $i).'</td>'."\n";
342
                    }
343
                    $sortieTexte .='</tr>';
344
                }
345
                $pair = false ;
346
                $ligne = '';
347
 
348
                while ($ligne = mysql_fetch_array($resultat)) {
349
                    // Nous ouvrons la balise de début de ligne
350
                    $sortieTexte .= '<tr ';
351
                    // Nous colorions la ligne
352
                    if ($pair) {
353
                        isset($tablo_formatLigne['Class_pair'])?$sortieTexte .= 'class="'.$tablo_formatLigne['Class_pair'].'" ':'';//
354
                        isset($tablo_formatLigne['Syle_pair'])?$sortieTexte .= 'style="'.$tablo_formatLigne['Syle_pair'].'" ':'';//
355
                        isset($tablo_formatLigne['Couleur_pair'])?$sortieTexte .= 'bgcolor="'.$tablo_formatLigne['Couleur_pair'].'"':'';//La couleur dans Tela est #E8FFE5
356
                        $pair = false ;
357
                    }
358
                    else {
359
                        isset($tablo_formatLigne['Class_impair'])?$sortieTexte .= 'class="'.$tablo_formatLigne['Class_impair'].'" ':'';//
360
                        isset($tablo_formatLigne['Syle_impair'])?$sortieTexte .= 'style="'.$tablo_formatLigne['Syle_impair'].'" ':'';//
361
                        isset($tablo_formatLigne['Couleur_impair'])?$sortieTexte .= 'bgcolor="'.$tablo_formatLigne['Couleur_impair'].'"':'';//La couleur dans Tela est #E8FFE5
362
                        $pair = true ;
363
                    }
364
                    $sortieTexte .= '>';// Nous fermons la balise de début de ligne
365
 
366
                    // Nous affichons les résultats dans des colones
367
                    if (empty($tablo_formatResultat)) {//Dans le cas ou l'on utilise la fonction par défaut
368
                        for ($i=0; $i<(count($ligne)/2); $i++) {
369
                            $sortieTexte .='<td>'.$ligne[$i].'</td>'."\n";
370
                        }
371
                    } else {//Dans le cas ou l'on utilise un tableau de formatage
372
                        for ($i = 0; $i < count($tablo_formatResultat); $i++) {
373
                            if (isset($tablo_formatResultat[$i]['Col_lien_href'])){
374
                                isset($tablo_formatResultat[$i]['Col_lien_href_param'])?'':$tablo_formatResultat[$i]['Col_lien_href_param']='';
375
                                $sortieTexte .= '<td class="'.$tablo_formatResultat[$i]['Col_class'].
376
                                                '" width="'.$tablo_formatResultat[$i]['Col_width'].'">'.
377
                                                '<a href="'.$tablo_formatResultat[$i]['Col_lien_href'].
378
                                                $ligne[$tablo_formatResultat[$i]['Col_lien_href_param']].
379
                                                '" target="'.$tablo_formatResultat[$i]['Col_lien_target'].
380
                                                '" title="'.$tablo_formatResultat[$i]['Col_lien_title'].
381
                                                '" class="'.$tablo_formatResultat[$i]['Col_lien_class'].'">';
382
                                //Nous regardons si la colonne du tableau HTML est composée de plusieurs
383
                                //colonnes de la table de la base de données.
384
                                if (! is_array($tablo_formatResultat[$i]['Col_nom']) ) {
385
                                    //Une seule colonne.
386
                                    $sortieTexte .= $ligne[$tablo_formatResultat[$i]['Col_nom']];
387
                                } else {
388
                                    //Plusieurs colonnes et/ou texte.
389
                                    $tab_contenu_colonne = $tablo_formatResultat[$i]['Col_nom'];
390
                                    for ($j = 0; $j < count($tab_contenu_colonne); $j++) {
391
                                        if ($tab_contenu_colonne[$j]['type'] == 'texte') {
392
                                            //Nous devons afficher du texte.
393
                                            $sortieTexte .= $tab_contenu_colonne[$j]['valeur'];
394
                                        }
395
                                        elseif ($tab_contenu_colonne[$j]['type'] == 'colonne') {
396
                                            //Nous devons afficher une valeur d'une colonne  résultat de la requête SQL.
397
                                            $sortieTexte .= $ligne[$tab_contenu_colonne[$j]['valeur']];
398
                                        }
399
                                    }
400
                                }
401
                                $sortieTexte .= '</a></td>'."\n";
402
                            } else {
403
                                $sortieTexte .='<td class="'.$tablo_formatResultat[$i]['Col_class'].'" width="'.$tablo_formatResultat[$i]['Col_width'].'">'.$ligne[$tablo_formatResultat[$i]['Col_nom']]."</td>\n";
404
                            }
405
                        }
406
                    }
407
                    $sortieTexte .= '</tr>';
408
                }
409
 
410
                $sortieTexte .= $affichageResultAps;
411
            }
412
            else {
413
                // Nous affichons le message d'erreur signalant l'abscence de résultats.
414
                $sortieTexte .= $messageErreur;
415
            }
416
        }
417
 
418
        return $sortieTexte ;
419
}
420
 
421
/* +--Fin du code ---------------------------------------------------------------------------------------+
422
 
423
* $Log: FRAG_fragmenteur.fonct.php,v $
424
* Revision 1.6  2005/02/23 17:28:35  jpm
425
* Suppression d'image dans le fragmenteur et remplacement par des styles css.
426
* Amélioration du code html.
427
*
428
* Revision 1.5  2005/02/22 16:21:28  jpm
429
* Mise à jour : utilisation des session, mise en forme et suppression d'appel de fichiers inutiles.
430
*
431
* Revision 1.4  2004/09/11 19:12:43  jpm
432
* Début mise en forme.
433
*
434
* Revision 1.3  2004/09/11 15:37:02  jpm
435
* Modification de l'inclusion de fichier.
436
*
437
* Revision 1.2  2004/09/10 15:03:41  jpm
438
* Ajout de commentaires.
439
*
440
*
441
* +--Fin du code ----------------------------------------------------------------------------------------+
442
*/
443
?>