Subversion Repositories Applications.papyrus

Rev

Rev 201 | Rev 239 | 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
// +------------------------------------------------------------------------------------------------------+
205 jpm 23
// CVS : $Id: adsi_site.fonct.php,v 1.14 2004-12-03 19:22:53 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
205 jpm 38
*@version       $Revision: 1.14 $ $Date: 2004-12-03 19:22:53 $
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';
75 jpm 50
if (GEN_FTP_UTILISE) {
72 jpm 51
    /** Inclusion bibliothèque de PEAR gérant le FTP.*/
52
    require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
53
}
6 jpm 54
 
55
// +------------------------------------------------------------------------------------------------------+
56
// |                                            CORPS du PROGRAMME                                        |
57
// +------------------------------------------------------------------------------------------------------+
58
/** Fonction ADMIN_afficherListeSites()- Génére le xhtml permettant de choisir un site parmis une liste.
59
*
60
* Cette fonction fournie une liste des sites principaux gérés par Génésia.
61
*
62
* @param  string   l'objet Pear DB.
63
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
64
* @param  string   un message important à destination de l'utilisateur.
65
* return  string   le code XHTML à retourner.
66
*/
67
function ADMIN_afficherFormListeSites($db, $url, $message = '')
68
{
69
    // Liste des sites principaux
70
    $requete =  'SELECT * '.
71
                'FROM gen_site, gen_site_relation '.
72
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
73
                'AND gsr_id_site_01 = gs_id_site '.
115 jpm 74
                'AND gsr_id_valeur IN (102, 103) '.
6 jpm 75
                'ORDER BY gsr_ordre';
76
 
77
    $resultat = $db->query($requete);
78
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
79
 
80
    //----------------------------------------------------------------------------
81
    // Création du formulaire
82
    $form =& new HTML_QuickForm('form_sites', 'post', $url);
83
    $tab_index = 1000;
84
    $squelette =& $form->defaultRenderer();
85
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
86
    $squelette->setElementTemplate( '<li>'."\n".'{label}'."\n".'{element}'."\n".
87
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
88
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
89
                                    '</li>'."\n");
90
    $squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
91
 
92
    $partie_site_debut =    '<fieldset>'."\n".
93
                            '<legend>Listes des sites</legend>'."\n".
94
                            '<ul>'."\n";
95
    $form->addElement('html', $partie_site_debut);
96
 
97
    $aso_options = array();
98
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
99
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
100
    }
101
    $resultat->free();
198 jpm 102
 
6 jpm 103
    $id = 'form_sites_id_site';
104
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
105
    $label = '<label for="'.$id.'">'.'Listes des sites : '.'</label>';
106
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
107
 
108
    $partie_site_fin =  '</ul>'."\n".
109
                        '</fieldset>'."\n";
110
    $form->addElement('html', $partie_site_fin);
111
 
112
    $liste_bouton_debut = '<ul class="liste_bouton">'."\n";
113
    $form->addElement('html', $liste_bouton_debut);
114
 
198 jpm 115
    $id = 'form_sites_ajouter';
116
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
117
    $label = 'Ajouter';
118
    $form->addElement('submit', $id, $label, $aso_attributs);
6 jpm 119
 
198 jpm 120
    $id = 'form_sites_modifier';
121
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
122
    $label = 'Modifier';
123
    $form->addElement('submit', $id, $label, $aso_attributs);
124
 
125
    $id = 'form_sites_supprimer';
126
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
127
    $label = 'Supprimer';
128
    $form->addElement('submit', $id, $label, $aso_attributs);
129
 
6 jpm 130
    $liste_bouton_fin = '</ul>'."\n";
131
    $form->addElement('html', $liste_bouton_fin);
132
 
133
    $sortie = $form->toHTML()."\n";
134
 
135
    // Titre de la page:
136
    $titre = 'Configuration des sites';
137
 
138
    // Construction de la page.
139
    return ADMIN_contruirePage($titre, $sortie, $message);
140
}
141
 
142
/** Fonction ADMIN_validerFormListesSites() - Valide les données issues du formulaire de liste de sites.
143
*
144
* Cette fonction valide les données du formulaire de liste de site.
145
*
146
* @param  string   l'objet pear de connexion à la base de données.
147
* @param  string   le tableau contenant les valeurs du formulaire.
148
* @return string   retourne les messages d'erreurs sinon rien.
149
*/
150
function ADMIN_validerFormListesSites($db, $aso_valeurs)
151
{
152
    $message = '';
153
 
154
    // Validation des données du formulaire
155
    if (empty($aso_valeurs['form_sites_id_site'])) {
96 jpm 156
        $message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
6 jpm 157
    }
158
 
159
    return $message;
160
}
161
 
