Subversion Repositories Applications.papyrus

Rev

Rev 25 | Rev 72 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2001 Laurent COUDOUNEAU (lc@gsite.org)                                                 |
7
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
8
// +------------------------------------------------------------------------------------------------------+
9
// | This library is free software; you can redistribute it and/or                                        |
10
// | modify it under the terms of the GNU Lesser General Public                                           |
11
// | License as published by the Free Software Foundation; either                                         |
12
// | version 2.1 of the License, or (at your option) any later version.                                   |
13
// |                                                                                                      |
14
// | This library is distributed in the hope that it will be useful,                                      |
15
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
16
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
17
// | Lesser General Public License for more details.                                                      |
18
// |                                                                                                      |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
20
// | License along with this library; if not, write to the Free Software                                  |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// +------------------------------------------------------------------------------------------------------+
55 jpm 23
// CVS : $Id: adsi_site.fonct.php,v 1.3 2004-09-23 16:51:27 jpm Exp $
6 jpm 24
/**
25
* Bibliothèque de fonctions d'admininistration des projets
26
*
27
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
28
* sur les projets (=sites gérés par Papyrus).
29
*
25 jpm 30
*@package Admin_site
6 jpm 31
*@subpackage Fonctions
32
//Auteur original :
33
*@author        Laurent COUDOUNEAU <lc@gsite.org>
34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@copyright     Tela-Botanica 2000-2004
55 jpm 38
*@version       $Revision: 1.3 $ $Date: 2004-09-23 16:51:27 $
6 jpm 39
// +------------------------------------------------------------------------------------------------------+
40
*/
41
 
42
// +------------------------------------------------------------------------------------------------------+
43
// |                                            ENTÊTE du PROGRAMME                                       |
44
// +------------------------------------------------------------------------------------------------------+
45
 
46
/** Inclusion de la classe Formulaire.
47
* Elle permet la création rapide de formulaire basé sur les tables Mysql.
48
*/
49
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'formulaire_1.0/FORM_Form.class.php';
50
 
51
/** Inclusion bibliothèque de PEAR gérant le FTP.*/
52
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
53
 
54
// +------------------------------------------------------------------------------------------------------+
55
// |                                            CORPS du PROGRAMME                                        |
56
// +------------------------------------------------------------------------------------------------------+
57
/** Fonction ADMIN_afficherListeSites()- Génére le xhtml permettant de choisir un site parmis une liste.
58
*
59
* Cette fonction fournie une liste des sites principaux gérés par Génésia.
60
*
61
* @param  string   l'objet Pear DB.
62
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
63
* @param  string   un message important à destination de l'utilisateur.
64
* return  string   le code XHTML à retourner.
65
*/
66
function ADMIN_afficherFormListeSites($db, $url, $message = '')
67
{
68
    // Liste des sites principaux
69
    $requete =  'SELECT * '.
70
                'FROM gen_site, gen_site_relation '.
71
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
72
                'AND gsr_id_valeur = 102 '.
73
                'AND gsr_id_site_01 = gs_id_site '.
74
                'ORDER BY gsr_ordre';
75
 
76
    $resultat = $db->query($requete);
77
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
78
 
79
    //----------------------------------------------------------------------------
80
    // Création du formulaire
81
    $form =& new HTML_QuickForm('form_sites', 'post', $url);
82
    $tab_index = 1000;
83
    $squelette =& $form->defaultRenderer();
84
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
85
    $squelette->setElementTemplate( '<li>'."\n".'{label}'."\n".'{element}'."\n".
86
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
87
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
88
                                    '</li>'."\n");
89
    $squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
90
 
91
    $partie_site_debut =    '<fieldset>'."\n".
92
                            '<legend>Listes des sites</legend>'."\n".
93
                            '<ul>'."\n";
94
    $form->addElement('html', $partie_site_debut);
95
 
96
    $aso_options = array();
97
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
98
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
99
    }
100
    $resultat->free();
101
    $id = 'form_sites_id_site';
102
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
103
    $label = '<label for="'.$id.'">'.'Listes des sites : '.'</label>';
