Subversion Repositories Applications.papyrus

Rev

Rev 195 | Rev 201 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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