162
/** Fonction ADMIN_afficherFormSite()- Génére un formulaire pour gen_site.
163
*
164
* Cette fonction retourne un formulaire pour modification ou pour ajout.
165
*
166
* @param  string   l'objet pear de connexion à la base de données.
167
* @param  string   l'url à laquelle renvoyer le formulaire.
168
* @param  string   le tableau contenant les valeurs du formulaire.
169
* @param  string   un message à destination de l'utilisateur.
170
* return  string   le code XHTML à retourner.
171
*/
172
function ADMIN_afficherFormSite($db, $url, $aso_valeurs = array(), $message = '')
173
{
174
 
175
    // Nous cherchons à savoir si nous somme en modification
176
    $aso_valeurs['modification'] = false;
177
    if (isset($aso_valeurs['form_sites_modifier'])) {
190 jpm 178
        $site_id = $aso_valeurs['form_sites_id_site'];
6 jpm 179
        // Requete pour récupérer les informations sur le site à modifier
180
        $requete =  'SELECT * '.
181
                    'FROM gen_site '.
190 jpm 182
                    'WHERE gs_id_site = '.$site_id;
6 jpm 183
        $resultat = $db->query($requete);
184
        if (DB::isError($resultat)) {
185
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
186
        }
187
        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
190 jpm 188
        $resultat->free();
189
 
190
        // Requete pour récupérer les informations issues des relations du site à modifier
205 jpm 191
        $requete =  'SELECT * '.
192
                    'FROM gen_site_relation '.
193
                    'WHERE gsr_id_site_01 = '.$site_id.' '.
194
                    'AND gsr_id_site_01 = gsr_id_site_02';
190 jpm 195
        $resultat = $db->query($requete);
196
        if (DB::isError($resultat)) {
197
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
198
        }
201 jpm 199
        $aso_valeurs['defaut'] = 0;
205 jpm 200
        $aso_valeurs['type_site_externe'] = 0;
201
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
190 jpm 202
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
203
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
204
                $aso_valeurs['defaut'] = true;
205
            }
205 jpm 206
            foreach ($tab_type as $cle => $val) {
207
                if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe à Papyrus
208
                    $aso_valeurs['type_site_externe'] = $val['id'];
209
                }
190 jpm 210
            }
211
        }
212
        $resultat->free();
213
 
6 jpm 214
        $aso_valeurs['modification'] = true;
215
    } else if (isset($aso_valeurs['gs_id_site'])) {
216
        $aso_valeurs['modification'] = true;
217
    }
190 jpm 218
    // Débogage :
219
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
6 jpm 220
 
221
    //----------------------------------------------------------------------------
222
    // Création du formulaire
223
    $form =& new HTML_QuickForm('site', 'post', $url);
224
    $tab_index = 1000;
225
    $squelette =& $form->defaultRenderer();
226
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
227
    $squelette->setElementTemplate(  '<li>'."\n".
228
                                    '{label}'."\n".
229
                                    '{element}'."\n".
230
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
231
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
232
                                    '</li>'."\n");
115 jpm 233
    $squelette->setGroupElementTemplate('{label}'."\n".
234
                                        '{element}'."\n".
235
                                        '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
236
                                        '&nbsp;'."\n"
237
                                        , 'double');
6 jpm 238
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
239
 
240
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
241
    $form->addElement('html', $partie_site_debut);
242
 
243
    if ($aso_valeurs['modification']) {
244
        $form->addElement('hidden', 'gs_id_site');
245
    }
246
 
247
    $id = 'gs_nom';
248
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100, 'value' => 'nom du site');
249
    $label = '<label for="'.$id.'">'.'Nom du site : '.'</label>';
250
    $form->addElement('text', $id, $label, $aso_attributs);
251
    $form->addRule($id, 'Un nom est requis pour le site !', 'required', '', 'client');
252
 
253
    $id = 'gs_code_alpha';
254
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 'site_01');
255
    $label = '<label for="'.$id.'">'.'Code alphanumérique : '.'</label>';
256
    $form->addElement('text', $id, $label, $aso_attributs);
257
    $form->addRule('gs_code_alpha', 'Un code alphanumérique est requis pour le site !', 'required', '', 'client');
258
 
259
    $id = 'gs_code_num';
260
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 1);
261
    $label = '<label for="'.$id.'">'.'Code numérique : '.'</label>';
262
    $form->addElement('text', $id, $label, $aso_attributs);
263
    $form->addRule('gs_code_num', 'Un code numérique est requis pour le site !', 'required', '', 'client');
264
 
265
    $id = 'gs_raccourci_clavier';
266
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1, 'value' => 'Z');
267
    $label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>';
268
    $form->addElement('text', $id, $label, $aso_attributs);
269
 
270
    // Requete pour connaitre les identifications dispo
271
    $requete =  'SELECT * '.
272
                'FROM gen_site_auth '.
273
                'WHERE gsa_id_auth != 0';
274
    $resultat = $db->query($requete) ;
275
    if (DB::isError($resultat)) {
276
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
277
    }
278
    $aso_options = array();
279
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
280
        // Test pour connaître le type d'authentification.
281
        $type = '';
282
        if ($ligne->gsa_ce_type_auth == '1' ) {
283
            $type = 'Base de données';
284
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
285
            $type = 'LDAP';
286
        }
287
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
288
    }
289
    $resultat->free();
290
    $id = 'gs_ce_auth';
291
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
292
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
293
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
294
 
295
    // En modification nous affichons la liste des squelettes disponiblent dans
296
    // le dossier du site.