104
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
105
 
106
    $partie_site_fin =  '</ul>'."\n".
107
                        '</fieldset>'."\n";
108
    $form->addElement('html', $partie_site_fin);
109
 
110
    $liste_bouton_debut = '<ul class="liste_bouton">'."\n";
111
    $form->addElement('html', $liste_bouton_debut);
112
 
113
    $form->addElement('submit', 'form_sites_ajouter', 'Ajouter');
114
    $form->addElement('submit', 'form_sites_modifier', 'Modifier');
115
    $form->addElement('submit', 'form_sites_supprimer', 'Supprimer');
116
 
117
    $liste_bouton_fin = '</ul>'."\n";
118
    $form->addElement('html', $liste_bouton_fin);
119
 
120
    $sortie = $form->toHTML()."\n";
121
 
122
    // Titre de la page:
123
    $titre = 'Configuration des sites';
124
 
125
    // Construction de la page.
126
    return ADMIN_contruirePage($titre, $sortie, $message);
127
}
128
 
129
/** Fonction ADMIN_validerFormListesSites() - Valide les données issues du formulaire de liste de sites.
130
*
131
* Cette fonction valide les données du formulaire de liste de site.
132
*
133
* @param  string   l'objet pear de connexion à la base de données.
134
* @param  string   le tableau contenant les valeurs du formulaire.
135
* @return string   retourne les messages d'erreurs sinon rien.
136
*/
137
function ADMIN_validerFormListesSites($db, $aso_valeurs)
138
{
139
    $message = '';
140
 
141
    // Validation des données du formulaire
142
    if (empty($aso_valeurs['form_sites_id_site'])) {
143
        $message .= '<p class="genesia_erreur">Vous devez d\'abord sélectionner un site.</p>';
144
    }
145
 
146
    return $message;
147
}
148
 
149
/** Fonction ADMIN_afficherFormSite()- Génére un formulaire pour gen_site.
150
*
151
* Cette fonction retourne un formulaire pour modification ou pour ajout.
152
*
153
* @param  string   l'objet pear de connexion à la base de données.
154
* @param  string   l'url à laquelle renvoyer le formulaire.
155
* @param  string   le tableau contenant les valeurs du formulaire.
156
* @param  string   un message à destination de l'utilisateur.
157
* return  string   le code XHTML à retourner.
158
*/
159
function ADMIN_afficherFormSite($db, $url, $aso_valeurs = array(), $message = '')
160
{
161
 
162
    // Nous cherchons à savoir si nous somme en modification
163
    $aso_valeurs['modification'] = false;
164
    if (isset($aso_valeurs['form_sites_modifier'])) {
165
        // Requete pour récupérer les informations sur le site à modifier
166
        $requete =  'SELECT * '.
167
                    'FROM gen_site '.
168
                    'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
169
        $resultat = $db->query($requete);
170
        if (DB::isError($resultat)) {
171
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
172
        }
173
        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
174
        $aso_valeurs['modification'] = true;
175
    } else if (isset($aso_valeurs['gs_id_site'])) {
176
        $aso_valeurs['modification'] = true;
177
    }
178
 
179
    //----------------------------------------------------------------------------
180
    // Création du formulaire
181
    $form =& new HTML_QuickForm('site', 'post', $url);
182
    $tab_index = 1000;
183
    $squelette =& $form->defaultRenderer();
184
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
185
    $squelette->setElementTemplate(  '<li>'."\n".
186
                                    '{label}'."\n".
187
                                    '{element}'."\n".
188
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
189
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
190
                                    '</li>'."\n");
191
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
192
 
193
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
194
    $form->addElement('html', $partie_site_debut);
195
 
196
    if ($aso_valeurs['modification']) {
197
        $form->addElement('hidden', 'gs_id_site');
198
    }
199
 
200
    $id = 'gs_nom';
201
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100, 'value' => 'nom du site');
202
    $label = '<label for="'.$id.'">'.'Nom du site : '.'</label>';
203
    $form->addElement('text', $id, $label, $aso_attributs);