297
    if ($aso_valeurs['modification']) {
298
        $aso_options = array();
75 jpm 299
        if (!GEN_FTP_UTILISE) {
72 jpm 300
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
301
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
302
            $dossier = opendir($chemin_squelettes);
303
            while(($fichier = readdir($dossier)) !== false) {
304
                if ($fichier != '.' && $fichier != '..') {
305
                    $chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
306
                    if (filetype($chemin_type) != 'dir') {
307
                        $aso_options[$fichier] = $fichier;
308
                    }
309
                }
6 jpm 310
            }
72 jpm 311
        } else {
312
            // ouverture des squelettes présent dans le dossier du site
313
            // création de l'objet pear ftp
314
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
315
            // création de la connexion
316
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
317
            // identification
318
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
319
            // Gestion des erreurs ftp
320
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
190 jpm 321
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
72 jpm 322
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
323
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
324
                    'Ligne n° : '. __LINE__ .'<br />'.
183 jpm 325
                    'Fichier n° : '. __FILE__ .'<br />');
326
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
327
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
72 jpm 328
            }
329
            $chemin_squelettes =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
330
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
331
            $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
332
            $aso_options = array();
333
            for ($i = 0; $i < count($tab_squelettes) ; $i++) {
334
                if ($tab_squelettes[$i]['is_dir'] == false) {
335
                    $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
336
                }
337
            }
338
            $objet_pear_ftp->disconnect();
6 jpm 339
        }
201 jpm 340
 
341
        // Vérification de la présence de squelettes
342
        if (count($aso_options) == 0) {
343
            $aso_options['Aucun squelette'] = 'Aucun squelette';
344
        }
345
 
6 jpm 346
        $id = 'gs_fichier_squelette';
347
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
348
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
349
        $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
350
    }
351
 
352
    // Requete pour connaitre les internationalisation dispo
353
    $requete =  'SELECT * '.
354
                'FROM gen_i18n ';
355
    $resultat = $db->query($requete) ;
356
    if (DB::isError($resultat)) {
357
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
358
    }
359
    $aso_options = array();
360
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
361
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
362
    }
363
    $resultat->free();
364
    $id = 'gs_ce_i18n';
201 jpm 365
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
6 jpm 366
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
367
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
368
 
115 jpm 369
    $id = 'defaut';
201 jpm 370
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
190 jpm 371
    if ($aso_valeurs[$id] === true) {
372
        $aso_attributs['checked'] = 'checked';
373
    }
115 jpm 374
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
201 jpm 375
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
115 jpm 376
 
377
    // Groupe site externe
205 jpm 378
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
379
    $aso_options = array('0' => 'Aucun');
380
    foreach ($tab_type as $cle => $val) {
381
        $aso_options[$val['id']] = $val['intitule'];
190 jpm 382
    }
205 jpm 383
    $id = 'type_site_externe';
384
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
385
    $label = 'type : ';
386
    $groupe[] =& HTML_QuickForm::createElement('select', $id, $label, $aso_options, $aso_attributs);
115 jpm 387
 
388
    $id = 'gs_url';
201 jpm 389
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
205 jpm 390
    $label = 'url : ';// Les navigateurs gères mal les labels au sein d'un même <li>
115 jpm 391
    $groupe[] =& HTML_QuickForm::createElement('text', $id, $label, $aso_attributs);
392
 
205 jpm 393
    $label = '<label>'.'Site externe : '.'</label>';
115 jpm 394
    $form->addGroup($groupe, 'double', $label, '', false);
395
 
6 jpm 396
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
397
    $form->addElement('html', $partie_site_fin);
398
 
399
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
400
    $form->addElement('html', $partie_entete_debut);
401
 
402
    $id = 'gs_titre';
403
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'titre du site');
404
    $label = '<label for="'.$id.'">'.'Titre du site : '.'</label>';
405
    $form->addElement('text', $id, $label, $aso_attributs);
406
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
407
 
408
    $id = 'gs_mots_cles';
409
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
410
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
411
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
412
    $zone_mots_cles->setValue('mots-clés du site');
413
    $form->addElement($zone_mots_cles);
414
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
415
 
416
    $id = 'gs_description';
417
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
418
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
419
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
420
    $zone->setValue('description du site');
421
    $form->addElement($zone);
422
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
423
 
424
    $id = 'gs_auteur';
425
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
426
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
427
    $form->addElement('text', $id, $label, $aso_attributs);
428
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');
429
 
430
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
431
    $form->addElement('html', $partie_entete_fin);
432
 
433
    if ($aso_valeurs['modification']) {
434
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
435
        $requete_admin =    'SELECT * '.
436
                            'FROM gen_annuaire '.
437
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
438
        $resultat_admin = $db->query($requete_admin);
439
        if (DB::isError($resultat_admin)) {
440
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
441
        }
442
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
443
        $info_admin =   '<p class="info">Dernière modification par'.$ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.
444
                        ' le '.$aso_valeurs['gs_date_creation'].'</p>';
445
        $form->addElement('html', $info_admin);
446
        $form->addElement('hidden', 'gs_ce_admin');
447
        $form->addElement('hidden', 'gs_date_creation');
448
 
449
        // Titre de la page:
450
        $titre = 'Modifier un site';
451
        // Bouton validant le formulaire
452
        $bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
453
    } else {
454
        // Titre de la page:
455
        $titre = 'Ajouter un site';
456
        // Bouton validant le formulaire
457
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
458
    }
459
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
460
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
461
    $boutons =  '<p>'."\n".
462
                $bouton_validation."\n".