204
    $form->addRule($id, 'Un nom est requis pour le site !', 'required', '', 'client');
205
 
206
    $id = 'gs_code_alpha';
207
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 'site_01');
208
    $label = '<label for="'.$id.'">'.'Code alphanumérique : '.'</label>';
209
    $form->addElement('text', $id, $label, $aso_attributs);
210
    $form->addRule('gs_code_alpha', 'Un code alphanumérique est requis pour le site !', 'required', '', 'client');
211
 
212
    $id = 'gs_code_num';
213
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 1);
214
    $label = '<label for="'.$id.'">'.'Code numérique : '.'</label>';
215
    $form->addElement('text', $id, $label, $aso_attributs);
216
    $form->addRule('gs_code_num', 'Un code numérique est requis pour le site !', 'required', '', 'client');
217
 
218
    $id = 'gs_raccourci_clavier';
219
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1, 'value' => 'Z');
220
    $label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>';
221
    $form->addElement('text', $id, $label, $aso_attributs);
222
 
223
    $id = 'defaut';
224
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++);
225
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
226
    $form->addElement('checkbox', $id, $label, '', $aso_attributs);
227
 
228
    // Requete pour connaitre les identifications dispo
229
    $requete =  'SELECT * '.
230
                'FROM gen_site_auth '.
231
                'WHERE gsa_id_auth != 0';
232
    $resultat = $db->query($requete) ;
233
    if (DB::isError($resultat)) {
234
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
235
    }
236
    $aso_options = array();
237
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
238
        // Test pour connaître le type d'authentification.
239
        $type = '';
240
        if ($ligne->gsa_ce_type_auth == '1' ) {
241
            $type = 'Base de données';
242
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
243
            $type = 'LDAP';
244
        }
245
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
246
    }
247
    $resultat->free();
248
    $id = 'gs_ce_auth';
249
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
250
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
251
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
252
 
253
    // En modification nous affichons la liste des squelettes disponiblent dans
254
    // le dossier du site.
255
    if ($aso_valeurs['modification']) {
256
        // ouverture des squelettes présent dans le dossier du site
257
        // création de l'objet pear ftp
258
        $objet_pear_ftp = new Net_FTP(GEN_FTP_SERVEUR, GEN_FTP_PORT);
259
        // création de la connexion
260
        $ftp_conn = $objet_pear_ftp->connect(GEN_FTP_SERVEUR, GEN_FTP_PORT);
261
        // identification
55 jpm 262
        $ftp_login_result = $objet_pear_ftp->login(GEN_FTP_UTILISATEUR, GEN_FTP_MOT_DE_PASSE);
6 jpm 263
        // Gestion des erreurs ftp
264
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
265
            die('ERREUR Génésia admin : impossible de se connecter par ftp.<br />'.
266
                'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
267
                'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
268
                'Ligne n° : '. __LINE__ .'<br />'.
55 jpm 269
                'Fichier n° : '. __FILE__ .'<br />'.
270
                'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
271
                'Message erreur de login : '.$ftp_login_result->getMessage());
6 jpm 272
        }
273
        $chemin_squelettes = GEN_FTP_CHEMIN.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].'/'.$aso_valeurs['gs_ce_i18n'].'/'.GEN_DOSSIER_SQUELETTE.'/';
274
        $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
275
        $aso_options = array();
276
        for ($i = 0; $i < count($tab_squelettes) ; $i++) {
277
            if ($tab_squelettes[$i]['is_dir'] == false) {
278
                $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
279
            }
280
        }
281
        $objet_pear_ftp->disconnect();
282
        $id = 'gs_fichier_squelette';
283
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
284
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
285
        $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
286
    }
287
 
288
    // Requete pour connaitre les internationalisation dispo
289
    $requete =  'SELECT * '.
290
                'FROM gen_i18n ';
291
    $resultat = $db->query($requete) ;
292
    if (DB::isError($resultat)) {
293
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
294
    }
295
    $aso_options = array();
296
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
297
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
298
    }
299
    $resultat->free();
300
    $id = 'gs_ce_i18n';