463
                $bouton_annuler."\n".
464
                $bouton_effacer."\n".
465
                '</p>'."\n";
466
    $form->addElement('html', $boutons);
467
 
468
    // Instanciation des valeurs par défaut du formulaire
469
    $form->setDefaults($aso_valeurs);
470
 
471
    // Javascript pour la validation côté client
472
    $regles_javascript = $form->getValidationScript();
473
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
205 jpm 474
    // Le code ci-dessous devrait être utilisé si on arrive à empécher Quickform de l'ajouter lui-même!
475
    /*
6 jpm 476
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
477
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
478
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
479
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
480
    GEN_stockerCodeScript($regles_javascript);
205 jpm 481
    */
6 jpm 482
 
483
    // Note de fin de formulaire
484
    $form->setRequiredNote('Indique les champs obligatoires');
485
    $sortie = $form->toHTML()."\n";
486
 
487
    // Construction de la page.
488
    return ADMIN_contruirePage($titre, $sortie, $message);
489
}
490
 
491
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
492
*
493
* Cette fonction valide les données à ajouter dans la table gen_site.
494
*
495
* @param  string   l'objet pear de connexion à la base de données.
496
* @param  string   le tableau contenant les valeurs du formulaire.
497
* @return string   retourne les messages d'erreurs sinon rien.
498
*/
499
function ADMIN_validerFormSite($db, $aso_valeurs)
500
{
501
    $message = '';
502
 
503
    // Validation des données du formulaire
504
    if (empty($aso_valeurs['gs_nom'])) {
96 jpm 505
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
6 jpm 506
    }
507
    if (empty($aso_valeurs['gs_code_alpha'])) {
96 jpm 508
        $message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
6 jpm 509
    }
75 jpm 510
    if ($aso_valeurs['gs_code_num'] == '') {
511
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est conscidéré comme vide!
96 jpm 512
        $message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
6 jpm 513
    }
514
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
96 jpm 515
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
6 jpm 516
    }
517
 
518
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_site
519
    $requete =  'SELECT gs_code_alpha, gs_code_num '.
520
                'FROM gen_site, gen_site_relation '.
521
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
115 jpm 522
                'AND gsr_id_site_01 = gs_id_site '.
523
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
6 jpm 524
    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
525
 
526
    $resultat = $db->query($requete);
527
    if (DB::isError($resultat)) {
528
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
529
    }
530
 
531
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
532
        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
96 jpm 533
            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
6 jpm 534
        }
535
        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
96 jpm 536
            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
6 jpm 537
        }
538
    }
539
    $resultat->free();
540
 
541
    if (empty($aso_valeurs['gs_titre'])) {
96 jpm 542
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
6 jpm 543
    }
544
    if (empty($aso_valeurs['gs_mots_cles'])) {
96 jpm 545
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
6 jpm 546
    }
547
    if (empty($aso_valeurs['gs_description'])) {
96 jpm 548
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
6 jpm 549
    }
550
    if (empty($aso_valeurs['gs_auteur'])) {
96 jpm 551
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
6 jpm 552
    }
123 jpm 553
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
115 jpm 554
        $message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
555
    }
123 jpm 556
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
115 jpm 557
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
558
                    'Vous conscidérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
559
    }
6 jpm 560
    return $message;
561
}
562
 
563
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
564
*
565
* Cette fonction ajoute le site à Papyrus, c'est à dire :
566
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
567
* - 2. Insertion d'une ligne dans la table "gen_site".
568
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
569
*
570
* @param  string   l'objet pear de connexion à la base de données.
571
* @param  string   le tableau contenant les valeurs du formulaire.
572
* @param  int      identifiant de l'administrateur réalisant cette création.
573
* @return string retourne un message en cas de succès ou d'échec.
574
*/
575
function ADMIN_enregistrerSite($db, $aso_valeurs, $id_admin)
576
{
577
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
578
    if ($id_site == false) {
579
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
580
                    'Ligne n° : '. __LINE__ .'<br />'.
581
                    'Fichier n° : '. __FILE__ .'<br /></p>';
582
        return $message;
583
    }
115 jpm 584
    // Nous vérifions si nous avons à faire à un site externe.
585
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
586
    $requete_complement = ', gs_url = NULL';
205 jpm 587
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
115 jpm 588
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
589
        $id_type_site = '103';// c'est un site "externe"
590
    }
591
 
6 jpm 592
    // Requete d'insertion des infos d'un site dans gen_site
593
    $requete =  'INSERT INTO gen_site '.
594
                'SET gs_id_site = '.$id_site.', '.
595
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
596
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
597
                'gs_fichier_squelette = "defaut.html", '.
598
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
599
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
600
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
601
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
602
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
603
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
604
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
605
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
606
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
115 jpm 607
                'gs_ce_admin = '.$id_admin.
608
                $requete_complement;
609
    $resultat = $db->query($requete);
6 jpm 610
    if (DB::isError($resultat)) {
611
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
612
    }
613
 
115 jpm 614
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
6 jpm 615
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
616
                'FROM gen_site_relation '.
617
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
115 jpm 618
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
6 jpm 619
    $resultat = $db->query($requete) ;
620
    if (DB::isError($resultat)) {
621
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
622
    }
623
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
624
    $nouvel_ordre = $ligne->max_ordre + 1;
625
 
626
    // Requete d'insertion des relations dans gen_site_relation
627
    $requete =  'INSERT INTO gen_site_relation '.
628
                'SET gsr_id_site_01 = '.$id_site.', '.
629
                'gsr_id_site_02 = '.$id_site.', '.
115 jpm 630
                'gsr_id_valeur = '.$id_type_site.', '.
6 jpm 631
                'gsr_ordre = '.$nouvel_ordre;
632
    $resultat = $db->query($requete);
633
    if (DB::isError($resultat)) {
634
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
635
    }
636
 
115 jpm 637
    // Gestion du site par défaut
6 jpm 638
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
639
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
640
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
641
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
642
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
643
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
644
        if (DB::isError($resultat_supr_defaut)) {
645
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
646
        }
647
 
648
        // Requete d'insertion de la relations site par défaut
649
        $requete =  'INSERT INTO gen_site_relation '.
650
                    'SET gsr_id_site_01 = '.$id_site.', '.
651
                    'gsr_id_site_02 = '.$id_site.', '.
652
                    'gsr_id_valeur = 101, '.
653
                    'gsr_ordre = NULL ';
654
        $resultat = $db->query($requete);
655
        if (DB::isError($resultat)) {
656
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
657
        }
658
    }
205 jpm 659
 
660
    // Gestion des sites externes
661
    if ($id_type_site == '103') {
662
        // Requete d'insertion des relations dans gen_site_relation
663
        $requete =  'INSERT INTO gen_site_relation '.
664
                    'SET gsr_id_site_01 = '.$id_site.', '.
665
                    'gsr_id_site_02 = '.$id_site.', '.
666
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
667
                    'gsr_ordre = NULL ';
668
        $resultat = $db->query($requete);
669
        if (DB::isError($resultat)) {
670
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
671
        }
672
    }
673
 
115 jpm 674
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
675
    // par l'utilisateur dans le fichier de config avancée.
75 jpm 676
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
677
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
678
                            GEN_DOSSIER_STYLE,
679
                            GEN_DOSSIER_SCRIPT,
680
                            GEN_DOSSIER_SQUELETTE,
681
                            GEN_DOSSIER_DOC);
115 jpm 682
    if (!GEN_FTP_UTILISE && $id_type_site == '101') {
75 jpm 683
        foreach ($tab_rep_langue as $nom_rep_langue) {
684
            foreach ($tab_rep_site as $nom_rep_site) {
685
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
686
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
687
                $vieux_umask = umask(0);
688
                $resultat = creerDossier($chemin_repertoire, 0755, GEN_SEP);
689
                umask($vieux_umask);
690
                if ($resultat == false) {
96 jpm 691
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
75 jpm 692
                                'Répertoire : '. $chemin_repertoire .'<br />'.
693
                                'Ligne n° : '. __LINE__ .'<br />'.
694
                                'Fichier n° : '. __FILE__ .'<br /></p>';
695
                    return $message;
696
                }
72 jpm 697
            }
698
        }
699
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
700
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
701
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
702
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
703
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
96 jpm 704
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
75 jpm 705
                        'Fichier : '. $chemin_squelette_site .'<br />'.
6 jpm 706
                        'Ligne n° : '. __LINE__ .'<br />'.
707
                        'Fichier n° : '. __FILE__ .'<br /></p>';
708
            return $message;
709
        }
72 jpm 710
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
711
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
712
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
713
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
714
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
96 jpm 715
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
75 jpm 716
                        'Fichier : '. $chemin_style_site .'<br />'.
72 jpm 717
                        'Ligne n° : '. __LINE__ .'<br />'.
718
                        'Fichier n° : '. __FILE__ .'<br /></p>';
6 jpm 719
            return $message;
72 jpm 720
        }
115 jpm 721
    } else if (GEN_FTP_UTILISE && $id_type_site == '101') {
72 jpm 722
        // Création d'une connection ftp avec Net_FTP de PEAR
723
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
724
 
725
        // création de l'objet pear ftp
726
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
727
        // création de la connexion
728
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
729
        // identification
730
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
731
        // Gestion des erreurs ftp
732
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
733
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
734
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
735
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
736
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
737
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
738
                        'Ligne n° : '. __LINE__ .'<br />'.
739
                        'Fichier n° : '. __FILE__ .'<br /><p>';
6 jpm 740
            return $message;
72 jpm 741
        }
75 jpm 742
        foreach ($tab_rep_langue as $nom_rep_langue) {
743
            foreach ($tab_rep_site as $nom_rep_site) {
744
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
745
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site.GEN_SEP;
746
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire, true) ;
747
                if (PEAR::isError($resultat)) {
748
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
749
                                'Répertoire : '. $chemin_repertoire .'<br />'.
750
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
751
                                'Ligne n° : '. __LINE__ .'<br />'.
752
                                'Fichier n° : '. __FILE__ .'<br /></p>';
753
                    return $message;
754
                }
72 jpm 755
            }
756
        }
757
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
758
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
759
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
760
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
761
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
762
        if (PEAR::isError($resultat)) {
763
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
764
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
765
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
766
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
767
                        'Ligne n° : '. __LINE__ .'<br />'.
768
                        'Fichier n° : '. __FILE__ .'<br /></p>';
769
                return $message;
770
        }