301
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
302
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
303
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
304
 
305
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
306
    $form->addElement('html', $partie_site_fin);
307
 
308
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
309
    $form->addElement('html', $partie_entete_debut);
310
 
311
    $id = 'gs_titre';
312
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'titre du site');
313
    $label = '<label for="'.$id.'">'.'Titre du site : '.'</label>';
314
    $form->addElement('text', $id, $label, $aso_attributs);
315
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
316
 
317
    $id = 'gs_mots_cles';
318
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
319
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
320
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
321
    $zone_mots_cles->setValue('mots-clés du site');
322
    $form->addElement($zone_mots_cles);
323
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
324
 
325
    $id = 'gs_description';
326
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
327
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
328
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
329
    $zone->setValue('description du site');
330
    $form->addElement($zone);
331
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
332
 
333
    $id = 'gs_auteur';
334
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
335
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
336
    $form->addElement('text', $id, $label, $aso_attributs);
337
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');
338
 
339
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
340
    $form->addElement('html', $partie_entete_fin);
341
 
342
    if ($aso_valeurs['modification']) {
343
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
344
        $requete_admin =    'SELECT * '.
345
                            'FROM gen_annuaire '.
346
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
347
        $resultat_admin = $db->query($requete_admin);
348
        if (DB::isError($resultat_admin)) {
349
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
350
        }
351
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
352
        $info_admin =   '<p class="info">Dernière modification par'.$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.
353
                        ' le '.$aso_valeurs['gs_date_creation'].'</p>';
354
        $form->addElement('html', $info_admin);
355
        $form->addElement('hidden', 'gs_ce_admin');
356
        $form->addElement('hidden', 'gs_date_creation');
357
 
358
        // Titre de la page:
359
        $titre = 'Modifier un site';
360
        // Bouton validant le formulaire
361
        $bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
362
    } else {
363
        // Titre de la page:
364
        $titre = 'Ajouter un site';
365
        // Bouton validant le formulaire
366
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
367
    }
368
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
369
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
370
    $boutons =  '<p>'."\n".
371
                $bouton_validation."\n".
372
                $bouton_annuler."\n".
373
                $bouton_effacer."\n".
374
                '</p>'."\n";
375
    $form->addElement('html', $boutons);
376
 
377
    // Instanciation des valeurs par défaut du formulaire
378
    $form->setDefaults($aso_valeurs);
379
 
380
    // Javascript pour la validation côté client
381
    $regles_javascript = $form->getValidationScript();
382
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
383
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
384
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
385
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
386
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
387
    GEN_stockerCodeScript($regles_javascript);
388
 
389
    // Note de fin de formulaire
390
    $form->setRequiredNote('Indique les champs obligatoires');
391
    $sortie = $form->toHTML()."\n";
392
 
393
    // Construction de la page.
394
    return ADMIN_contruirePage($titre, $sortie, $message);
395
}
396
 
397
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
398
*
399
* Cette fonction valide les données à ajouter dans la table gen_site.
400
*
401
* @param  string   l'objet pear de connexion à la base de données.
402
* @param  string   le tableau contenant les valeurs du formulaire.
403
* @return string   retourne les messages d'erreurs sinon rien.
404
*/
405
function ADMIN_validerFormSite($db, $aso_valeurs)
406
{
407
    $message = '';
408
 
409
    // Validation des données du formulaire
410
    if (empty($aso_valeurs['gs_nom'])) {
411
        $message .= '<p class="genesia_erreur">Le champ "Nom" ne doit pas être vide.</p>';
412
    }
413
    if (empty($aso_valeurs['gs_code_alpha'])) {
414
        $message .= '<p class="genesia_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
415
    }
416
    if (empty($aso_valeurs['gs_code_num'])) {
417
        $message .= '<p class="genesia_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
418
    }
419
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
420
        $message .= '<p class="genesia_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
421
    }
422
 
423
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_site
424
    $requete =  'SELECT gs_code_alpha, gs_code_num '.
425
                'FROM gen_site, gen_site_relation '.
426
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
427
                'AND gsr_id_valeur = 102 '.// 102 = site "principal"