771
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
772
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
773
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
774
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
775
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
776
        if (PEAR::isError($resultat)) {
777
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
778
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
779
                        'Fichier copié : '. $chemin_style_site .'<br />'.
780
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
781
                        'Ligne n° : '. __LINE__ .'<br />'.
782
                        'Fichier n° : '. __FILE__ .'<br /></p>';
783
                return $message;
784
        }
785
        $objet_pear_ftp->disconnect();
6 jpm 786
    }
72 jpm 787
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
6 jpm 788
    return $message;
789
}
790
 
791
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
792
*
793
* Cette fonction modifie un site géré par Papyrus.
794
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
795
*
796
* @param  string   l'objet pear de connexion à la base de données.
797
* @param  string   le tableau contenant les valeurs du formulaire.
798
* @param  int      identifiant de l'administrateur réalisant cette modification.
799
* @return string retourne un message en cas de succès ou d'échec.
800
*/
801
function ADMIN_modifierSite($db, $aso_valeurs, $id_admin)
802
{
195 jpm 803
    // Initialisation de variables
804
    $message_complement = '';
805
 
75 jpm 806
    // Récupération de l'ancien code alphanumérique
807
    $requete =  'SELECT gs_code_alpha '.
808
                'FROM gen_site '.
809
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
810
    $ancien_code_alphnum = $db->getOne($requete);
811
    if (DB::isError($ancien_code_alphnum)) {
812
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
813
    }
115 jpm 814
 
815
    // Nous vérifions si nous avons à faire à un site externe.
816
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
201 jpm 817
    $requete_complement = ', gs_url = NULL ';
205 jpm 818
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
201 jpm 819
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
115 jpm 820
        $id_type_site = '103';// c'est un site "externe"
821
    }
822
 
823
    // Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
824
    if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site == 102) {
75 jpm 825
        if (!GEN_FTP_UTILISE) {
826
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
827
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
828
            if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
829
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
830
                            'Ancien nom : '. $chemin_site_ancien .'<br />'.
831
                            'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
832
                            'Ligne n° : '. __LINE__ .'<br />'.
833
                            'Fichier n° : '. __FILE__ .'<br /></p>';
834
                return $message;
835
            }
836
        } else {
837
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
838
            $chemin_site_nouveau = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
839
            // Création d'une connection ftp avec Net_FTP de PEAR
840
            // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
841
            // création de l'objet pear ftp
842
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
843
            // création de la connexion
844
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
845
            // identification
846
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
847
            // Gestion des erreurs ftp
848
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
849
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
850
                            'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
851
                            'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
852
                            'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
853
                            'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
854
                            'Ligne n° : '. __LINE__ .'<br />'.
855
                            'Fichier n° : '. __FILE__ .'<br /><p>';
856
                return $message;
857
            }
858
            $resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
859
            if (PEAR::isError($resultat)) {
860
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
861
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
862
                            'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
863
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
864
                            'Ligne n° : '. __LINE__ .'<br />'.
865
                            'Fichier n° : '. __FILE__ .'<br /></p>';
866
                    return $message;
867
            }
868
            // On utilise la racine FTP pour rm
869
            $chemin_site_ancien = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
870
            // Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
871
            error_reporting(E_PARSE);
872
            $resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
873
            if (PEAR::isError($resultat)) {
874
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
875
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
876
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
877
                            'Ligne n° : '. __LINE__ .'<br />'.
878
                            'Fichier n° : '. __FILE__ .'<br /></p>';
879
                    return $message;
880
            }
881
            // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
882
            error_reporting(GEN_DEBOGAGE_NIVEAU);
883
            $objet_pear_ftp->disconnect();
884
        }
885
    }
115 jpm 886
 
6 jpm 887
    // Requete de mise à jour des infos d'un site dans gen_site
888
    $requete =  'UPDATE gen_site '.
889
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
890
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
891
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
892
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
893
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
894
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
895
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
896
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
897
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
898
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
899
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
900
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
901
                'gs_ce_admin = '.$id_admin.' '.
201 jpm 902
                $requete_complement.
6 jpm 903
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
904
    $resultat = $db->query($requete) ;
905
    if (DB::isError($resultat)) {
906
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
907
    }
115 jpm 908
    // Gestion du site externe
909
    if ($id_type_site == 103) {
910
        // Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
911
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
912
                    'FROM gen_site_relation '.
913
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
914
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
915
                    'AND gsr_id_valeur = 102 ';// 102 = site "principal"
916
        $nbre_relation = $db->getOne($requete);
917
        if (DB::isError($nbre_relation)) {
918
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
919
        }
920
 
921
        // Nous supprimons l'ancienne relation si nécessaire
922
        if ($nbre_relation >= 1) {
923
            $requete_supr_ext = 'DELETE FROM gen_site_relation '.
924
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
925
                                'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
926
                                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
927
            $resultat_supr_ext = $db->query($requete_supr_ext);
928
            if (DB::isError($resultat_supr_ext)) {
929
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
930
            }
931
            $message_complement =   'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
932
                                    'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
933
                                    'le serveur!';
934
        }
935
 
201 jpm 936
        // Vérification pour voir si le site est déjà "externe"
937
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
938
                    'FROM gen_site_relation '.
939
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
940
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
941
                    'AND gsr_id_valeur = 103 ';// 103 = site "externe"
942
        $nbre_relation = $db->getOne($requete);
943
        if (DB::isError($nbre_relation)) {
944
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
115 jpm 945
        }
201 jpm 946
        if ($nbre_relation == 0) {
947
            // Requete d'insertion de la relations site "externe"
948
            $requete =  'INSERT INTO gen_site_relation '.
949
                        'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
950
                        'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
951
                        'gsr_id_valeur = '.$id_type_site.', '.
952
                        'gsr_ordre = NULL ';
953
            $resultat = $db->query($requete);
954
            if (DB::isError($resultat)) {
955
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
956
            }
957
        }
205 jpm 958
 
959
        // Ajout du type de site externe
960
        $requete =  'INSERT INTO gen_site_relation '.
961
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
962
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
963
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
964
                    'gsr_ordre = NULL ';
965
        $resultat = $db->query($requete);
966
        if (DB::isError($resultat)) {
967
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
968
        }
969
 
115 jpm 970
    }
6 jpm 971
 
115 jpm 972
    // Gestion du site par défaut
6 jpm 973
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
974
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
975
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
976
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
977
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
978
        if (DB::isError($resultat_supr_defaut)) {
979
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
980
        }
981
 
982
        // Requete d'insertion de la relations site par défaut
983
        $requete =  'INSERT INTO gen_site_relation '.
984
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
985
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
986
                    'gsr_id_valeur = 101, '.
987
                    'gsr_ordre = NULL ';
988
        $resultat = $db->query($requete);
989
        if (DB::isError($resultat)) {
990
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
991
        }
992
    }
115 jpm 993
 
994
    $message = '<p class="pap_info">'.'Succés de la modification du site.'.'</p>';
995
    $message .= '<p class="pap_info">'.$message_complement.'</p>';
6 jpm 996
    return $message;
997
}
998
 
999
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
1000
*
1001
* Cette fonction ajoute le site à Papyrus, c'est à dire :
1002
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1003
* - 2. Insertion d'une ligne dans la table "gen_site".
1004
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1005
*
1006
* @param  string   l'objet pear de connexion à la base de données.
1007
* @param  string   le tableau contenant les valeurs du formulaire.
1008
* @param  int      identifiant de l'administrateur réalisant cette création.
1009
* @return string retourne un message en cas de succès ou d'échec.
1010
*/
1011
function ADMIN_supprimerSite($db, $aso_valeurs)
1012
{
1013
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
1014
    $requete =  'SELECT gs_code_alpha '.
1015
                'FROM gen_site '.
1016
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
1017
    $code_alpha_site_principal = $db->getOne($requete);
1018
    if (DB::isError($code_alpha_site_principal)) {
1019
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
1020
    }
1021
 
75 jpm 1022
    // Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
1023
    if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
1024
        $message =  '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
1025
                    'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
1026
                    'ensuite le supprimer via cette interface.</p>';
1027
        return $message;
1028
    }
1029
 
6 jpm 1030
    // Recherche des différents sites liés à celui que l'on veut détruire
1031
    // Cela comprend le site à détruire lui méme car il posséde la relations
1032
    // sur lui meme "site principale".
1033
    $requete =  'SELECT gs_id_site '.
1034
                'FROM gen_site, gen_site_relation '.
1035
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
1036
                'AND gsr_id_site_02 = gs_id_site ';
1037
    $resultat = $db->query($requete);
1038
    if (DB::isError($resultat)) {
1039
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1040
    }
1041
 
1042
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1043
        // Requete de suppression des sites liés dans gen_site
1044
        $requete_supr_site =    'DELETE FROM gen_site '.
1045
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
1046
        $resultat_supr_site = $db->query($requete_supr_site);
1047
        if (DB::isError($resultat_supr_site)) {
1048
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
1049
        }
1050
 
1051
        // Requete de suppression des relations des sites à détruire
1052
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
1053
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
1054
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
1055
        if (DB::isError($resultat_supr_site_relation)) {
1056
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
1057
        }
1058
 
1059
        // Recherche des différents menus liés au site à détruire
1060
        $requete_menu = 'SELECT gm_id_menu '.
1061
                        'FROM gen_menu '.
1062
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
1063
        $resultat_menu = $db->query($requete_menu) ;
1064
        if (DB::isError($resultat_menu)) {
1065
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
1066
        }
1067
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
1068
            // Requete de suppression des des menus
1069
            $requete_supr_menu =   'DELETE FROM gen_menu '.
1070
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
1071
            $resultat_supr_menu = $db->query($requete_supr_menu);
1072
            if (DB::isError($resultat_supr_menu)) {
1073
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
1074
            }
1075
            // Requete de suppression des relations des menus
1076
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
1077
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
1078
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
1079
            if (DB::isError($resultat_supr_menu_relation)) {
1080
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
1081
            }
1082
 
1083
            // Requete de suppression des contenus des menus
1084
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
1085
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
1086
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
1087
            if (DB::isError($resultat_supr_menu_contenu)) {
1088
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
1089
            }
1090
 
1091
            // Requete de suppression des ulr alternatives des menus
1092
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
1093
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
1094
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
1095
            if (DB::isError($resultat_supr_menu_url_alt)) {
1096
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
1097
            }