428
                'AND gsr_id_site_01 = gs_id_site ';
429
    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
430
 
431
    $resultat = $db->query($requete);
432
    if (DB::isError($resultat)) {
433
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
434
    }
435
 
436
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
437
        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
438
            $message .= '<p class="genesia_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
439
        }
440
        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
441
            $message .= '<p class="genesia_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
442
        }
443
    }
444
    $resultat->free();
445
 
446
    if (empty($aso_valeurs['gs_titre'])) {
447
        $message .= '<p class="genesia_erreur">Le champ "Titre" ne doit pas être vide.</p>';
448
    }
449
    if (empty($aso_valeurs['gs_mots_cles'])) {
450
        $message .= '<p class="genesia_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
451
    }
452
    if (empty($aso_valeurs['gs_description'])) {
453
        $message .= '<p class="genesia_erreur">Le champ "Description" ne doit pas être vide.</p>';
454
    }
455
    if (empty($aso_valeurs['gs_auteur'])) {
456
        $message .= '<p class="genesia_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
457
    }
458
 
459
    return $message;
460
}
461
 
462
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
463
*
464
* Cette fonction ajoute le site à Papyrus, c'est à dire :
465
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
466
* - 2. Insertion d'une ligne dans la table "gen_site".
467
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
468
*
469
* @param  string   l'objet pear de connexion à la base de données.
470
* @param  string   le tableau contenant les valeurs du formulaire.
471
* @param  int      identifiant de l'administrateur réalisant cette création.
472
* @return string retourne un message en cas de succès ou d'échec.
473
*/
474
function ADMIN_enregistrerSite($db, $aso_valeurs, $id_admin)
475
{
476
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
477
    if ($id_site == false) {
478
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
479
                    'Ligne n° : '. __LINE__ .'<br />'.
480
                    'Fichier n° : '. __FILE__ .'<br /></p>';
481
        return $message;
482
    }
483
    // Requete d'insertion des infos d'un site dans gen_site
484
    $requete =  'INSERT INTO gen_site '.
485
                'SET gs_id_site = '.$id_site.', '.
486
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
487
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
488
                'gs_fichier_squelette = "defaut.html", '.
489
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
490
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
491
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
492
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
493
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
494
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
495
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
496
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
497
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
498
                'gs_ce_admin = '.$id_admin;
499
    $resultat = $db->query($requete) ;
500
    if (DB::isError($resultat)) {
501
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
502
    }
503
 
504
    // Recherche du nouveau numéro d'ordre de ce site principal
505
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
506
                'FROM gen_site_relation '.
507
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
508
                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
509
    $resultat = $db->query($requete) ;
510
    if (DB::isError($resultat)) {
511
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
512
    }
513
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
514
    $nouvel_ordre = $ligne->max_ordre + 1;
515
 
516
    // Requete d'insertion des relations dans gen_site_relation
517
    $requete =  'INSERT INTO gen_site_relation '.
518
                'SET gsr_id_site_01 = '.$id_site.', '.
519
                'gsr_id_site_02 = '.$id_site.', '.
520
                'gsr_id_valeur = 102, '.
521
                'gsr_ordre = '.$nouvel_ordre;
522
    $resultat = $db->query($requete);
523
    if (DB::isError($resultat)) {
524
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
525
    }
526
 
527
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
528
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
529
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
530
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
531
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
532
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
533
        if (DB::isError($resultat_supr_defaut)) {
534
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
535
        }
536
 
537
        // Requete d'insertion de la relations site par défaut
538
        $requete =  'INSERT INTO gen_site_relation '.
539
                    'SET gsr_id_site_01 = '.$id_site.', '.
540
                    'gsr_id_site_02 = '.$id_site.', '.
541
                    'gsr_id_valeur = 101, '.
542
                    'gsr_ordre = NULL ';
543
        $resultat = $db->query($requete);
544
        if (DB::isError($resultat)) {
545
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
546
        }
547
    }
548
    // Ajout des répertoires du site
549
    // Création d'une connection ftp avec Net_FTP de PEAR
550
    // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
551
 
552
    // création de l'objet pear ftp
553
    $objet_pear_ftp = new Net_FTP(GEN_FTP_SERVEUR, GEN_FTP_PORT);
554
    // création de la connexion
555
    $ftp_conn = $objet_pear_ftp->connect(GEN_FTP_SERVEUR, GEN_FTP_PORT);
556
    // identification
557
    $ftp_login_result = $objet_pear_ftp->login(GEN_FTP_UTILISATEUR, GEN_FTP_MOT_DE_PASSE);;
558
    // Gestion des erreurs ftp
559
    if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
560
        $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de se connecter par ftp.<br />'.
561
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
562
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
563
                    'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
564
                    'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
565
                    'Ligne n° : '. __LINE__ .'<br />'.
566
                    'Fichier n° : '. __FILE__ .'<br /><p>';
567
        return $message;
568
    }
569
    $tableau_repertoires = array(   GEN_DOSSIER_IMAGE,
570
                                    GEN_DOSSIER_STYLE,
571
                                    GEN_DOSSIER_SCRIPT,
572
                                    GEN_DOSSIER_SQUELETTE,
573
                                    GEN_DOSSIER_DOC);
574
    foreach ($tableau_repertoires as $nom_repertoire) {
575
        $chemin_repertoire = GEN_FTP_CHEMIN.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].'/'.$aso_valeurs['gs_ce_i18n'].'/'.$nom_repertoire.'/';
576
        $resultat = $objet_pear_ftp->mkdir($chemin_repertoire, true) ;
577
        if (PEAR::isError($resultat)) {
578
            $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de créer le répertoire par ftp.<br />'.
579
                        'Répertoire : '. $chemin_repertoire .'<br />'.
580
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
581
                        'Ligne n° : '. __LINE__ .'<br />'.
582
                        'Fichier n° : '. __FILE__ .'<br /></p>';
583
            return $message;
584
        }
585
    }
586
    $chemin_squelette_defaut = GEN_FTP_CHEMIN.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.'/'.GEN_DOSSIER_SQUELETTE.'/defaut.html';
587
    $chemin_squelette_site = GEN_FTP_CHEMIN.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].'/'.$aso_valeurs['gs_ce_i18n'].'/'.GEN_DOSSIER_SQUELETTE.'/defaut.html';
588
    $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
589
    if (PEAR::isError($resultat)) {
590
        $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de copier le squelette defaut par ftp.<br />'.
591
                    'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
592
                    'Fichier copié : '. $chemin_squelette_site .'<br />'.
593
                    'Erreur origine : '. $resultat->getMessage() .'<br />'.
594
                    'Ligne n° : '. __LINE__ .'<br />'.
595
                    'Fichier n° : '. __FILE__ .'<br /></p>';
596
            return $message;
597
    }
598
    $chemin_style_defaut = GEN_FTP_CHEMIN.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.'/'.GEN_DOSSIER_STYLE.'/defaut.css';
599
    $chemin_style_site = GEN_FTP_CHEMIN.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].'/'.$aso_valeurs['gs_ce_i18n'].'/'.GEN_DOSSIER_STYLE.'/defaut.css';
600
    $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
601
    if (PEAR::isError($resultat)) {
602
        $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de copier le squelette defaut par ftp.<br />'.
603
                    'Fichier origine : '. $chemin_style_defaut .'<br />'.
604
                    'Fichier copié : '. $chemin_style_site .'<br />'.
605
                    'Erreur origine : '. $resultat->getMessage() .'<br />'.
606
                    'Ligne n° : '. __LINE__ .'<br />'.
607
                    'Fichier n° : '. __FILE__ .'<br /></p>';
608
            return $message;
609
    }
610
    $objet_pear_ftp->disconnect();
611
    $message = '<p class="genesia_info">'.'Succés de l\'ajout du site.'.'</p>';
612
    return $message;
613
}
614
 