1098
        }
1099
        $resultat_menu->free();
1100
    }
1101
    $resultat->free();
1102
 
1103
    // Suppression des répertoires du site
75 jpm 1104
    if (!GEN_FTP_UTILISE) {
72 jpm 1105
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
1106
        $resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
1107
        if (!$resultat) {
1108
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
1109
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1110
                        'Ligne n° : '. __LINE__ .'<br />'.
1111
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1112
            return $message;
1113
        }
1114
    } else {
1115
        // Création d'une connection ftp avec Net_FTP de PEAR
1116
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1117
 
1118
        // création de l'objet pear ftp
1119
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1120
        // création de la connexion
1121
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1122
        // identification
75 jpm 1123
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
72 jpm 1124
        // Gestion des erreurs ftp
1125
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1126
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1127
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1128
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1129
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1130
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1131
                        'Ligne n° : '. __LINE__ .'<br />'.
1132
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1133
            return $message;
1134
        }
1135
        // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
1136
        error_reporting(E_PARSE);
1137
        $chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
1138
        $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
1139
        if (PEAR::isError($resultat)) {
1140
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
1141
                        'Erreur ftp : '.$resultat->getMessage().'<br />'.
1142
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1143
                        'Ligne n° : '. __LINE__ .'<br />'.
1144
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1145
            return $message;
1146
        }
1147
        $objet_pear_ftp->disconnect();
1148
        // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1149
        error_reporting(GEN_DEBOGAGE_NIVEAU);
6 jpm 1150
    }
72 jpm 1151
    $message = '<p class="pap_info">Succés de la suppression du site.</p>';
6 jpm 1152
    return $message;
1153
}
1154
 
1155
// +- Fin du code source  --------------------------------------------------------------------------------+
1156
/*
1157
* $Log: not supported by cvs2svn $
205 jpm 1158
* Revision 1.13  2004/12/03 16:37:34  jpm
1159
* Correction d'un bogue qui empécher la mise à jour des url des sites externes.
1160
*
201 jpm 1161
* Revision 1.12  2004/12/01 17:22:58  jpm
1162
* Ajout d'une confirmation javascript pour la suppression d'un site.
1163
*
198 jpm 1164
* Revision 1.11  2004/11/30 16:43:51  jpm
1165
* Correction de bogues.
1166
*
195 jpm 1167
* Revision 1.10  2004/11/29 17:05:28  jpm
1168
* Correction d'un bogue concernat les cases à cocher.
1169
*
190 jpm 1170
* Revision 1.9  2004/11/26 13:13:51  jpm
1171
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
1172
*
183 jpm 1173
* Revision 1.8  2004/11/03 17:59:59  jpm
1174
* Corrections bogues erreurs variable inconnue.
1175
*
123 jpm 1176
* Revision 1.7  2004/10/26 18:41:28  jpm
1177
* Gestion des sites externes à Papyrus.
1178
*
115 jpm 1179
* Revision 1.6  2004/10/22 17:25:31  jpm
1180
* Changement du nom de la class CSS d'erreur.
1181
*
96 jpm 1182
* Revision 1.5  2004/10/19 15:57:55  jpm
1183
* Amélioration de la gestion des fichiers sur le serveur.
1184
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
1185
*
75 jpm 1186
* Revision 1.4  2004/10/18 18:27:41  jpm
1187
* Correction problèmes FTP et manipulation de fichiers.
1188
*
72 jpm 1189
* Revision 1.3  2004/09/23 16:51:27  jpm
1190
* Ajout d'informations supplémentaires sur les messages d'erreur.
1191
*
55 jpm 1192
* Revision 1.2  2004/07/06 17:08:01  jpm
1193
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
1194
*
25 jpm 1195
* Revision 1.1  2004/06/16 14:28:46  jpm
1196
* Changement de nom de Génésia en Papyrus.
1197
* Changement de l'arborescence.
1198
*
6 jpm 1199
* Revision 1.20  2004/05/10 14:32:14  jpm
1200
* Changement du titre.
1201
*
1202
* Revision 1.19  2004/05/10 12:23:39  jpm
1203
* Modification formulaire.
1204
*
1205
* Revision 1.18  2004/05/07 16:33:53  jpm
1206
* Amélioration des formulaires.
1207
*
1208
* Revision 1.17  2004/05/07 07:22:51  jpm
1209
* Ajout de la gestion des modification et suppression de site.
1210
* Amélioration de la création des sites.
1211
*
1212
* Revision 1.16  2004/04/30 16:22:53  jpm
1213
* Poursuite de l'administration des sites.
1214
*
1215
* Revision 1.14  2004/04/02 15:58:39  jpm
1216
* Modification fonction liste des projets.
1217
*
1218
* Revision 1.13  2004/04/01 11:21:41  jpm
1219
* Ajout et modification de commentaires pour PhpDocumentor.
1220
*
1221
* Revision 1.12  2004/03/24 20:01:02  jpm
1222
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
1223
*
1224
* Revision 1.11  2004/03/24 10:06:01  jpm
1225
* Ajout des commentaires d'entête.
1226
* Début mise en conformité avec la convention de codage.
1227
* Début traitement de la fonction listant les projets.
1228
*
1229
*
1230
*/
1231
?>