615
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
616
*
617
* Cette fonction modifie un site géré par Papyrus.
618
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
619
*
620
* @param  string   l'objet pear de connexion à la base de données.
621
* @param  string   le tableau contenant les valeurs du formulaire.
622
* @param  int      identifiant de l'administrateur réalisant cette modification.
623
* @return string retourne un message en cas de succès ou d'échec.
624
*/
625
function ADMIN_modifierSite($db, $aso_valeurs, $id_admin)
626
{
627
    // Requete de mise à jour des infos d'un site dans gen_site
628
    $requete =  'UPDATE gen_site '.
629
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
630
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
631
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
632
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
633
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
634
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
635
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
636
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
637
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
638
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
639
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
640
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
641
                'gs_ce_admin = '.$id_admin.' '.
642
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
643
    $resultat = $db->query($requete) ;
644
    if (DB::isError($resultat)) {
645
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
646
    }
647
 
648
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
649
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
650
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
651
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
652
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
653
        if (DB::isError($resultat_supr_defaut)) {
654
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
655
        }
656
 
657
        // Requete d'insertion de la relations site par défaut
658
        $requete =  'INSERT INTO gen_site_relation '.
659
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
660
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
661
                    'gsr_id_valeur = 101, '.
662
                    'gsr_ordre = NULL ';
663
        $resultat = $db->query($requete);
664
        if (DB::isError($resultat)) {
665
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
666
        }
667
    }
668
    $message = '<p class="genesia_info">'.'Succés de la modification du site.'.'</p>';
669
    return $message;
670
}
671
 
672
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
673
*
674
* Cette fonction ajoute le site à Papyrus, c'est à dire :
675
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
676
* - 2. Insertion d'une ligne dans la table "gen_site".
677
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
678
*
679
* @param  string   l'objet pear de connexion à la base de données.
680
* @param  string   le tableau contenant les valeurs du formulaire.
681
* @param  int      identifiant de l'administrateur réalisant cette création.
682
* @return string retourne un message en cas de succès ou d'échec.
683
*/
684
function ADMIN_supprimerSite($db, $aso_valeurs)
685
{
686
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
687
    $requete =  'SELECT gs_code_alpha '.
688
                'FROM gen_site '.
689
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
690
    $code_alpha_site_principal = $db->getOne($requete);
691
    if (DB::isError($code_alpha_site_principal)) {
692
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
693
    }
694
 
695
    // Recherche des différents sites liés à celui que l'on veut détruire
696
    // Cela comprend le site à détruire lui méme car il posséde la relations
697
    // sur lui meme "site principale".
698
    $requete =  'SELECT gs_id_site '.
699
                'FROM gen_site, gen_site_relation '.
700
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
701
                'AND gsr_id_site_02 = gs_id_site ';
702
    $resultat = $db->query($requete);
703
    if (DB::isError($resultat)) {
704
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
705
    }
706
 
707
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
708
        // Requete de suppression des sites liés dans gen_site
709
        $requete_supr_site =    'DELETE FROM gen_site '.
710
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
711
        $resultat_supr_site = $db->query($requete_supr_site);
712
        if (DB::isError($resultat_supr_site)) {
713
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
714
        }
715
 
716
        // Requete de suppression des relations des sites à détruire
717
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
718
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
719
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
720
        if (DB::isError($resultat_supr_site_relation)) {
721
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
722
        }
723
 
724
        // Recherche des différents menus liés au site à détruire
725
        $requete_menu = 'SELECT gm_id_menu '.
726
                        'FROM gen_menu '.
727
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
728
        $resultat_menu = $db->query($requete_menu) ;
729
        if (DB::isError($resultat_menu)) {
730
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
731
        }
732
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
733
            // Requete de suppression des des menus
734
            $requete_supr_menu =   'DELETE FROM gen_menu '.
735
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
736
            $resultat_supr_menu = $db->query($requete_supr_menu);
737
            if (DB::isError($resultat_supr_menu)) {
738
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
739
            }
740
            // Requete de suppression des relations des menus
741
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
742
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
743
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
744
            if (DB::isError($resultat_supr_menu_relation)) {
745
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
746
            }
747
 
748
            // Requete de suppression des contenus des menus
749
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
750
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
751
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
752
            if (DB::isError($resultat_supr_menu_contenu)) {
753
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
754
            }
755
 
756
            // Requete de suppression des ulr alternatives des menus
757
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
758
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
759
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
760
            if (DB::isError($resultat_supr_menu_url_alt)) {
761
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
762
            }
763
        }
764
        $resultat_menu->free();
765
    }
766
    $resultat->free();
767
 
768
    // Suppression des répertoires du site
769
    // Création d'une connection ftp avec Net_FTP de PEAR
770
    // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
771
 
772
    // création de l'objet pear ftp
773
    $objet_pear_ftp = new Net_FTP(GEN_FTP_SERVEUR, GEN_FTP_PORT);
774
    // création de la connexion
775
    $ftp_conn = $objet_pear_ftp->connect(GEN_FTP_SERVEUR, GEN_FTP_PORT);
776
    // identification
777
    $ftp_login_result = $objet_pear_ftp->login(GEN_FTP_UTILISATEUR, GEN_FTP_MOT_DE_PASSE);;
778
    // Gestion des erreurs ftp
779
    if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
780
        $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de se connecter par ftp.<br />'.
781
                    'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
782
                    'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
783
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
784
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
785
                    'Ligne n° : '. __LINE__ .'<br />'.
786
                    'Fichier n° : '. __FILE__ .'<br /><p>';
787
        return $message;
788
    }
789
    // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
790
    error_reporting(E_PARSE);
791
    $chemin_repertoire = GEN_FTP_CHEMIN.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
792
    $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
793
    if (PEAR::isError($resultat)) {
794
        $message =  '<p class="genesia_erreur"> ERREUR Génésia admin : impossible de supprimer le répertoire par ftp.<br />'.
795
                    'Erreur ftp : '.$resultat->getMessage().'<br />'.
796
                    'Répertoire : '. $chemin_repertoire .'<br />'.
797
                    'Ligne n° : '. __LINE__ .'<br />'.
798
                    'Fichier n° : '. __FILE__ .'<br /></p>';
799
        return $message;
800
    }
801
    $objet_pear_ftp->disconnect();
802
    // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
803
    error_reporting(GEN_DEBOGAGE_NIVEAU);
804
    $message = '<p class="genesia_info">Succés de la suppression du site.</p>';
805
    return $message;
806
}
807
 
808
// +- Fin du code source  --------------------------------------------------------------------------------+
809
/*
810
* $Log: not supported by cvs2svn $
55 jpm 811
* Revision 1.2  2004/07/06 17:08:01  jpm
812
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
813
*
25 jpm 814
* Revision 1.1  2004/06/16 14:28:46  jpm
815
* Changement de nom de Génésia en Papyrus.
816
* Changement de l'arborescence.
817
*
6 jpm 818
* Revision 1.20  2004/05/10 14:32:14  jpm
819
* Changement du titre.
820
*
821
* Revision 1.19  2004/05/10 12:23:39  jpm
822
* Modification formulaire.
823
*
824
* Revision 1.18  2004/05/07 16:33:53  jpm
825
* Amélioration des formulaires.
826
*
827
* Revision 1.17  2004/05/07 07:22:51  jpm
828
* Ajout de la gestion des modification et suppression de site.
829
* Amélioration de la création des sites.
830
*
831
* Revision 1.16  2004/04/30 16:22:53  jpm
832
* Poursuite de l'administration des sites.
833
*
834
* Revision 1.14  2004/04/02 15:58:39  jpm
835
* Modification fonction liste des projets.
836
*
837
* Revision 1.13  2004/04/01 11:21:41  jpm
838
* Ajout et modification de commentaires pour PhpDocumentor.
839
*
840
* Revision 1.12  2004/03/24 20:01:02  jpm
841
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
842
*
843
* Revision 1.11  2004/03/24 10:06:01  jpm
844
* Ajout des commentaires d'entête.
845
* Début mise en conformité avec la convention de codage.
846
* Début traitement de la fonction listant les projets.
847
*
848
*
849
*/
850
?>