Subversion Repositories Applications.papyrus

Rev

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

Rev 790 Rev 914
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) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: adsi_site.fonct.php,v 1.29 2006-03-23 20:24:58 ddelon Exp $
22
// CVS : $Id: adsi_site.fonct.php,v 1.30 2006-07-19 13:57:35 ddelon Exp $
23
/**
23
/**
24
* Bibliothèque de fonctions d'admininistration des projets
24
* Bibliothèque de fonctions d'admininistration des projets
25
*
25
*
26
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
26
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
27
* sur les projets (=sites gérés par Papyrus).
27
* sur les projets (=sites gérés par Papyrus).
28
*
28
*
29
*@package Admin_site
29
*@package Admin_site
30
*@subpackage Fonctions
30
*@subpackage Fonctions
31
//Auteur original :
31
//Auteur original :
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
33
//Autres auteurs :
33
//Autres auteurs :
34
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
34
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
35
*@author        Laurent COUDOUNEAU <lc@gsite.org>
35
*@author        Laurent COUDOUNEAU <lc@gsite.org>
36
*@copyright     Tela-Botanica 2000-2004
36
*@copyright     Tela-Botanica 2000-2004
37
*@version       $Revision: 1.29 $ $Date: 2006-03-23 20:24:58 $
37
*@version       $Revision: 1.30 $ $Date: 2006-07-19 13:57:35 $
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
39
*/
39
*/
40
 
40
 
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
// |                                            ENTÊTE du PROGRAMME                                       |
42
// |                                            ENTÊTE du PROGRAMME                                       |
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
if (GEN_FTP_UTILISE) {
44
if (GEN_FTP_UTILISE) {
45
    /** Inclusion bibliothèque de PEAR gérant le FTP.*/
45
    /** Inclusion bibliothèque de PEAR gérant le FTP.*/
46
    require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
46
    require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
47
}
47
}
48
 
48
 
49
// +------------------------------------------------------------------------------------------------------+
49
// +------------------------------------------------------------------------------------------------------+
50
// |                                            CORPS du PROGRAMME                                        |
50
// |                                            CORPS du PROGRAMME                                        |
51
// +------------------------------------------------------------------------------------------------------+
51
// +------------------------------------------------------------------------------------------------------+
52
/** Fonction ADMIN_afficherListeSites()- Génére le xhtml permettant de choisir un site parmis une liste.
52
/** Fonction ADMIN_afficherListeSites()- Génére le xhtml permettant de choisir un site parmis une liste.
53
*
53
*
54
* Cette fonction fournie une liste des sites principaux gérés par Génésia.
54
* Cette fonction fournie une liste des sites principaux gérés par Génésia.
55
*
55
*
56
* @param  string   l'objet Pear DB.
56
* @param  string   l'objet Pear DB.
57
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
57
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
58
* @param  string   un message important à destination de l'utilisateur.
58
* @param  string   un message important à destination de l'utilisateur.
59
* return  string   le code XHTML à retourner.
59
* return  string   le code XHTML à retourner.
60
*/
60
*/
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
62
{
62
{
63
	
63
	
64
	$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie
64
	$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie
65
	
65
	
66
	// Langue en cours : langue choisie ou langue par defaut (principale)
66
	// Langue en cours : langue choisie ou langue par defaut (principale)
67
	
67
	
68
	if (isset($id_langue) && ($id_langue!='')) {
68
	if (isset($id_langue) && ($id_langue!='')) {
69
		$langue_test=$id_langue;
69
		$langue_test=$id_langue;
70
	} else {
70
	} else {
71
		$langue_test=GEN_I18N_ID_DEFAUT;
71
		$langue_test=GEN_I18N_ID_DEFAUT;
72
	}
72
	}
73
 
73
 
74
    // Liste des sites principaux :
74
    // Liste des sites principaux :
75
    // Recherche de tous les sites langue en cours
75
    // Recherche de tous les sites langue en cours
76
    
76
    
77
    $requete =  'SELECT * '.
77
    $requete =  'SELECT * '.
78
                'FROM gen_site, gen_site_relation '.
78
                'FROM gen_site, gen_site_relation '.
79
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
79
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
80
                'AND gsr_id_site_01 = gs_id_site '.
80
                'AND gsr_id_site_01 = gs_id_site '.
81
                'AND gsr_id_valeur IN (102, 103) '.
81
                'AND gsr_id_valeur IN (102, 103) '.
82
                'AND gs_ce_i18n = "'.$langue_test.'" '.
82
                'AND gs_ce_i18n = "'.$langue_test.'" '.
83
                'ORDER BY gsr_ordre';
83
                'ORDER BY gsr_ordre';
84
                    
84
                    
85
    
85
    
86
    $resultat = $db->query($requete);
86
    $resultat = $db->query($requete);
87
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
87
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
88
    
88
    
89
    $liste_site=array();
89
    $liste_site=array();
90
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
90
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
91
    	
91
    	
92
    		if ($langue_test == GEN_I18N_ID_DEFAUT) {
92
    		if ($langue_test == GEN_I18N_ID_DEFAUT) {
93
    			
93
    			
94
    		  $requete_est_traduction =   'SELECT gsr_id_site_01 '.
94
    		  $requete_est_traduction =   'SELECT gsr_id_site_01 '.
95
	                       'FROM  gen_site_relation '.
95
	                       'FROM  gen_site_relation '.
96
	                       'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
96
	                       'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
97
	                  	   'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
97
	                  	   'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
98
	                       'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
98
	                       'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
99
	                                
99
	                                
100
	                                
100
	                                
101
	            $resultat_est_traduction = $db->query($requete_est_traduction);
101
	            $resultat_est_traduction = $db->query($requete_est_traduction);
102
	            (DB::isError($resultat_est_traduction))
102
	            (DB::isError($resultat_est_traduction))
103
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
103
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
104
	                : '';
104
	                : '';
105
	                
105
	                
106
	   			if ( $resultat_est_traduction->numRows() == 0 ) {
106
	   			if ( $resultat_est_traduction->numRows() == 0 ) {
107
    	 			$liste_site[]=$ligne;
107
    	 			$liste_site[]=$ligne;
108
	            }
108
	            }
109
    		}
109
    		}
110
    		else {
110
    		else {
111
    			   $liste_site[]=$ligne;
111
    			   $liste_site[]=$ligne;
112
    		}
112
    		}
113
    }
113
    }
114
    $resultat->free();
114
    $resultat->free();
115
    
115
    
116
    // Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue
116
    // Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue
117
    // la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions
117
    // la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions
118
  	
118
  	
119
  	
119
  	
120
	if ($langue_test != GEN_I18N_ID_DEFAUT) {
120
	if ($langue_test != GEN_I18N_ID_DEFAUT) {
121
 
121
 
122
    
122
    
123
	    $requete =  'SELECT * '.
123
	    $requete =  'SELECT * '.
124
	                'FROM gen_site, gen_site_relation '.
124
	                'FROM gen_site, gen_site_relation '.
125
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
125
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
126
	                'AND gs_id_site = gsr_id_site_01 '.
126
	                'AND gs_id_site = gsr_id_site_01 '.
127
	                'AND gsr_id_valeur IN (102, 103) '.
127
	                'AND gsr_id_valeur IN (102, 103) '.
128
	                'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
128
	                'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
129
	                'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe"
129
	                'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe"
130
	                
130
	                
131
	    $resultat = $db->query($requete);
131
	    $resultat = $db->query($requete);
132
	    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
132
	    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
133
	    
133
	    
134
	    
134
	    
135
	            
135
	            
136
	    
136
	    
137
	    // Recherche de tous les sites de la langue principale  qui ne sont pas traduits dans la langue en cours
137
	    // Recherche de tous les sites de la langue principale  qui ne sont pas traduits dans la langue en cours
138
	    
138
	    
139
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
139
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
140
	    	
140
	    	
141
	    		$requete_est_traduction =   'SELECT gsr_id_site_01 '.
141
	    		$requete_est_traduction =   'SELECT gsr_id_site_01 '.
142
	                                'FROM  gen_site_relation '.
142
	                                'FROM  gen_site_relation '.
143
	                                'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
143
	                                'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
144
	                                'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
144
	                                'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
145
	                                'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
145
	                                'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
146
	                                
146
	                                
147
	                                
147
	                                
148
	            $resultat_est_traduction = $db->query($requete_est_traduction);
148
	            $resultat_est_traduction = $db->query($requete_est_traduction);
149
	            (DB::isError($resultat_est_traduction))
149
	            (DB::isError($resultat_est_traduction))
150
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
150
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
151
	                : '';
151
	                : '';
152
	                
152
	                
153
	            if ( $resultat_est_traduction->numRows() == 0 ) {
153
	            if ( $resultat_est_traduction->numRows() == 0 ) {
154
	            	
154
	            	
155
		    	
155
		    	
156
					if (isset($id_langue) && ($id_langue!='')) {
156
					if (isset($id_langue) && ($id_langue!='')) {
157
						$langue_test=$id_langue;
157
						$langue_test=$id_langue;
158
					} else {
158
					} else {
159
						$langue_test=GEN_I18N_ID_DEFAUT;
159
						$langue_test=GEN_I18N_ID_DEFAUT;
160
					}
160
					}
161
				    	
161
				    	
162
		    		$requete_traduction =   'SELECT gsr_id_site_01 '.
162
		    		$requete_traduction =   'SELECT gsr_id_site_01 '.
163
		                                    'FROM  gen_site_relation, gen_site '.
163
		                                    'FROM  gen_site_relation, gen_site '.
164
		                                    'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
164
		                                    'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
165
		                                    'AND gsr_id_site_02 = gs_id_site '.
165
		                                    'AND gsr_id_site_02 = gs_id_site '.
166
		                                    'AND gs_ce_i18n = "'.$langue_test.'" '.
166
		                                    'AND gs_ce_i18n = "'.$langue_test.'" '.
167
		                                    'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
167
		                                    'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
168
		                                    
168
		                                    
169
		            $resultat_traduction = $db->query($requete_traduction);
169
		            $resultat_traduction = $db->query($requete_traduction);
170
		            (DB::isError($resultat_traduction))
170
		            (DB::isError($resultat_traduction))
171
		                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
171
		                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
172
		                : '';
172
		                : '';
173
		                
173
		                
174
		            if ( $resultat_traduction->numRows() == 0 ) {
174
		            if ( $resultat_traduction->numRows() == 0 ) {
175
		            	$liste_site []=$ligne;
175
		            	$liste_site []=$ligne;
176
		            }
176
		            }
177
		            
177
		            
178
		            $resultat_traduction->free();
178
		            $resultat_traduction->free();
179
		            
179
		            
180
	            }
180
	            }
181
	               $resultat_est_traduction->free();
181
	               $resultat_est_traduction->free();
182
		    
182
		    
183
	    }
183
	    }
184
	    $resultat->free();
184
	    $resultat->free();
185
	}
185
	}
186
    
186
    
187
    
187
    
188
  
188
  
189
    //----------------------------------------------------------------------------
189
    //----------------------------------------------------------------------------
190
    // Création du formulaire
190
    // Création du formulaire
191
    $form =& new HTML_QuickForm('form_sites', 'post', str_replace('&amp;', '&', $url));
191
    $form =& new HTML_QuickForm('form_sites', 'post', str_replace('&amp;', '&', $url));
192
    $tab_index = 1000;
192
    $tab_index = 1000;
193
    $squelette =& $form->defaultRenderer();
193
    $squelette =& $form->defaultRenderer();
194
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
194
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
195
    $squelette->setElementTemplate( '<li>'."\n".'{label}'."\n".'{element}'."\n".
195
    $squelette->setElementTemplate( '<li>'."\n".'{label}'."\n".'{element}'."\n".
196
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
196
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
197
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
197
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
198
                                    '</li>'."\n");
198
                                    '</li>'."\n");
199
    $squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
199
    $squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
200
    
200
    
201
    $partie_site_debut =    '<fieldset>'."\n".
201
    $partie_site_debut =    '<fieldset>'."\n".
202
                            '<legend>Listes des sites</legend>'."\n".
202
                            '<legend>Listes des sites</legend>'."\n".
203
                            '<ul>'."\n";
203
                            '<ul>'."\n";
204
    $form->addElement('html', $partie_site_debut);
204
    $form->addElement('html', $partie_site_debut);
205
    
205
    
206
    $aso_options = array();
206
    $aso_options = array();
207
    foreach ($liste_site as $ligne ) {
207
    foreach ($liste_site as $ligne ) {
208
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
208
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
209
        
209
        
210
        // Affichage des traductions
210
        // Affichage des traductions
211
        $requete_traduction =   'SELECT * '.
211
        $requete_traduction =   'SELECT * '.
212
	                            'FROM  gen_site_relation, gen_site '.
212
	                            'FROM  gen_site_relation, gen_site '.
213
	                            'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
213
	                            'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
214
	                            'AND gsr_id_site_02 <> gsr_id_site_01 '.
214
	                            'AND gsr_id_site_02 <> gsr_id_site_01 '.
215
	                            'AND gsr_id_site_02 = gs_id_site '.
215
	                            'AND gsr_id_site_02 = gs_id_site '.
216
	                            'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
216
	                            'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
217
	    $resultat_traduction = $db->query($requete_traduction);
217
	    $resultat_traduction = $db->query($requete_traduction);
218
        (DB::isError($resultat_traduction))
218
        (DB::isError($resultat_traduction))
219
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
219
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
220
            : '';
220
            : '';
221
        
221
        
222
        while ($ligne_traduction = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) {    
222
        while ($ligne_traduction = $resultat_traduction->fetchRow(DB_FETCHMODE_OBJECT)) {    
223
        	$aso_options[$ligne_traduction->gs_id_site] = '&nbsp;&nbsp;&nbsp;'.$ligne_traduction->gs_ce_i18n.":&nbsp;".htmlentities($ligne_traduction->gs_nom.' ('.$ligne_traduction->gs_code_alpha.')');
223
        	$aso_options[$ligne_traduction->gs_id_site] = '&nbsp;&nbsp;&nbsp;'.$ligne_traduction->gs_ce_i18n.":&nbsp;".htmlentities($ligne_traduction->gs_nom.' ('.$ligne_traduction->gs_code_alpha.')');
224
        }
224
        }
225
        $resultat_traduction->free();
225
        $resultat_traduction->free();
226
    
226
    
227
    }
227
    }
228
    
228
    
229
    $id = 'form_sites_id_site';
229
    $id = 'form_sites_id_site';
230
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
230
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
231
    $label = '<label for="'.$id.'">'.'Listes des sites : '.'</label>';
231
    $label = '<label for="'.$id.'">'.'Listes des sites : '.'</label>';
232
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
232
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
233
    
233
    
234
    $partie_site_fin =  '</ul>'."\n".
234
    $partie_site_fin =  '</ul>'."\n".
235
                        '</fieldset>'."\n";
235
                        '</fieldset>'."\n";
236
    $form->addElement('html', $partie_site_fin);
236
    $form->addElement('html', $partie_site_fin);
237
    
237
    
238
    $liste_bouton_debut = '<ul class="liste_bouton">'."\n";
238
    $liste_bouton_debut = '<ul class="liste_bouton">'."\n";
239
    $form->addElement('html', $liste_bouton_debut);
239
    $form->addElement('html', $liste_bouton_debut);
240
    
240
    
241
    $id = 'form_sites_ajouter';
241
    $id = 'form_sites_ajouter';
242
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
242
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
243
    $label = 'Ajouter';
243
    $label = 'Ajouter';
244
    $form->addElement('submit', $id, $label, $aso_attributs);
244
    $form->addElement('submit', $id, $label, $aso_attributs);
245
    
245
    
246
    $id = 'form_sites_modifier';
246
    $id = 'form_sites_modifier';
247
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
247
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
248
    $label = 'Modifier';
248
    $label = 'Modifier';
249
    $form->addElement('submit', $id, $label, $aso_attributs);
249
    $form->addElement('submit', $id, $label, $aso_attributs);
250
 
250
 
251
    $id = 'form_sites_traduire';
251
    $id = 'form_sites_traduire';
252
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
252
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
253
    $label = 'Traduire';
253
    $label = 'Traduire';
254
    $form->addElement('submit', $id, $label, $aso_attributs);
254
    $form->addElement('submit', $id, $label, $aso_attributs);
255
    
255
    
256
    $id = 'form_sites_supprimer';
256
    $id = 'form_sites_supprimer';
257
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
257
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
258
    $label = 'Supprimer';
258
    $label = 'Supprimer';
259
    $form->addElement('submit', $id, $label, $aso_attributs);
259
    $form->addElement('submit', $id, $label, $aso_attributs);
260
    
260
    
261
    $liste_bouton_fin = '</ul>'."\n";
261
    $liste_bouton_fin = '</ul>'."\n";
262
    $form->addElement('html', $liste_bouton_fin);
262
    $form->addElement('html', $liste_bouton_fin);
263
    
263
    
264
    $sortie = $form->toHTML()."\n";
264
    $sortie = $form->toHTML()."\n";
265
    
265
    
266
    // Titre de la page:
266
    // Titre de la page:
267
    $titre = 'Configuration des sites';
267
    $titre = 'Configuration des sites';
268
    
268
    
269
    // Construction de la page.
269
    // Construction de la page.
270
    return ADMIN_contruirePage($titre, $sortie, $message);
270
    return ADMIN_contruirePage($titre, $sortie, $message);
271
}
271
}
272
 
272
 
273
/** Fonction ADMIN_validerFormListesSites() - Valide les données issues du formulaire de liste de sites.
273
/** Fonction ADMIN_validerFormListesSites() - Valide les données issues du formulaire de liste de sites.
274
*
274
*
275
* Cette fonction valide les données du formulaire de liste de site.
275
* Cette fonction valide les données du formulaire de liste de site.
276
*
276
*
277
* @param  string   l'objet pear de connexion à la base de données.
277
* @param  string   l'objet pear de connexion à la base de données.
278
* @param  string   le tableau contenant les valeurs du formulaire.
278
* @param  string   le tableau contenant les valeurs du formulaire.
279
* @return string   retourne les messages d'erreurs sinon rien.
279
* @return string   retourne les messages d'erreurs sinon rien.
280
*/
280
*/
281
function ADMIN_validerFormListesSites(&$db, $aso_valeurs)
281
function ADMIN_validerFormListesSites(&$db, $aso_valeurs)
282
{
282
{
283
    $message = '';
283
    $message = '';
284
    
284
    
285
    // Validation des données du formulaire
285
    // Validation des données du formulaire
286
    if (empty($aso_valeurs['form_sites_id_site'])) {
286
    if (empty($aso_valeurs['form_sites_id_site'])) {
287
        $message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
287
        $message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
288
    }
288
    }
289
    
289
    
290
    return $message;
290
    return $message;
291
}
291
}
292
 
292
 
293
/** Fonction ADMIN_afficherFormSite()- Génére un formulaire pour gen_site.
293
/** Fonction ADMIN_afficherFormSite()- Génére un formulaire pour gen_site.
294
*
294
*
295
* Cette fonction retourne un formulaire pour modification ou pour ajout.
295
* Cette fonction retourne un formulaire pour modification ou pour ajout.
296
*
296
*
297
* @param  string   l'objet pear de connexion à la base de données.
297
* @param  string   l'objet pear de connexion à la base de données.
298
* @param  string   l'url à laquelle renvoyer le formulaire.
298
* @param  string   l'url à laquelle renvoyer le formulaire.
299
* @param  string   le tableau contenant les valeurs du formulaire.
299
* @param  string   le tableau contenant les valeurs du formulaire.
300
* @param  string   un message à destination de l'utilisateur.
300
* @param  string   un message à destination de l'utilisateur.
301
* return  string   le code XHTML à retourner.
301
* return  string   le code XHTML à retourner.
302
*/
302
*/
303
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
303
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
304
{
304
{
305
    // Initialisation des valeurs
305
    // Initialisation des valeurs
306
    $sortie = '';
306
    $sortie = '';
307
    $aso_valeurs['modification'] = false;
307
    $aso_valeurs['modification'] = false;
308
    $aso_valeurs['traduction'] = false;
308
    $aso_valeurs['traduction'] = false;
309
    $aso_valeurs['defaut'] = false;
309
    $aso_valeurs['defaut'] = false;
310
    $aso_valeurs['type_site_externe'] = 0;
310
    $aso_valeurs['type_site_externe'] = 0;
311
    // Nous cherchons à savoir si nous somme en modification
311
    // Nous cherchons à savoir si nous somme en modification
312
    if ((isset($aso_valeurs['form_sites_modifier']))  || (isset($aso_valeurs['form_sites_traduire'])))  {
312
    if ((isset($aso_valeurs['form_sites_modifier']))  || (isset($aso_valeurs['form_sites_traduire'])))  {
313
    	if ((isset($aso_valeurs['form_sites_modifier']))) { 
313
    	if ((isset($aso_valeurs['form_sites_modifier']))) { 
314
        	$as_val['modification'] = true;
314
        	$as_val['modification'] = true;
315
        	$as_val['traduction'] = false;
315
        	$as_val['traduction'] = false;
316
    	}
316
    	}
317
        else { 
317
        else { 
318
        	$as_val['traduction'] = true;
318
        	$as_val['traduction'] = true;
319
        	$as_val['modification'] = false;
319
        	$as_val['modification'] = false;
320
        }
320
        }
321
        
321
        
322
        if ($as_val['traduction']) {
322
        if ($as_val['traduction']) {
323
	        // Traduction d'un site principal uniquement :
323
	        // Traduction d'un site principal uniquement :
324
	        
324
	        
325
	        $requete =  'SELECT * '.
325
	        $requete =  'SELECT * '.
326
	                    'FROM gen_site_relation '.
326
	                    'FROM gen_site_relation '.
327
	                    'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
327
	                    'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
328
	                    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
328
	                    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
329
	        
329
	        
330
	        $resultat = $db->query($requete);
330
	        $resultat = $db->query($requete);
331
	        
331
	        
332
	        if (DB::isError($resultat)) {
332
	        if (DB::isError($resultat)) {
333
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
333
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
334
	        }
334
	        }
335
	
335
	
336
	        if ( $resultat->numRows() == 0 ) {
336
	        if ( $resultat->numRows() == 0 ) {
337
	        	$site_id = $aso_valeurs['form_sites_id_site'];
337
	        	$site_id = $aso_valeurs['form_sites_id_site'];
338
	        }
338
	        }
339
	        else {
339
	        else {
340
	        	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
340
	        	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
341
		        $site_id = $ligne->gsr_id_site_01;
341
		        $site_id = $ligne->gsr_id_site_01;
342
	        }
342
	        }
343
	        $resultat->free();
343
	        $resultat->free();
344
       		 }
344
       		 }
345
        else {
345
        else {
346
          	$site_id = $aso_valeurs['form_sites_id_site'];
346
          	$site_id = $aso_valeurs['form_sites_id_site'];
347
      	 }
347
      	 }
348
	        
348
	        
349
	        // Requete pour récupérer les informations sur le site à modifier
349
	        // Requete pour récupérer les informations sur le site à modifier
350
	        $requete =  'SELECT * '.
350
	        $requete =  'SELECT * '.
351
	                    'FROM gen_site '.
351
	                    'FROM gen_site '.
352
	                    'WHERE gs_id_site = '.$site_id;
352
	                    'WHERE gs_id_site = '.$site_id;
353
	        $resultat = $db->query($requete);
353
	        $resultat = $db->query($requete);
354
	        if (DB::isError($resultat)) {
354
	        if (DB::isError($resultat)) {
355
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
355
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
356
	        }
356
	        }
357
	        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
357
	        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
358
	        $site_ligne = $aso_valeurs;
358
	        $site_ligne = $aso_valeurs;
359
	        $resultat->free();
359
	        $resultat->free();
360
        
360
        
361
        // Requete pour récupérer les informations issues des relations du site à modifier
361
        // Requete pour récupérer les informations issues des relations du site à modifier
362
        $requete =  'SELECT * '.
362
        $requete =  'SELECT * '.
363
                    'FROM gen_site_relation '.
363
                    'FROM gen_site_relation '.
364
                    'WHERE gsr_id_site_01 = '.$site_id.' '.
364
                    'WHERE gsr_id_site_01 = '.$site_id.' '.
365
                    'AND gsr_id_site_01 = gsr_id_site_02';
365
                    'AND gsr_id_site_01 = gsr_id_site_02';
366
        $resultat = $db->query($requete);
366
        $resultat = $db->query($requete);
367
        if (DB::isError($resultat)) {
367
        if (DB::isError($resultat)) {
368
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
368
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
369
        }
369
        }
370
        
370
        
371
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
371
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
372
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
372
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
373
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
373
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
374
                $aso_valeurs['defaut'] = true;
374
                $aso_valeurs['defaut'] = true;
375
            }
375
            }
376
            foreach ($tab_type as $cle => $val) {
376
            foreach ($tab_type as $cle => $val) {
377
                if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe à Papyrus
377
                if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe à Papyrus
378
                    $aso_valeurs['type_site_externe'] = $val['id'];
378
                    $aso_valeurs['type_site_externe'] = $val['id'];
379
                }
379
                }
380
            }
380
            }
381
        }
381
        }
382
        $resultat->free();
382
        $resultat->free();
383
        
383
        
384
        if (($as_val['modification'])) { 
384
        if (($as_val['modification'])) { 
385
        	$aso_valeurs['modification'] = true;
385
        	$aso_valeurs['modification'] = true;
386
        	$aso_valeurs['traduction'] = false;
386
        	$aso_valeurs['traduction'] = false;
387
        }
387
        }
388
        else { 
388
        else { 
389
        	$aso_valeurs['traduction'] = true;
389
        	$aso_valeurs['traduction'] = true;
390
        	$aso_valeurs['modification'] = false;
390
        	$aso_valeurs['modification'] = false;
391
        };
391
        };
392
      
392
      
393
        
393
        
394
        
394
        
395
    } else if (isset($aso_valeurs['gs_id_site'])) {
395
    } else if (isset($aso_valeurs['gs_id_site'])) {
396
        $aso_valeurs['modification'] = true;
396
        $aso_valeurs['modification'] = true;
397
    }
397
    }
398
    // Débogage :
398
    // Débogage :
399
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
399
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
400
    //-------------------------------------------------------------------------------------------------------------------
400
    //-------------------------------------------------------------------------------------------------------------------
401
    // Information précédent le formulaire (en modification)
401
    // Information précédent le formulaire (en modification)
402
    if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
402
    if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
403
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
403
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
404
    }
404
    }
405
    //-------------------------------------------------------------------------------------------------------------------
405
    //-------------------------------------------------------------------------------------------------------------------
406
    // Création du formulaire
406
    // Création du formulaire
407
    $form =& new HTML_QuickForm('site', 'post', str_replace('&amp;', '&', $url));
407
    $form =& new HTML_QuickForm('site', 'post', str_replace('&amp;', '&', $url));
408
    $tab_index = 1000;
408
    $tab_index = 1000;
409
    $squelette =& $form->defaultRenderer();
409
    $squelette =& $form->defaultRenderer();
410
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
410
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
411
    $squelette->setElementTemplate(  '<li>'."\n".
411
    $squelette->setElementTemplate(  '<li>'."\n".
412
                                    '{label}'."\n".
412
                                    '{label}'."\n".
413
                                    '{element}'."\n".
413
                                    '{element}'."\n".
414
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
414
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
415
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
415
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
416
                                    '</li>'."\n");
416
                                    '</li>'."\n");
417
    $squelette->setGroupElementTemplate('{label}'."\n".
417
    $squelette->setGroupElementTemplate('{label}'."\n".
418
                                        '{element}'."\n".
418
                                        '{element}'."\n".
419
                                        '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
419
                                        '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
420
                                        '&nbsp;'."\n"
420
                                        '&nbsp;'."\n"
421
                                        , 'double');
421
                                        , 'double');
422
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
422
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
423
    
423
    
424
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
424
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
425
    $form->addElement('html', $partie_site_debut);
425
    $form->addElement('html', $partie_site_debut);
426
    
426
    
427
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
427
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
428
        $form->addElement('hidden', 'gs_id_site');
428
        $form->addElement('hidden', 'gs_id_site');
429
        $form->addElement('hidden', 'modification');
429
        $form->addElement('hidden', 'modification');
430
        $form->addElement('hidden', 'traduction');
430
        $form->addElement('hidden', 'traduction');
431
    }
431
    }
432
    
432
    
433
    $id = 'gs_nom';
433
    $id = 'gs_nom';
434
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100, 'value' => 'nom du site');
434
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 100, 'value' => 'nom du site');
435
    $label = '<label for="'.$id.'">'.'Nom du site : '.'</label>';
435
    $label = '<label for="'.$id.'">'.'Nom du site : '.'</label>';
436
    $form->addElement('text', $id, $label, $aso_attributs);
436
    $form->addElement('text', $id, $label, $aso_attributs);
437
    $form->addRule($id, 'Un nom est requis pour le site !', 'required', '', 'client');
437
    $form->addRule($id, 'Un nom est requis pour le site !', 'required', '', 'client');
438
    
438
    
439
    $id = 'gs_code_alpha';
439
    $id = 'gs_code_alpha';
440
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 'site_01');
440
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 'site_01');
441
    $label = '<label for="'.$id.'">'.'Code alphanumérique : '.'</label>';
441
    $label = '<label for="'.$id.'">'.'Code alphanumérique : '.'</label>';
442
    $form->addElement('text', $id, $label, $aso_attributs);
442
    $form->addElement('text', $id, $label, $aso_attributs);
443
    $form->addRule('gs_code_alpha', 'Un code alphanumérique est requis pour le site !', 'required', '', 'client');
443
    $form->addRule('gs_code_alpha', 'Un code alphanumérique est requis pour le site !', 'required', '', 'client');
444
    
444
    
445
    $id = 'gs_code_num';
445
    $id = 'gs_code_num';
446
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 1);
446
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 20, 'maxlength' => 20, 'value' => 1);
447
    $label = '<label for="'.$id.'">'.'Code numérique : '.'</label>';
447
    $label = '<label for="'.$id.'">'.'Code numérique : '.'</label>';
448
    $form->addElement('text', $id, $label, $aso_attributs);
448
    $form->addElement('text', $id, $label, $aso_attributs);
449
    $form->addRule('gs_code_num', 'Un code numérique est requis pour le site !', 'required', '', 'client');
449
    $form->addRule('gs_code_num', 'Un code numérique est requis pour le site !', 'required', '', 'client');
450
    
450
    
451
    $id = 'gs_raccourci_clavier';
451
    $id = 'gs_raccourci_clavier';
452
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1, 'value' => 'Z');
452
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'size' => 1, 'maxlength' => 1, 'value' => 'Z');
453
    $label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>';
453
    $label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>';
454
    $form->addElement('text', $id, $label, $aso_attributs);
454
    $form->addElement('text', $id, $label, $aso_attributs);
455
    
455
    
456
    // Requete pour connaitre les identifications dispo
456
    // Requete pour connaitre les identifications dispo
457
    $requete =  'SELECT * '.
457
    $requete =  'SELECT * '.
458
                'FROM gen_site_auth '.
458
                'FROM gen_site_auth '.
459
                'WHERE gsa_id_auth != 0';
459
                'WHERE gsa_id_auth != 0';
460
    $resultat = $db->query($requete) ;
460
    $resultat = $db->query($requete) ;
461
    if (DB::isError($resultat)) {
461
    if (DB::isError($resultat)) {
462
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
462
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
463
    }
463
    }
464
    $aso_options = array();
464
    $aso_options = array();
465
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
465
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
466
        // Test pour connaître le type d'authentification.
466
        // Test pour connaître le type d'authentification.
467
        $type = '';
467
        $type = '';
468
        if ($ligne->gsa_ce_type_auth == '1' ) {
468
        if ($ligne->gsa_ce_type_auth == '1' ) {
469
            $type = 'Base de données';
469
            $type = 'Base de données';
470
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
470
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
471
            $type = 'LDAP';
471
            $type = 'LDAP';
472
        }
472
        }
473
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
473
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
474
    }
474
    }
475
    $resultat->free();
475
    $resultat->free();
476
    $id = 'gs_ce_auth';
476
    $id = 'gs_ce_auth';
477
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
477
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
478
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
478
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
479
    $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
479
    $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
480
    if (isset($aso_valeurs['gs_ce_auth'])) {
480
    if (isset($aso_valeurs['gs_ce_auth'])) {
481
    	$s->loadArray($aso_options,$aso_valeurs['gs_ce_auth']);
481
    	$s->loadArray($aso_options,$aso_valeurs['gs_ce_auth']);
482
    	$form->addElement($s);
482
    	$form->addElement($s);
483
    }
483
    }
484
     
484
     
485
    
485
    
486
    // En modification nous affichons la liste des squelettes disponibles dans
486
    // En modification nous affichons la liste des squelettes disponibles dans
487
    // le dossier du site.
487
    // le dossier du site.
488
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
488
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
489
        $aso_options = array();
489
        $aso_options = array();
490
        if (!GEN_FTP_UTILISE) {
490
        if (!GEN_FTP_UTILISE) {
491
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
491
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
492
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
492
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
493
            $dossier = opendir($chemin_squelettes);
493
            $dossier = opendir($chemin_squelettes);
494
            while(($fichier = readdir($dossier)) !== false) {
494
            while(($fichier = readdir($dossier)) !== false) {
495
                if ($fichier != '.' && $fichier != '..') {
495
                if ($fichier != '.' && $fichier != '..') {
496
                    $chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
496
                    $chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
497
                    if (filetype($chemin_type) != 'dir') {
497
                    if (filetype($chemin_type) != 'dir') {
498
                        $aso_options[$fichier] = $fichier;
498
                        $aso_options[$fichier] = $fichier;
499
                    }
499
                    }
500
                }
500
                }
501
            }
501
            }
502
        } else {
502
        } else {
503
            // ouverture des squelettes présent dans le dossier du site 
503
            // ouverture des squelettes présent dans le dossier du site 
504
            // création de l'objet pear ftp
504
            // création de l'objet pear ftp
505
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
505
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
506
            // création de la connexion
506
            // création de la connexion
507
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
507
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
508
            // identification
508
            // identification
509
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
509
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
510
            // Gestion des erreurs ftp
510
            // Gestion des erreurs ftp
511
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
511
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
512
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
512
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
513
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
513
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
514
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
514
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
515
                    'Ligne n° : '. __LINE__ .'<br />'.
515
                    'Ligne n° : '. __LINE__ .'<br />'.
516
                    'Fichier n° : '. __FILE__ .'<br />');
516
                    'Fichier n° : '. __FILE__ .'<br />');
517
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
517
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
518
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
518
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
519
            }
519
            }
520
            $chemin_squelettes =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
520
            $chemin_squelettes =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
521
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
521
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
522
            $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
522
            $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
523
            $aso_options = array();
523
            $aso_options = array();
524
            for ($i = 0; $i < count($tab_squelettes) ; $i++) {
524
            for ($i = 0; $i < count($tab_squelettes) ; $i++) {
525
                if ($tab_squelettes[$i]['is_dir'] == false) {
525
                if ($tab_squelettes[$i]['is_dir'] == false) {
526
                    $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
526
                    $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
527
                }
527
                }
528
            }
528
            }
529
            $objet_pear_ftp->disconnect();
529
            $objet_pear_ftp->disconnect();
530
        }
530
        }
531
        
531
        
532
        // Vérification de la présence de squelettes
532
        // Vérification de la présence de squelettes
533
        if (count($aso_options) == 0) {
533
        if (count($aso_options) == 0) {
534
            $aso_options['Aucun squelette'] = 'Aucun squelette';
534
            $aso_options['Aucun squelette'] = 'Aucun squelette';
535
        }
535
        }
536
        
536
        
537
        $id = 'gs_fichier_squelette';
537
        $id = 'gs_fichier_squelette';
538
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
538
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
539
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
539
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
540
        $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
540
        $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
541
    	$s->loadArray($aso_options,$aso_valeurs['gs_fichier_squelette']);
541
    	$s->loadArray($aso_options,$aso_valeurs['gs_fichier_squelette']);
542
    	$form->addElement($s);
542
    	$form->addElement($s);
543
    
543
    
544
    }
544
    }
545
    
545
    
546
    // Requete pour connaitre les internationalisation dispo
546
    // Requete pour connaitre les internationalisation dispo
547
    
547
    
548
    if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
548
    if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
549
    	$requete =  'SELECT * '.
549
    	$requete =  'SELECT * '.
550
        	        'FROM gen_i18n ';
550
        	        'FROM gen_i18n ';
551
    }
551
    }
552
    	else  {
552
    	else  {
553
    		
553
    		
554
    		
554
    		
555
    		if ($aso_valeurs['traduction']) {
555
    		if ($aso_valeurs['traduction']) {
556
    			
556
    			
557
    		// Recherche liste des sites deja traduits 
557
    		// Recherche liste des sites deja traduits 
558
    		
558
    		
559
	    		 $requete =  'SELECT distinct gs_ce_i18n  '.
559
	    		 $requete =  'SELECT distinct gs_ce_i18n  '.
560
                'FROM gen_site_relation, gen_site '.
560
                'FROM gen_site_relation, gen_site '.
561
                'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
561
                'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
562
                'AND gs_id_site = gsr_id_site_02  '.
562
                'AND gs_id_site = gsr_id_site_02  '.
563
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
563
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
564
                
564
                
565
                
565
                
566
			    $resultat = $db->query($requete) ;
566
			    $resultat = $db->query($requete) ;
567
			    if (DB::isError($resultat)) {
567
			    if (DB::isError($resultat)) {
568
			        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
568
			        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
569
			    }
569
			    }
570
			    $not_in_langue='';
570
			    $not_in_langue='';
571
			    if ( $resultat->numRows() == 0 ) {
571
			    if ( $resultat->numRows() == 0 ) {
572
					$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
572
					$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
573
			    }
573
			    }
574
			    else {
574
			    else {
575
			    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
575
			    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
576
    	 					$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
576
    	 					$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
577
    	 					$end="'".$ligne->gs_ce_i18n."'";
577
    	 					$end="'".$ligne->gs_ce_i18n."'";
578
    					}
578
    					}
579
    					if ($not_in_langue) {
579
    					if ($not_in_langue) {
580
			    			$not_in_langue="'".$site_ligne['gs_ce_i18n']."'".",".$not_in_langue;
580
			    			$not_in_langue="'".$site_ligne['gs_ce_i18n']."'".",".$not_in_langue;
581
			    			$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
581
			    			$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
582
			    		}
582
			    		}
583
			    		else {
583
			    		else {
584
			    			$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
584
			    			$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
585
			    		}
585
			    		}
586
			    }
586
			    }
587
				$resultat->free();		    
587
				$resultat->free();		    
588
    		
588
    		
589
	    		$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
589
	    		$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
590
    		}
590
    		}
591
    		else 
591
    		else 
592
    		{
592
    		{
593
    			$requete =  "SELECT * FROM gen_i18n where  gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
593
    			$requete =  "SELECT * FROM gen_i18n where  gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
594
    		}
594
    		}
595
    }
595
    }
596
    $resultat = $db->query($requete) ;
596
    $resultat = $db->query($requete) ;
597
    if (DB::isError($resultat)) {
597
    if (DB::isError($resultat)) {
598
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
598
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
599
    }
599
    }
600
    $aso_options = array();
600
    $aso_options = array();
601
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
601
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
602
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
602
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
603
    }
603
    }
604
    $resultat->free();
604
    $resultat->free();
605
    $id = 'gs_ce_i18n';
605
    $id = 'gs_ce_i18n';
606
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
606
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
607
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
607
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
608
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
608
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
609
    
609
    
610
    $id = 'defaut';
610
    $id = 'defaut';
611
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
611
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
612
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
612
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
613
        $aso_attributs['checked'] = 'checked';
613
        $aso_attributs['checked'] = 'checked';
614
    }
614
    }
615
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
615
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
616
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
616
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
617
    
617
    
618
    // Groupe site externe
618
    // Groupe site externe
619
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
619
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
620
    $aso_options = array('0' => 'Aucun');
620
    $aso_options = array('0' => 'Aucun');
621
    foreach ($tab_type as $cle => $val) {
621
    foreach ($tab_type as $cle => $val) {
622
        $aso_options[$val['id']] = $val['intitule'];
622
        $aso_options[$val['id']] = $val['intitule'];
623
    }
623
    }
624
    
624
    
625
    $id = 'type_site_externe';
625
    $id = 'type_site_externe';
626
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
626
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
627
    $label = '<label>'.'Type de site externe : '.'</label>';
627
    $label = '<label>'.'Type de site externe : '.'</label>';
628
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
628
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
629
    
629
    
630
    $id = 'gs_url';
630
    $id = 'gs_url';
631
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
631
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
632
    $label = '<label>'.'URL du site externe : '.'</label>';
632
    $label = '<label>'.'URL du site externe : '.'</label>';
633
    $form->addElement('text', $id, $label, $aso_attributs);
633
    $form->addElement('text', $id, $label, $aso_attributs);
634
    
634
    
635
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
635
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
636
    $form->addElement('html', $partie_site_fin);
636
    $form->addElement('html', $partie_site_fin);
637
    
637
    
638
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
638
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
639
    $form->addElement('html', $partie_entete_debut);
639
    $form->addElement('html', $partie_entete_debut);
640
    
640
    
641
    $id = 'gs_titre';
641
    $id = 'gs_titre';
642
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
642
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
643
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
643
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
644
    $form->addElement('text', $id, $label, $aso_attributs);
644
    $form->addElement('text', $id, $label, $aso_attributs);
645
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
645
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
646
    
646
    
647
    $id = 'gs_mots_cles';
647
    $id = 'gs_mots_cles';
648
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
648
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
649
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
649
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
650
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
650
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
651
    $zone_mots_cles->setValue('mots-clés du site');
651
    $zone_mots_cles->setValue('mots-clés du site');
652
    $form->addElement($zone_mots_cles);
652
    $form->addElement($zone_mots_cles);
653
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
653
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
654
    
654
    
655
    $id = 'gs_description';
655
    $id = 'gs_description';
656
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
656
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
657
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
657
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
658
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
658
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
659
    $zone->setValue('description du site');
659
    $zone->setValue('description du site');
660
    $form->addElement($zone);
660
    $form->addElement($zone);
661
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
661
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
662
    
662
    
663
    $id = 'gs_auteur';
663
    $id = 'gs_auteur';
664
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
664
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
665
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
665
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
666
    $form->addElement('text', $id, $label, $aso_attributs);
666
    $form->addElement('text', $id, $label, $aso_attributs);
667
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
667
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
668
    
668
    
669
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
669
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
670
    $form->addElement('html', $partie_entete_fin);
670
    $form->addElement('html', $partie_entete_fin);
671
    
671
    
672
    if ($aso_valeurs['modification'] ||  $aso_valeurs['traduction']) {
672
    if ($aso_valeurs['modification'] ||  $aso_valeurs['traduction']) {
673
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
673
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
674
        $requete_admin =    'SELECT * '.
674
        $requete_admin =    'SELECT * '.
675
                            'FROM gen_annuaire '.
675
                            'FROM gen_annuaire '.
676
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
676
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
677
        $resultat_admin = $db->query($requete_admin);
677
        $resultat_admin = $db->query($requete_admin);
678
        if (DB::isError($resultat_admin)) {
678
        if (DB::isError($resultat_admin)) {
679
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
679
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
680
        }
680
        }
681
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
681
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
682
        if (isset($ligne_admin)) {
682
        if (isset($ligne_admin)) {
683
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Dernière modification par '.
683
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Dernière modification par '.
684
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
684
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
685
        	$form->addElement('html', $info_admin);
685
        	$form->addElement('html', $info_admin);
686
        	$form->addElement('hidden', 'gs_ce_admin');
686
        	$form->addElement('hidden', 'gs_ce_admin');
687
        	$form->addElement('hidden', 'gs_date_creation');
687
        	$form->addElement('hidden', 'gs_date_creation');
688
        }
688
        }
689
        
689
        
690
        // Titre de la page:
690
        // Titre de la page:
691
        if ($aso_valeurs['modification']) {
691
        if ($aso_valeurs['modification']) {
692
        	$titre = 'Modifier un site';
692
        	$titre = 'Modifier un site';
693
        	$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
693
        	$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
694
        }
694
        }
695
        else {
695
        else {
696
        	$titre = 'Traduire un site';
696
        	$titre = 'Traduire un site';
697
        	$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
697
        	$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
698
        }
698
        }
699
        
699
        
700
    } else {
700
    } else {
701
        // Titre de la page:
701
        // Titre de la page:
702
        $titre = 'Ajouter un site';
702
        $titre = 'Ajouter un site';
703
        // Bouton validant le formulaire
703
        // Bouton validant le formulaire
704
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
704
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
705
    }
705
    }
706
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
706
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
707
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
707
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
708
    $boutons =  '<p>'."\n".
708
    $boutons =  '<p>'."\n".
709
                $bouton_validation."\n".
709
                $bouton_validation."\n".
710
                $bouton_annuler."\n".
710
                $bouton_annuler."\n".
711
                $bouton_effacer."\n".
711
                $bouton_effacer."\n".
712
                '</p>'."\n";
712
                '</p>'."\n";
713
    $form->addElement('html', $boutons);
713
    $form->addElement('html', $boutons);
714
    
714
    
715
    // Instanciation des valeurs par défaut du formulaire
715
    // Instanciation des valeurs par défaut du formulaire
716
    $form->setDefaults($aso_valeurs);
716
    $form->setDefaults($aso_valeurs);
717
    
717
    
718
    // Javascript pour la validation côté client
718
    // Javascript pour la validation côté client
719
    $regles_javascript = $form->getValidationScript();
719
    $regles_javascript = $form->getValidationScript();
720
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
720
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
721
    // Le code ci-dessous devrait être utilisé si on arrive à empécher Quickform de l'ajouter lui-même!
721
    // Le code ci-dessous devrait être utilisé si on arrive à empécher Quickform de l'ajouter lui-même!
722
    /*
722
    /*
723
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
723
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
724
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
724
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
725
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
725
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
726
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
726
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
727
    GEN_stockerCodeScript($regles_javascript);
727
    GEN_stockerCodeScript($regles_javascript);
728
    */
728
    */
729
    
729
    
730
    // Note de fin de formulaire
730
    // Note de fin de formulaire
731
    $form->setRequiredNote('Indique les champs obligatoires');
731
    $form->setRequiredNote('Indique les champs obligatoires');
732
    $sortie .= $form->toHTML()."\n";
732
    $sortie .= $form->toHTML()."\n";
733
    
733
    
734
    // Construction de la page.
734
    // Construction de la page.
735
    return ADMIN_contruirePage($titre, $sortie, $message);
735
    return ADMIN_contruirePage($titre, $sortie, $message);
736
}
736
}
737
 
737
 
738
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
738
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
739
*
739
*
740
* Cette fonction valide les données à ajouter dans la table gen_site.
740
* Cette fonction valide les données à ajouter dans la table gen_site.
741
*
741
*
742
* @param  string   l'objet pear de connexion à la base de données.
742
* @param  string   l'objet pear de connexion à la base de données.
743
* @param  string   le tableau contenant les valeurs du formulaire.
743
* @param  string   le tableau contenant les valeurs du formulaire.
744
* @return string   retourne les messages d'erreurs sinon rien.
744
* @return string   retourne les messages d'erreurs sinon rien.
745
*/
745
*/
746
function ADMIN_validerFormSite(&$db, $aso_valeurs)
746
function ADMIN_validerFormSite(&$db, $aso_valeurs)
747
{
747
{
748
    $message = '';
748
    $message = '';
749
    
749
    
750
    // Validation des données du formulaire
750
    // Validation des données du formulaire
751
    if (empty($aso_valeurs['gs_nom'])) {
751
    if (empty($aso_valeurs['gs_nom'])) {
752
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
752
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
753
    }
753
    }
754
    if (empty($aso_valeurs['gs_code_alpha'])) {
754
    if (empty($aso_valeurs['gs_code_alpha'])) {
755
        $message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
755
        $message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
756
    }
756
    }
757
    if ($aso_valeurs['gs_code_num'] == '') {
757
    if ($aso_valeurs['gs_code_num'] == '') {
758
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est conscidéré comme vide!
758
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est conscidéré comme vide!
759
        $message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
759
        $message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
760
    }
760
    }
761
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
761
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
762
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
762
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
763
    }
763
    }
764
    
764
    
765
    // Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
765
    // Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
766
    // en mode creation uniquement !
766
    // en mode creation uniquement !
767
    
767
    
768
    if (!$aso_valeurs['site_modifier'] && !$aso_valeurs['site_traduire'] ) {
768
    if (!$aso_valeurs['site_modifier'] && !$aso_valeurs['site_traduire'] ) {
769
    
769
    
770
	    $requete =  'SELECT gs_code_alpha, gs_code_num '.
770
	    $requete =  'SELECT gs_code_alpha, gs_code_num '.
771
	                'FROM gen_site, gen_site_relation '.
771
	                'FROM gen_site, gen_site_relation '.
772
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
772
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
773
	                'AND gsr_id_site_01 = gs_id_site '.
773
	                'AND gsr_id_site_01 = gs_id_site '.
774
	                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
774
	                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
775
	    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
775
	    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
776
	    
776
	    
777
	    
777
	    
778
	    $resultat = $db->query($requete);
778
	    $resultat = $db->query($requete);
779
	    if (DB::isError($resultat)) {
779
	    if (DB::isError($resultat)) {
780
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
780
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
781
	    }
781
	    }
782
	    
782
	    
783
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
783
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
784
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
784
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
785
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
785
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
786
	        }
786
	        }
787
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
787
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
788
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
788
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
789
	        }
789
	        }
790
	    }
790
	    }
791
	    
791
	    
792
	    $resultat->free();
792
	    $resultat->free();
793
	    
793
	    
794
    }
794
    }
795
    
795
    
796
    else {
796
    else {
797
    // Refuser si plus de traduction disponible !	
797
    // Refuser si plus de traduction disponible !	
798
    }
798
    }
799
    
799
    
800
    if (empty($aso_valeurs['gs_titre'])) {
800
    if (empty($aso_valeurs['gs_titre'])) {
801
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
801
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
802
    }
802
    }
803
    if (empty($aso_valeurs['gs_mots_cles'])) {
803
    if (empty($aso_valeurs['gs_mots_cles'])) {
804
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
804
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
805
    }
805
    }
806
    if (empty($aso_valeurs['gs_description'])) {
806
    if (empty($aso_valeurs['gs_description'])) {
807
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
807
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
808
    }
808
    }
809
    if (empty($aso_valeurs['gs_auteur'])) {
809
    if (empty($aso_valeurs['gs_auteur'])) {
810
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
810
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
811
    }
811
    }
812
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
812
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
813
        $message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
813
        $message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
814
    }
814
    }
815
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
815
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
816
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
816
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
817
                    'Vous conscidérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
817
                    'Vous conscidérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
818
    }
818
    }
819
    return $message;
819
    return $message;
820
}
820
}
821
 
821
 
822
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
822
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
823
*
823
*
824
* Cette fonction ajoute le site à Papyrus, c'est à dire :
824
* Cette fonction ajoute le site à Papyrus, c'est à dire :
825
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
825
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
826
* - 2. Insertion d'une ligne dans la table "gen_site".
826
* - 2. Insertion d'une ligne dans la table "gen_site".
827
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
827
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
828
*
828
*
829
* @param  string   l'objet pear de connexion à la base de données.
829
* @param  string   l'objet pear de connexion à la base de données.
830
* @param  string   le tableau contenant les valeurs du formulaire.
830
* @param  string   le tableau contenant les valeurs du formulaire.
831
* @param  int      identifiant de l'administrateur réalisant cette création.
831
* @param  int      identifiant de l'administrateur réalisant cette création.
832
* @return string retourne un message en cas de succès ou d'échec.
832
* @return string retourne un message en cas de succès ou d'échec.
833
*/
833
*/
834
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
834
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
835
{
835
{
836
    // Nous vérifions si nous avons à faire à un site externe.
836
    // Nous vérifions si nous avons à faire à un site externe.
837
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
837
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
838
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
838
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
839
        $id_type_site = '103';// c'est un site "externe"
839
        $id_type_site = '103';// c'est un site "externe"
840
    }
840
    }
841
    
841
    
842
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
842
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
843
    // par l'utilisateur dans le fichier de config avancée.
843
    // par l'utilisateur dans le fichier de config avancée.
844
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
844
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
845
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
845
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
846
                            GEN_DOSSIER_STYLE,
846
                            GEN_DOSSIER_STYLE,
847
                            GEN_DOSSIER_SCRIPT,
847
                            GEN_DOSSIER_SCRIPT,
848
                            GEN_DOSSIER_SQUELETTE,
848
                            GEN_DOSSIER_SQUELETTE,
849
                            GEN_DOSSIER_DOC);
849
                            GEN_DOSSIER_DOC);
850
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
850
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
851
        foreach ($tab_rep_langue as $nom_rep_langue) {
851
        foreach ($tab_rep_langue as $nom_rep_langue) {
852
            foreach ($tab_rep_site as $nom_rep_site) {
852
            foreach ($tab_rep_site as $nom_rep_site) {
853
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
853
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
854
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
854
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
855
                $vieux_umask = umask(0);
855
                $vieux_umask = umask(0);
856
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
856
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
857
                umask($vieux_umask);
857
                umask($vieux_umask);
858
                if ($resultat == false) {
858
                if ($resultat == false) {
859
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
859
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
860
                                'Répertoire : '. $chemin_repertoire .'<br />'.
860
                                'Répertoire : '. $chemin_repertoire .'<br />'.
861
                                'Ligne n° : '. __LINE__ .'<br />'.
861
                                'Ligne n° : '. __LINE__ .'<br />'.
862
                                'Fichier n° : '. __FILE__ .'<br /></p>';
862
                                'Fichier n° : '. __FILE__ .'<br /></p>';
863
                    return $message;
863
                    return $message;
864
                }
864
                }
865
            }
865
            }
866
        }
866
        }
867
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
867
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
868
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
868
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
869
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
869
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
870
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
870
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
871
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
871
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
872
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
872
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
873
                        'Fichier : '. $chemin_squelette_site .'<br />'.
873
                        'Fichier : '. $chemin_squelette_site .'<br />'.
874
                        'Ligne n° : '. __LINE__ .'<br />'.
874
                        'Ligne n° : '. __LINE__ .'<br />'.
875
                        'Fichier n° : '. __FILE__ .'<br /></p>';
875
                        'Fichier n° : '. __FILE__ .'<br /></p>';
876
            return $message;
876
            return $message;
877
        }
877
        }
878
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
878
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
879
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
879
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
880
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
880
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
881
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
881
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
882
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
882
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
883
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
883
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
884
                        'Fichier : '. $chemin_style_site .'<br />'.
884
                        'Fichier : '. $chemin_style_site .'<br />'.
885
                        'Ligne n° : '. __LINE__ .'<br />'.
885
                        'Ligne n° : '. __LINE__ .'<br />'.
886
                        'Fichier n° : '. __FILE__ .'<br /></p>';
886
                        'Fichier n° : '. __FILE__ .'<br /></p>';
887
            return $message;
887
            return $message;
888
        }
888
        }
889
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
889
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
890
        // Création d'une connection ftp avec Net_FTP de PEAR
890
        // Création d'une connection ftp avec Net_FTP de PEAR
891
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
891
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
892
        
892
        
893
        // création de l'objet pear ftp
893
        // création de l'objet pear ftp
894
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
894
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
895
        // création de la connexion
895
        // création de la connexion
896
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
896
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
897
        // identification
897
        // identification
898
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
898
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
899
        // Gestion des erreurs ftp
899
        // Gestion des erreurs ftp
900
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
900
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
901
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
901
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
902
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
902
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
903
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
903
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
904
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
904
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
905
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
905
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
906
                        'Ligne n° : '. __LINE__ .'<br />'.
906
                        'Ligne n° : '. __LINE__ .'<br />'.
907
                        'Fichier n° : '. __FILE__ .'<br /><p>';
907
                        'Fichier n° : '. __FILE__ .'<br /><p>';
908
            return $message;
908
            return $message;
909
        }
909
        }
910
        $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
910
        $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
911
        
911
        
912
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
912
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
913
        foreach ($tab_rep_langue as $nom_rep_langue) {
913
        foreach ($tab_rep_langue as $nom_rep_langue) {
914
            $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
914
            $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
915
            foreach ($tab_rep_site as $nom_rep_site) {
915
            foreach ($tab_rep_site as $nom_rep_site) {
916
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
916
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
917
                
917
                
918
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
918
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
919
                if (PEAR::isError($resultat)) {
919
                if (PEAR::isError($resultat)) {
920
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
920
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
921
                                'Répertoire : '. $chemin_repertoire .'<br />'.
921
                                'Répertoire : '. $chemin_repertoire .'<br />'.
922
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
922
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
923
                                'Ligne n° : '. __LINE__ .'<br />'.
923
                                'Ligne n° : '. __LINE__ .'<br />'.
924
                                'Fichier n° : '. __FILE__ .'<br /></p>';
924
                                'Fichier n° : '. __FILE__ .'<br /></p>';
925
                    return $message;
925
                    return $message;
926
                }
926
                }
927
            }
927
            }
928
        }
928
        }
929
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
929
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
930
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
930
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
931
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
931
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
932
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
932
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
933
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
933
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
934
        if (PEAR::isError($resultat)) {
934
        if (PEAR::isError($resultat)) {
935
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
935
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
936
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
936
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
937
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
937
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
938
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
938
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
939
                        'Ligne n° : '. __LINE__ .'<br />'.
939
                        'Ligne n° : '. __LINE__ .'<br />'.
940
                        'Fichier n° : '. __FILE__ .'<br /></p>';
940
                        'Fichier n° : '. __FILE__ .'<br /></p>';
941
                return $message;
941
                return $message;
942
        }
942
        }
943
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
943
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
944
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
944
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
945
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
945
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
946
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
946
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
947
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
947
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
948
        if (PEAR::isError($resultat)) {
948
        if (PEAR::isError($resultat)) {
949
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
949
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
950
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
950
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
951
                        'Fichier copié : '. $chemin_style_site .'<br />'.
951
                        'Fichier copié : '. $chemin_style_site .'<br />'.
952
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
952
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
953
                        'Ligne n° : '. __LINE__ .'<br />'.
953
                        'Ligne n° : '. __LINE__ .'<br />'.
954
                        'Fichier n° : '. __FILE__ .'<br /></p>';
954
                        'Fichier n° : '. __FILE__ .'<br /></p>';
955
                return $message;
955
                return $message;
956
        }
956
        }
957
        $objet_pear_ftp->disconnect();
957
        $objet_pear_ftp->disconnect();
958
    }
958
    }
959
    
959
    
960
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
960
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
961
    if ($id_site == false) {
961
    if ($id_site == false) {
962
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
962
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
963
                    'Ligne n° : '. __LINE__ .'<br />'.
963
                    'Ligne n° : '. __LINE__ .'<br />'.
964
                    'Fichier n° : '. __FILE__ .'<br /></p>';
964
                    'Fichier n° : '. __FILE__ .'<br /></p>';
965
        return $message;
965
        return $message;
966
    }
966
    }
967
    
967
    
968
    // Modification de la requete si nous avons à faire à un site externe.
968
    // Modification de la requete si nous avons à faire à un site externe.
969
    $requete_complement = ', gs_url = NULL';
969
    $requete_complement = ', gs_url = NULL';
970
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
970
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
971
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
971
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
972
    }
972
    }
973
    
973
    
974
    // Requete d'insertion des infos d'un site dans gen_site
974
    // Requete d'insertion des infos d'un site dans gen_site
975
    $requete =  'INSERT INTO gen_site '.
975
    $requete =  'INSERT INTO gen_site '.
976
                'SET gs_id_site = '.$id_site.', '.
976
                'SET gs_id_site = '.$id_site.', '.
977
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
977
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
978
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
978
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
979
                'gs_fichier_squelette = "defaut.html", '.
979
                'gs_fichier_squelette = "defaut.html", '.
980
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
980
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
981
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
981
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
982
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
982
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
983
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
983
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
984
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
984
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
985
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
985
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
986
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
986
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
987
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
987
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
988
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
988
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
989
                'gs_ce_admin = '.$id_admin.
989
                'gs_ce_admin = '.$id_admin.
990
                $requete_complement;
990
                $requete_complement;
991
    $resultat = $db->query($requete);
991
    $resultat = $db->query($requete);
992
    if (DB::isError($resultat)) {
992
    if (DB::isError($resultat)) {
993
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
993
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
994
    }
994
    }
995
    
995
    
996
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
996
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
997
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
997
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
998
                'FROM gen_site_relation '.
998
                'FROM gen_site_relation '.
999
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
999
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1000
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1000
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1001
    $resultat = $db->query($requete) ;
1001
    $resultat = $db->query($requete) ;
1002
    if (DB::isError($resultat)) {
1002
    if (DB::isError($resultat)) {
1003
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1003
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1004
    }
1004
    }
1005
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1005
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1006
    $nouvel_ordre = $ligne->max_ordre + 1;
1006
    $nouvel_ordre = $ligne->max_ordre + 1;
1007
    
1007
    
1008
    // Requete d'insertion des relations dans gen_site_relation
1008
    // Requete d'insertion des relations dans gen_site_relation
1009
    $requete =  'INSERT INTO gen_site_relation '.
1009
    $requete =  'INSERT INTO gen_site_relation '.
1010
                'SET gsr_id_site_01 = '.$id_site.', '.
1010
                'SET gsr_id_site_01 = '.$id_site.', '.
1011
                'gsr_id_site_02 = '.$id_site.', '.
1011
                'gsr_id_site_02 = '.$id_site.', '.
1012
                'gsr_id_valeur = '.$id_type_site.', '.
1012
                'gsr_id_valeur = '.$id_type_site.', '.
1013
                'gsr_ordre = '.$nouvel_ordre;
1013
                'gsr_ordre = '.$nouvel_ordre;
1014
    $resultat = $db->query($requete);
1014
    $resultat = $db->query($requete);
1015
    if (DB::isError($resultat)) {
1015
    if (DB::isError($resultat)) {
1016
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1016
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1017
    }
1017
    }
1018
    
1018
    
1019
    // Gestion du site par défaut
1019
    // Gestion du site par défaut
1020
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1020
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1021
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1021
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1022
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1022
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1023
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1023
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1024
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1024
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1025
        if (DB::isError($resultat_supr_defaut)) {
1025
        if (DB::isError($resultat_supr_defaut)) {
1026
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1026
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1027
        }
1027
        }
1028
        
1028
        
1029
        // Requete d'insertion de la relations site par défaut
1029
        // Requete d'insertion de la relations site par défaut
1030
        $requete =  'INSERT INTO gen_site_relation '.
1030
        $requete =  'INSERT INTO gen_site_relation '.
1031
                    'SET gsr_id_site_01 = '.$id_site.', '.
1031
                    'SET gsr_id_site_01 = '.$id_site.', '.
1032
                    'gsr_id_site_02 = '.$id_site.', '.
1032
                    'gsr_id_site_02 = '.$id_site.', '.
1033
                    'gsr_id_valeur = 101, '.
1033
                    'gsr_id_valeur = 101, '.
1034
                    'gsr_ordre = NULL ';
1034
                    'gsr_ordre = NULL ';
1035
        $resultat = $db->query($requete);
1035
        $resultat = $db->query($requete);
1036
        if (DB::isError($resultat)) {
1036
        if (DB::isError($resultat)) {
1037
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1037
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1038
        }
1038
        }
1039
    }
1039
    }
1040
    
1040
    
1041
    // Gestion des sites externes
1041
    // Gestion des sites externes
1042
    if ($id_type_site == '103') {
1042
    if ($id_type_site == '103') {
1043
        // Requete d'insertion des relations dans gen_site_relation
1043
        // Requete d'insertion des relations dans gen_site_relation
1044
        $requete =  'INSERT INTO gen_site_relation '.
1044
        $requete =  'INSERT INTO gen_site_relation '.
1045
                    'SET gsr_id_site_01 = '.$id_site.', '.
1045
                    'SET gsr_id_site_01 = '.$id_site.', '.
1046
                    'gsr_id_site_02 = '.$id_site.', '.
1046
                    'gsr_id_site_02 = '.$id_site.', '.
1047
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1047
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1048
                    'gsr_ordre = NULL ';
1048
                    'gsr_ordre = NULL ';
1049
        $resultat = $db->query($requete);
1049
        $resultat = $db->query($requete);
1050
        if (DB::isError($resultat)) {
1050
        if (DB::isError($resultat)) {
1051
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1051
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1052
        }
1052
        }
1053
    }
1053
    }
1054
    
1054
    
1055
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
1055
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
1056
    return $message;
1056
    return $message;
1057
}
1057
}
1058
 
1058
 
1059
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1059
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1060
*
1060
*
1061
* Cette fonction traduit un site à Papyrus, c'est à dire :
1061
* Cette fonction traduit un site à Papyrus, c'est à dire :
1062
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1062
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1063
* - 2. Insertion d'une ligne dans la table "gen_site".
1063
* - 2. Insertion d'une ligne dans la table "gen_site".
1064
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1064
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1065
*
1065
*
1066
* @param  string   l'objet pear de connexion à la base de données.
1066
* @param  string   l'objet pear de connexion à la base de données.
1067
* @param  string   le tableau contenant les valeurs du formulaire.
1067
* @param  string   le tableau contenant les valeurs du formulaire.
1068
* @param  int      identifiant de l'administrateur réalisant cette création.
1068
* @param  int      identifiant de l'administrateur réalisant cette création.
1069
* @return string retourne un message en cas de succès ou d'échec.
1069
* @return string retourne un message en cas de succès ou d'échec.
1070
*/
1070
*/
1071
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1071
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1072
{
1072
{
1073
    // Nous vérifions si nous avons à faire à un site externe.
1073
    // Nous vérifions si nous avons à faire à un site externe.
1074
    $id_type_site = '102';// par défaut on considére que c'est un site "principal"
1074
    $id_type_site = '102';// par défaut on considére que c'est un site "principal"
1075
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1075
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1076
        $id_type_site = '103';// c'est un site "externe"
1076
        $id_type_site = '103';// c'est un site "externe"
1077
    }
1077
    }
1078
    
1078
    
1079
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
1079
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
1080
    // par l'utilisateur dans le fichier de config avancée.
1080
    // par l'utilisateur dans le fichier de config avancée.
1081
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1081
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1082
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1082
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1083
                            GEN_DOSSIER_STYLE,
1083
                            GEN_DOSSIER_STYLE,
1084
                            GEN_DOSSIER_SCRIPT,
1084
                            GEN_DOSSIER_SCRIPT,
1085
                            GEN_DOSSIER_SQUELETTE,
1085
                            GEN_DOSSIER_SQUELETTE,
1086
                            GEN_DOSSIER_DOC);
1086
                            GEN_DOSSIER_DOC);
1087
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
1087
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
1088
        foreach ($tab_rep_langue as $nom_rep_langue) {
1088
        foreach ($tab_rep_langue as $nom_rep_langue) {
1089
            foreach ($tab_rep_site as $nom_rep_site) {
1089
            foreach ($tab_rep_site as $nom_rep_site) {
1090
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1090
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1091
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1091
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1092
                $vieux_umask = umask(0);
1092
                $vieux_umask = umask(0);
1093
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1093
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1094
                umask($vieux_umask);
1094
                umask($vieux_umask);
1095
                if ($resultat == false) {
1095
                if ($resultat == false) {
1096
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
1096
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
1097
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1097
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1098
                                'Ligne n° : '. __LINE__ .'<br />'.
1098
                                'Ligne n° : '. __LINE__ .'<br />'.
1099
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1099
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1100
                    return $message;
1100
                    return $message;
1101
                }
1101
                }
1102
            }
1102
            }
1103
        }
1103
        }
1104
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1104
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1105
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1105
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1106
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1106
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1107
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1107
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1108
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1108
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1109
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
1109
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
1110
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1110
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1111
                        'Ligne n° : '. __LINE__ .'<br />'.
1111
                        'Ligne n° : '. __LINE__ .'<br />'.
1112
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1112
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1113
            return $message;
1113
            return $message;
1114
        }
1114
        }
1115
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1115
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1116
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1116
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1117
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1117
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1118
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1118
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1119
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1119
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1120
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
1120
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
1121
                        'Fichier : '. $chemin_style_site .'<br />'.
1121
                        'Fichier : '. $chemin_style_site .'<br />'.
1122
                        'Ligne n° : '. __LINE__ .'<br />'.
1122
                        'Ligne n° : '. __LINE__ .'<br />'.
1123
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1123
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1124
            return $message;
1124
            return $message;
1125
        }
1125
        }
1126
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
1126
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
1127
        // Création d'une connection ftp avec Net_FTP de PEAR
1127
        // Création d'une connection ftp avec Net_FTP de PEAR
1128
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1128
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1129
        
1129
        
1130
        // création de l'objet pear ftp
1130
        // création de l'objet pear ftp
1131
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1131
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1132
        // création de la connexion
1132
        // création de la connexion
1133
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1133
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1134
        // identification
1134
        // identification
1135
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1135
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1136
        // Gestion des erreurs ftp
1136
        // Gestion des erreurs ftp
1137
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1137
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1138
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1138
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1139
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1139
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1140
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1140
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1141
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1141
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1142
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1142
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1143
                        'Ligne n° : '. __LINE__ .'<br />'.
1143
                        'Ligne n° : '. __LINE__ .'<br />'.
1144
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1144
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1145
            return $message;
1145
            return $message;
1146
        }
1146
        }
1147
        $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1147
        $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1148
        
1148
        
1149
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1149
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1150
        foreach ($tab_rep_langue as $nom_rep_langue) {
1150
        foreach ($tab_rep_langue as $nom_rep_langue) {
1151
            $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
1151
            $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
1152
            foreach ($tab_rep_site as $nom_rep_site) {
1152
            foreach ($tab_rep_site as $nom_rep_site) {
1153
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
1153
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
1154
                
1154
                
1155
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
1155
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
1156
                if (PEAR::isError($resultat)) {
1156
                if (PEAR::isError($resultat)) {
1157
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
1157
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
1158
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1158
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1159
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
1159
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
1160
                                'Ligne n° : '. __LINE__ .'<br />'.
1160
                                'Ligne n° : '. __LINE__ .'<br />'.
1161
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1161
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1162
                    return $message;
1162
                    return $message;
1163
                }
1163
                }
1164
            }
1164
            }
1165
        }
1165
        }
1166
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1166
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1167
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1167
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1168
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1168
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1169
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1169
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1170
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
1170
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
1171
        if (PEAR::isError($resultat)) {
1171
        if (PEAR::isError($resultat)) {
1172
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
1172
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
1173
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
1173
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
1174
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
1174
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
1175
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1175
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1176
                        'Ligne n° : '. __LINE__ .'<br />'.
1176
                        'Ligne n° : '. __LINE__ .'<br />'.
1177
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1177
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1178
                return $message;
1178
                return $message;
1179
        }
1179
        }
1180
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1180
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1181
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1181
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1182
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1182
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1183
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1183
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1184
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
1184
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
1185
        if (PEAR::isError($resultat)) {
1185
        if (PEAR::isError($resultat)) {
1186
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
1186
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
1187
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
1187
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
1188
                        'Fichier copié : '. $chemin_style_site .'<br />'.
1188
                        'Fichier copié : '. $chemin_style_site .'<br />'.
1189
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1189
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1190
                        'Ligne n° : '. __LINE__ .'<br />'.
1190
                        'Ligne n° : '. __LINE__ .'<br />'.
1191
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1191
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1192
                return $message;
1192
                return $message;
1193
        }
1193
        }
1194
        $objet_pear_ftp->disconnect();
1194
        $objet_pear_ftp->disconnect();
1195
    }
1195
    }
1196
    
1196
    
1197
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
1197
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
1198
    
1198
    
1199
    if ($id_site == false) {
1199
    if ($id_site == false) {
1200
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
1200
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
1201
                    'Ligne n° : '. __LINE__ .'<br />'.
1201
                    'Ligne n° : '. __LINE__ .'<br />'.
1202
                    'Fichier n° : '. __FILE__ .'<br /></p>';
1202
                    'Fichier n° : '. __FILE__ .'<br /></p>';
1203
        return $message;
1203
        return $message;
1204
    }
1204
    }
1205
    
1205
    
1206
    // Modification de la requete si nous avons à faire à un site externe.
1206
    // Modification de la requete si nous avons à faire à un site externe.
1207
    $requete_complement = ', gs_url = NULL';
1207
    $requete_complement = ', gs_url = NULL';
1208
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1208
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1209
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
1209
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
1210
    }
1210
    }
1211
    
1211
    
1212
    // Requete d'insertion des infos d'un site dans gen_site
1212
    // Requete d'insertion des infos d'un site dans gen_site
1213
    $requete =  'INSERT INTO gen_site '.
1213
    $requete =  'INSERT INTO gen_site '.
1214
                'SET gs_id_site = '.$id_site.', '.
1214
                'SET gs_id_site = '.$id_site.', '.
1215
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1215
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1216
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1216
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1217
                'gs_fichier_squelette = "defaut.html", '.
1217
                'gs_fichier_squelette = "defaut.html", '.
1218
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1218
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1219
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1219
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1220
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1220
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1221
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1221
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1222
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1222
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1223
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1223
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1224
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1224
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1225
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1225
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1226
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1226
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1227
                'gs_ce_admin = '.$id_admin.
1227
                'gs_ce_admin = '.$id_admin.
1228
                $requete_complement;
1228
                $requete_complement;
1229
    $resultat = $db->query($requete);
1229
    $resultat = $db->query($requete);
1230
    if (DB::isError($resultat)) {
1230
    if (DB::isError($resultat)) {
1231
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1231
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1232
    }
1232
    }
1233
    
1233
    
1234
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1234
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1235
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1235
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1236
                'FROM gen_site_relation '.
1236
                'FROM gen_site_relation '.
1237
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1237
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1238
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1238
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1239
    $resultat = $db->query($requete) ;
1239
    $resultat = $db->query($requete) ;
1240
    if (DB::isError($resultat)) {
1240
    if (DB::isError($resultat)) {
1241
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1241
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1242
    }
1242
    }
1243
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1243
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1244
    $nouvel_ordre = $ligne->max_ordre + 1;
1244
    $nouvel_ordre = $ligne->max_ordre + 1;
1245
    
1245
    
1246
    // Requete d'insertion des relations dans gen_site_relation
1246
    // Requete d'insertion des relations dans gen_site_relation
1247
    
1247
    
1248
    $requete =  'INSERT INTO gen_site_relation '.
1248
    $requete =  'INSERT INTO gen_site_relation '.
1249
                'SET gsr_id_site_01 = '.$id_site.', '.
1249
                'SET gsr_id_site_01 = '.$id_site.', '.
1250
                'gsr_id_site_02 = '.$id_site.', '.
1250
                'gsr_id_site_02 = '.$id_site.', '.
1251
                'gsr_id_valeur = '.$id_type_site.', '.
1251
                'gsr_id_valeur = '.$id_type_site.', '.
1252
                'gsr_ordre = '.$nouvel_ordre;
1252
                'gsr_ordre = '.$nouvel_ordre;
1253
    $resultat = $db->query($requete);
1253
    $resultat = $db->query($requete);
1254
    if (DB::isError($resultat)) {
1254
    if (DB::isError($resultat)) {
1255
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1255
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1256
    }
1256
    }
1257
    
1257
    
1258
    // Traduction : Requete d'insertion des relations dans gen_site_relation
1258
    // Traduction : Requete d'insertion des relations dans gen_site_relation
1259
 
1259
 
1260
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1260
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1261
                'FROM gen_site_relation '.
1261
                'FROM gen_site_relation '.
1262
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1262
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1263
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1263
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1264
    $resultat = $db->query($requete) ;
1264
    $resultat = $db->query($requete) ;
1265
    if (DB::isError($resultat)) {
1265
    if (DB::isError($resultat)) {
1266
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1266
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1267
    }
1267
    }
1268
    if ( $resultat->numRows() == 0 ) {
1268
    if ( $resultat->numRows() == 0 ) {
1269
	      $nouvel_ordre = 1;
1269
	      $nouvel_ordre = 1;
1270
    }
1270
    }
1271
    else {
1271
    else {
1272
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1272
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1273
    	$nouvel_ordre = $ligne->max_ordre + 1;
1273
    	$nouvel_ordre = $ligne->max_ordre + 1;
1274
    }
1274
    }
1275
 
1275
 
1276
    // 1 : insertion information traduction pere (si inexistant)
1276
    // 1 : insertion information traduction pere (si inexistant)
1277
    
1277
    
1278
    $requete =  'SELECT * '.
1278
    $requete =  'SELECT * '.
1279
                'FROM gen_site_relation '.
1279
                'FROM gen_site_relation '.
1280
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1280
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1281
                'AND gsr_id_site_01 = gsr_id_site_02 '.
1281
                'AND gsr_id_site_01 = gsr_id_site_02 '.
1282
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1282
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1283
                
1283
                
1284
    $resultat = $db->query($requete) ;
1284
    $resultat = $db->query($requete) ;
1285
    if (DB::isError($resultat)) {
1285
    if (DB::isError($resultat)) {
1286
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1286
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1287
    }
1287
    }
1288
    if ( $resultat->numRows() == 0 ) {
1288
    if ( $resultat->numRows() == 0 ) {
1289
    
1289
    
1290
		$requete =  'INSERT INTO gen_site_relation '.
1290
		$requete =  'INSERT INTO gen_site_relation '.
1291
		            'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1291
		            'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1292
		            'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1292
		            'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1293
		            'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1293
		            'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1294
		            'gsr_ordre = 1 ';
1294
		            'gsr_ordre = 1 ';
1295
		$resultat = $db->query($requete);
1295
		$resultat = $db->query($requete);
1296
		if (DB::isError($resultat)) {
1296
		if (DB::isError($resultat)) {
1297
		    die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1297
		    die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1298
		}
1298
		}
1299
		$nouvel_ordre = 2;
1299
		$nouvel_ordre = 2;
1300
    }    
1300
    }    
1301
 
1301
 
1302
 
1302
 
1303
    // 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
1303
    // 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
1304
    // dans les mises à jour
1304
    // dans les mises à jour
1305
    
1305
    
1306
    $requete =  'INSERT INTO gen_site_relation '.
1306
    $requete =  'INSERT INTO gen_site_relation '.
1307
                'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1307
                'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1308
                'gsr_id_site_02 = '.$id_site.', '.
1308
                'gsr_id_site_02 = '.$id_site.', '.
1309
                'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1309
                'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1310
                'gsr_ordre = '.$nouvel_ordre;
1310
                'gsr_ordre = '.$nouvel_ordre;
1311
    $resultat = $db->query($requete);
1311
    $resultat = $db->query($requete);
1312
    if (DB::isError($resultat)) {
1312
    if (DB::isError($resultat)) {
1313
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1313
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1314
    }
1314
    }
1315
        
1315
        
1316
  
1316
  
1317
    // Gestion du site par défaut
1317
    // Gestion du site par défaut
1318
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1318
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1319
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1319
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1320
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1320
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1321
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1321
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1322
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1322
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1323
        if (DB::isError($resultat_supr_defaut)) {
1323
        if (DB::isError($resultat_supr_defaut)) {
1324
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1324
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1325
        }
1325
        }
1326
        
1326
        
1327
        // Requete d'insertion de la relations site par défaut
1327
        // Requete d'insertion de la relations site par défaut
1328
        $requete =  'INSERT INTO gen_site_relation '.
1328
        $requete =  'INSERT INTO gen_site_relation '.
1329
                    'SET gsr_id_site_01 = '.$id_site.', '.
1329
                    'SET gsr_id_site_01 = '.$id_site.', '.
1330
                    'gsr_id_site_02 = '.$id_site.', '.
1330
                    'gsr_id_site_02 = '.$id_site.', '.
1331
                    'gsr_id_valeur = 101, '.
1331
                    'gsr_id_valeur = 101, '.
1332
                    'gsr_ordre = NULL ';
1332
                    'gsr_ordre = NULL ';
1333
        $resultat = $db->query($requete);
1333
        $resultat = $db->query($requete);
1334
        if (DB::isError($resultat)) {
1334
        if (DB::isError($resultat)) {
1335
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1335
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1336
        }
1336
        }
1337
    }
1337
    }
1338
    
1338
    
1339
    // Gestion des sites externes
1339
    // Gestion des sites externes
1340
    if ($id_type_site == '103') {
1340
    if ($id_type_site == '103') {
1341
        // Requete d'insertion des relations dans gen_site_relation
1341
        // Requete d'insertion des relations dans gen_site_relation
1342
        $requete =  'INSERT INTO gen_site_relation '.
1342
        $requete =  'INSERT INTO gen_site_relation '.
1343
                    'SET gsr_id_site_01 = '.$id_site.', '.
1343
                    'SET gsr_id_site_01 = '.$id_site.', '.
1344
                    'gsr_id_site_02 = '.$id_site.', '.
1344
                    'gsr_id_site_02 = '.$id_site.', '.
1345
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1345
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1346
                    'gsr_ordre = NULL ';
1346
                    'gsr_ordre = NULL ';
1347
        $resultat = $db->query($requete);
1347
        $resultat = $db->query($requete);
1348
        if (DB::isError($resultat)) {
1348
        if (DB::isError($resultat)) {
1349
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1349
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1350
        }
1350
        }
1351
    }
1351
    }
1352
    
1352
    
1353
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
1353
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
1354
    return $message;
1354
    return $message;
1355
}
1355
}
1356
 
1356
 
1357
 
1357
 
1358
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
1358
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
1359
*
1359
*
1360
* Cette fonction modifie un site géré par Papyrus.
1360
* Cette fonction modifie un site géré par Papyrus.
1361
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
1361
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
1362
*
1362
*
1363
* @param  string   l'objet pear de connexion à la base de données.
1363
* @param  string   l'objet pear de connexion à la base de données.
1364
* @param  string   le tableau contenant les valeurs du formulaire.
1364
* @param  string   le tableau contenant les valeurs du formulaire.
1365
* @param  int      identifiant de l'administrateur réalisant cette modification.
1365
* @param  int      identifiant de l'administrateur réalisant cette modification.
1366
* @return string retourne un message en cas de succès ou d'échec.
1366
* @return string retourne un message en cas de succès ou d'échec.
1367
*/
1367
*/
1368
function ADMIN_modifierSite(&$db, $aso_valeurs, $id_admin)
1368
function ADMIN_modifierSite(&$db, $aso_valeurs, $id_admin)
1369
{
1369
{
1370
    // Initialisation de variables
1370
    // Initialisation de variables
1371
    $message_complement = '';
1371
    $message_complement = '';
1372
    
1372
    
1373
    // Récupération de l'ancien code alphanumérique
1373
    // Récupération de l'ancien code alphanumérique
1374
    $requete =  'SELECT gs_code_alpha '.
1374
    $requete =  'SELECT gs_code_alpha '.
1375
                'FROM gen_site '.
1375
                'FROM gen_site '.
1376
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1376
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1377
    $ancien_code_alphnum = $db->getOne($requete);
1377
    $ancien_code_alphnum = $db->getOne($requete);
1378
    if (DB::isError($ancien_code_alphnum)) {
1378
    if (DB::isError($ancien_code_alphnum)) {
1379
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
1379
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
1380
    }
1380
    }
1381
    
1381
    
1382
    // Nous vérifions si nous avons à faire à un site externe.
1382
    // Nous vérifions si nous avons à faire à un site externe.
1383
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
1383
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
1384
    $requete_complement = ', gs_url = NULL ';
1384
    $requete_complement = ', gs_url = NULL ';
1385
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1385
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1386
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
1386
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
1387
        $id_type_site = '103';// c'est un site "externe"
1387
        $id_type_site = '103';// c'est un site "externe"
1388
    }
1388
    }
1389
    
1389
    
1390
    // Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
1390
    // Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
1391
    if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site != 103) {
1391
    if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site != 103) {
1392
        if (!GEN_FTP_UTILISE) {
1392
        if (!GEN_FTP_UTILISE) {
1393
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1393
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1394
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1394
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1395
            if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
1395
            if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
1396
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
1396
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
1397
                            'Ancien nom : '. $chemin_site_ancien .'<br />'.
1397
                            'Ancien nom : '. $chemin_site_ancien .'<br />'.
1398
                            'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
1398
                            'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
1399
                            'Ligne n° : '. __LINE__ .'<br />'.
1399
                            'Ligne n° : '. __LINE__ .'<br />'.
1400
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1400
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1401
                return $message;
1401
                return $message;
1402
            }
1402
            }
1403
        } else {
1403
        } else {
1404
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1404
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1405
            $chemin_site_nouveau = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1405
            $chemin_site_nouveau = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1406
            // Création d'une connection ftp avec Net_FTP de PEAR
1406
            // Création d'une connection ftp avec Net_FTP de PEAR
1407
            // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1407
            // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1408
            // création de l'objet pear ftp
1408
            // création de l'objet pear ftp
1409
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1409
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1410
            // création de la connexion
1410
            // création de la connexion
1411
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1411
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1412
            // identification
1412
            // identification
1413
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1413
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1414
            // Gestion des erreurs ftp
1414
            // Gestion des erreurs ftp
1415
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1415
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1416
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1416
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1417
                            'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1417
                            'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1418
                            'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1418
                            'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1419
                            'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1419
                            'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1420
                            'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1420
                            'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1421
                            'Ligne n° : '. __LINE__ .'<br />'.
1421
                            'Ligne n° : '. __LINE__ .'<br />'.
1422
                            'Fichier n° : '. __FILE__ .'<br /><p>';
1422
                            'Fichier n° : '. __FILE__ .'<br /><p>';
1423
                return $message;
1423
                return $message;
1424
            }
1424
            }
1425
            $resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
1425
            $resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
1426
            if (PEAR::isError($resultat)) {
1426
            if (PEAR::isError($resultat)) {
1427
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
1427
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
1428
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1428
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1429
                            'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
1429
                            'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
1430
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1430
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1431
                            'Ligne n° : '. __LINE__ .'<br />'.
1431
                            'Ligne n° : '. __LINE__ .'<br />'.
1432
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1432
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1433
                    return $message;
1433
                    return $message;
1434
            }
1434
            }
1435
            // On utilise la racine FTP pour rm
1435
            // On utilise la racine FTP pour rm
1436
            $chemin_site_ancien = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1436
            $chemin_site_ancien = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1437
            // Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
1437
            // Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
1438
            error_reporting(E_PARSE);
1438
            error_reporting(E_PARSE);
1439
            $resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
1439
            $resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
1440
            if (PEAR::isError($resultat)) {
1440
            if (PEAR::isError($resultat)) {
1441
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
1441
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
1442
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1442
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1443
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1443
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1444
                            'Ligne n° : '. __LINE__ .'<br />'.
1444
                            'Ligne n° : '. __LINE__ .'<br />'.
1445
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1445
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1446
                    return $message;
1446
                    return $message;
1447
            }
1447
            }
1448
            // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1448
            // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1449
            error_reporting(GEN_DEBOGAGE_NIVEAU);
1449
            error_reporting(GEN_DEBOGAGE_NIVEAU);
1450
            $objet_pear_ftp->disconnect();
1450
            $objet_pear_ftp->disconnect();
1451
        }
1451
        }
1452
    }
1452
    }
1453
    
1453
    
1454
    // Requete de mise à jour des infos d'un site dans gen_site
1454
    // Requete de mise à jour des infos d'un site dans gen_site
1455
    $requete =  'UPDATE gen_site '.
1455
    $requete =  'UPDATE gen_site '.
1456
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1456
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1457
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1457
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1458
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
1458
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
1459
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1459
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1460
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1460
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1461
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1461
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1462
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1462
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1463
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1463
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1464
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1464
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1465
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1465
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1466
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1466
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1467
                'gs_date_creation = "'.$aso_valeurs['gs_date_creation'].'", '.
1467
                'gs_date_creation = "'.$aso_valeurs['gs_date_creation'].'", '.
1468
                'gs_ce_admin = '.$id_admin.' '.
1468
                'gs_ce_admin = '.$id_admin.' '.
1469
                $requete_complement.
1469
                $requete_complement.
1470
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1470
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1471
    $resultat = $db->query($requete) ;
1471
    $resultat = $db->query($requete) ;
1472
    if (DB::isError($resultat)) {
1472
    if (DB::isError($resultat)) {
1473
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1473
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1474
    }
1474
    }
1475
    // Gestion du site externe
1475
    // Gestion du site externe
1476
    if ($id_type_site == 103) {
1476
    if ($id_type_site == 103) {
1477
        // Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
1477
        // Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
1478
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1478
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1479
                    'FROM gen_site_relation '.
1479
                    'FROM gen_site_relation '.
1480
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1480
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1481
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1481
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1482
                    'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1482
                    'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1483
        $nbre_relation = $db->getOne($requete);
1483
        $nbre_relation = $db->getOne($requete);
1484
        if (DB::isError($nbre_relation)) {
1484
        if (DB::isError($nbre_relation)) {
1485
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1485
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1486
        }
1486
        }
1487
        
1487
        
1488
        // Nous supprimons l'ancienne relation si nécessaire
1488
        // Nous supprimons l'ancienne relation si nécessaire
1489
        if ($nbre_relation >= 1) {
1489
        if ($nbre_relation >= 1) {
1490
            $requete_supr_ext = 'DELETE FROM gen_site_relation '.
1490
            $requete_supr_ext = 'DELETE FROM gen_site_relation '.
1491
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1491
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1492
                                'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1492
                                'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1493
                                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1493
                                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1494
            $resultat_supr_ext = $db->query($requete_supr_ext);
1494
            $resultat_supr_ext = $db->query($requete_supr_ext);
1495
            if (DB::isError($resultat_supr_ext)) {
1495
            if (DB::isError($resultat_supr_ext)) {
1496
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
1496
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
1497
            }
1497
            }
1498
            $message_complement =   'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
1498
            $message_complement =   'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
1499
                                    'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
1499
                                    'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
1500
                                    'le serveur!';
1500
                                    'le serveur!';
1501
        }
1501
        }
1502
        
1502
        
1503
        // Vérification pour voir si le site est déjà "externe"
1503
        // Vérification pour voir si le site est déjà "externe"
1504
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1504
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1505
                    'FROM gen_site_relation '.
1505
                    'FROM gen_site_relation '.
1506
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1506
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1507
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1507
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1508
                    'AND gsr_id_valeur = 103 ';// 103 = site "externe"
1508
                    'AND gsr_id_valeur = 103 ';// 103 = site "externe"
1509
        $nbre_relation = $db->getOne($requete);
1509
        $nbre_relation = $db->getOne($requete);
1510
        if (DB::isError($nbre_relation)) {
1510
        if (DB::isError($nbre_relation)) {
1511
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1511
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1512
        }
1512
        }
1513
        if ($nbre_relation == 0) {
1513
        if ($nbre_relation == 0) {
1514
            // Requete d'insertion de la relations site "externe"
1514
            // Requete d'insertion de la relations site "externe"
1515
            $requete =  'INSERT INTO gen_site_relation '.
1515
            $requete =  'INSERT INTO gen_site_relation '.
1516
                        'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1516
                        'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1517
                        'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1517
                        'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1518
                        'gsr_id_valeur = '.$id_type_site.', '.
1518
                        'gsr_id_valeur = '.$id_type_site.', '.
1519
                        'gsr_ordre = NULL ';
1519
                        'gsr_ordre = NULL ';
1520
            $resultat = $db->query($requete);
1520
            $resultat = $db->query($requete);
1521
            if (DB::isError($resultat)) {
1521
            if (DB::isError($resultat)) {
1522
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1522
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1523
            }
1523
            }
1524
        }
1524
        }
1525
        
1525
        
1526
        // Ajout du type de site externe
1526
        // Ajout du type de site externe
1527
        $requete =  'INSERT INTO gen_site_relation '.
1527
        $requete =  'INSERT INTO gen_site_relation '.
1528
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1528
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1529
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1529
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1530
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1530
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1531
                    'gsr_ordre = NULL ';
1531
                    'gsr_ordre = NULL ';
1532
        $resultat = $db->query($requete);
1532
        $resultat = $db->query($requete);
1533
        if (DB::isError($resultat)) {
1533
        if (DB::isError($resultat)) {
1534
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1534
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1535
        }
1535
        }
1536
        
1536
        
1537
    }
1537
    }
1538
    
1538
    
1539
    // Gestion du site par défaut
1539
    // Gestion du site par défaut
1540
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1540
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1541
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1541
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1542
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1542
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1543
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1543
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1544
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1544
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1545
        if (DB::isError($resultat_supr_defaut)) {
1545
        if (DB::isError($resultat_supr_defaut)) {
1546
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1546
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1547
        }
1547
        }
1548
        
1548
        
1549
        // Requete d'insertion de la relations site par défaut
1549
        // Requete d'insertion de la relations site par défaut
1550
        $requete =  'INSERT INTO gen_site_relation '.
1550
        $requete =  'INSERT INTO gen_site_relation '.
1551
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1551
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1552
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1552
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1553
                    'gsr_id_valeur = 101, '.
1553
                    'gsr_id_valeur = 101, '.
1554
                    'gsr_ordre = NULL ';
1554
                    'gsr_ordre = NULL ';
1555
        $resultat = $db->query($requete);
1555
        $resultat = $db->query($requete);
1556
        if (DB::isError($resultat)) {
1556
        if (DB::isError($resultat)) {
1557
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1557
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1558
        }
1558
        }
1559
    }
1559
    }
1560
    
1560
    
1561
    $message = '<p class="pap_info">'.'Succés de la modification du site.'.'</p>';
1561
    $message = '<p class="pap_info">'.'Succés de la modification du site.'.'</p>';
1562
    $message .= '<p class="pap_info">'.$message_complement.'</p>';
1562
    $message .= '<p class="pap_info">'.$message_complement.'</p>';
1563
    return $message;
1563
    return $message;
1564
}
1564
}
1565
 
1565
 
1566
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
1566
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
1567
*
1567
*
1568
* Cette fonction ajoute le site à Papyrus, c'est à dire :
1568
* Cette fonction ajoute le site à Papyrus, c'est à dire :
1569
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1569
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1570
* - 2. Insertion d'une ligne dans la table "gen_site".
1570
* - 2. Insertion d'une ligne dans la table "gen_site".
1571
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1571
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1572
*
1572
*
1573
* @param  string   l'objet pear de connexion à la base de données.
1573
* @param  string   l'objet pear de connexion à la base de données.
1574
* @param  string   le tableau contenant les valeurs du formulaire.
1574
* @param  string   le tableau contenant les valeurs du formulaire.
1575
* @param  int      identifiant de l'administrateur réalisant cette création.
1575
* @param  int      identifiant de l'administrateur réalisant cette création.
1576
* @return string retourne un message en cas de succès ou d'échec.
1576
* @return string retourne un message en cas de succès ou d'échec.
1577
*/
1577
*/
1578
function ADMIN_supprimerSite(&$db, $aso_valeurs)
1578
function ADMIN_supprimerSite(&$db, $aso_valeurs)
1579
{
1579
{
1580
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
1580
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
1581
    $requete =  'SELECT gs_code_alpha '.
1581
    $requete =  'SELECT gs_code_alpha '.
1582
                'FROM gen_site '.
1582
                'FROM gen_site '.
1583
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
1583
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
1584
    $code_alpha_site_principal = $db->getOne($requete);
1584
    $code_alpha_site_principal = $db->getOne($requete);
1585
    if (DB::isError($code_alpha_site_principal)) {
1585
    if (DB::isError($code_alpha_site_principal)) {
1586
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
1586
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
1587
    }
1587
    }
1588
    
1588
    
1589
    // Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
1589
    // Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
1590
    if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
1590
    if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
1591
        $message =  '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
1591
        $message =  '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
1592
                    'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
1592
                    'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
1593
                    'ensuite le supprimer via cette interface.</p>';
1593
                    'ensuite le supprimer via cette interface.</p>';
1594
        return $message;
1594
        return $message;
1595
    }
1595
    }
1596
    
1596
    
1597
    // Recherche des différents sites liés à celui que l'on veut détruire
1597
    // Recherche des différents sites liés à celui que l'on veut détruire
1598
    // Cela comprend le site à détruire lui méme car il posséde la relations
1598
    // Cela comprend le site à détruire lui méme car il posséde la relations
1599
    // sur lui meme "site principale".
1599
    // sur lui meme "site principale".
1600
    $requete =  'SELECT gs_id_site '.
1600
    $requete =  'SELECT gs_id_site '.
1601
                'FROM gen_site, gen_site_relation '.
1601
                'FROM gen_site, gen_site_relation '.
1602
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
1602
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
1603
                'AND gsr_id_site_02 = gs_id_site ';
1603
                'AND gsr_id_site_02 = gs_id_site ';
1604
    $resultat = $db->query($requete);
1604
    $resultat = $db->query($requete);
1605
    if (DB::isError($resultat)) {
1605
    if (DB::isError($resultat)) {
1606
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1606
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1607
    }
1607
    }
1608
    
1608
    
1609
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1609
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1610
        // Requete de suppression des sites liés dans gen_site
1610
        // Requete de suppression des sites liés dans gen_site
1611
        $requete_supr_site =    'DELETE FROM gen_site '.
1611
        $requete_supr_site =    'DELETE FROM gen_site '.
1612
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
1612
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
1613
        $resultat_supr_site = $db->query($requete_supr_site);
1613
        $resultat_supr_site = $db->query($requete_supr_site);
1614
        if (DB::isError($resultat_supr_site)) {
1614
        if (DB::isError($resultat_supr_site)) {
1615
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
1615
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
1616
        }
1616
        }
1617
        
1617
        
1618
        // Requete de suppression des relations des sites à détruire
1618
        // Requete de suppression des relations des sites à détruire
1619
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
1619
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
1620
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
1620
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
1621
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
1621
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
1622
        if (DB::isError($resultat_supr_site_relation)) {
1622
        if (DB::isError($resultat_supr_site_relation)) {
1623
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
1623
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
1624
        }
1624
        }
1625
        
1625
        
1626
        // Recherche des différents menus liés au site à détruire
1626
        // Recherche des différents menus liés au site à détruire
1627
        $requete_menu = 'SELECT gm_id_menu '.
1627
        $requete_menu = 'SELECT gm_id_menu '.
1628
                        'FROM gen_menu '.
1628
                        'FROM gen_menu '.
1629
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
1629
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
1630
        $resultat_menu = $db->query($requete_menu) ;
1630
        $resultat_menu = $db->query($requete_menu) ;
1631
        if (DB::isError($resultat_menu)) {
1631
        if (DB::isError($resultat_menu)) {
1632
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
1632
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
1633
        }
1633
        }
1634
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
1634
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
1635
            // Requete de suppression des des menus
1635
            // Requete de suppression des des menus
1636
            $requete_supr_menu =   'DELETE FROM gen_menu '.
1636
            $requete_supr_menu =   'DELETE FROM gen_menu '.
1637
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
1637
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
1638
            $resultat_supr_menu = $db->query($requete_supr_menu);
1638
            $resultat_supr_menu = $db->query($requete_supr_menu);
1639
            if (DB::isError($resultat_supr_menu)) {
1639
            if (DB::isError($resultat_supr_menu)) {
1640
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
1640
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
1641
            }
1641
            }
1642
            // Requete de suppression des relations des menus
1642
            // Requete de suppression des relations des menus
1643
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
1643
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
1644
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
1644
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
1645
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
1645
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
1646
            if (DB::isError($resultat_supr_menu_relation)) {
1646
            if (DB::isError($resultat_supr_menu_relation)) {
1647
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
1647
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
1648
            }
1648
            }
1649
            
1649
            
1650
            // Requete de suppression des contenus des menus
1650
            // Requete de suppression des contenus des menus
1651
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
1651
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
1652
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
1652
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
1653
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
1653
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
1654
            if (DB::isError($resultat_supr_menu_contenu)) {
1654
            if (DB::isError($resultat_supr_menu_contenu)) {
1655
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
1655
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
1656
            }
1656
            }
1657
            
1657
            
1658
            // Requete de suppression des ulr alternatives des menus
1658
            // Requete de suppression des ulr alternatives des menus
1659
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
1659
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
1660
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
1660
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
1661
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
1661
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
1662
            if (DB::isError($resultat_supr_menu_url_alt)) {
1662
            if (DB::isError($resultat_supr_menu_url_alt)) {
1663
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
1663
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
1664
            }
1664
            }
1665
        }
1665
        }
1666
        $resultat_menu->free();
1666
        $resultat_menu->free();
1667
    }
1667
    }
1668
    $resultat->free();
1668
    $resultat->free();
1669
    
1669
    
1670
    // Suppression des répertoires du site
1670
    // Suppression des répertoires du site
1671
    if (!GEN_FTP_UTILISE) {
1671
    if (!GEN_FTP_UTILISE) {
1672
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
1672
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
1673
        $resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
1673
        $resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
1674
        if (!$resultat) {
1674
        if (!$resultat) {
1675
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
1675
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
1676
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1676
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1677
                        'Ligne n° : '. __LINE__ .'<br />'.
1677
                        'Ligne n° : '. __LINE__ .'<br />'.
1678
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1678
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1679
            return $message;
1679
            return $message;
1680
        }
1680
        }
1681
    } else {
1681
    } else {
1682
        // Création d'une connection ftp avec Net_FTP de PEAR
1682
        // Création d'une connection ftp avec Net_FTP de PEAR
1683
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1683
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1684
        
1684
        
1685
        // création de l'objet pear ftp
1685
        // création de l'objet pear ftp
1686
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1686
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1687
        // création de la connexion
1687
        // création de la connexion
1688
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1688
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1689
        // identification
1689
        // identification
1690
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1690
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1691
        // Gestion des erreurs ftp
1691
        // Gestion des erreurs ftp
1692
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1692
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1693
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1693
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1694
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1694
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1695
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1695
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1696
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1696
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1697
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1697
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1698
                        'Ligne n° : '. __LINE__ .'<br />'.
1698
                        'Ligne n° : '. __LINE__ .'<br />'.
1699
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1699
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1700
            return $message;
1700
            return $message;
1701
        }
1701
        }
1702
        // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
1702
        // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
1703
        error_reporting(E_PARSE);
1703
        error_reporting(E_PARSE);
1704
        $chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
1704
        $chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
-
 
1705
        
-
 
1706
        if ($code_alpha_site_principal!='') {
1705
        $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
1707
	        $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
1706
        if (PEAR::isError($resultat)) {
1708
	        if (PEAR::isError($resultat)) {
1707
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
1709
	            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
1708
                        'Erreur ftp : '.$resultat->getMessage().'<br />'.
1710
	                        'Erreur ftp : '.$resultat->getMessage().'<br />'.
1709
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1711
	                        'Répertoire : '. $chemin_repertoire .'<br />'.
1710
                        'Ligne n° : '. __LINE__ .'<br />'.
1712
	                        'Ligne n° : '. __LINE__ .'<br />'.
1711
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1713
	                        'Fichier n° : '. __FILE__ .'<br /></p>';
1712
            return $message;
1714
	            return $message;
-
 
1715
	        }
1713
        }
1716
        }
1714
        $objet_pear_ftp->disconnect();
1717
        $objet_pear_ftp->disconnect();
1715
        // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1718
        // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1716
        error_reporting(GEN_DEBOGAGE_NIVEAU);
1719
        error_reporting(GEN_DEBOGAGE_NIVEAU);
1717
    }
1720
    }
1718
    $message = '<p class="pap_info">Succés de la suppression du site.</p>';
1721
    $message = '<p class="pap_info">Succés de la suppression du site.</p>';
1719
    return $message;
1722
    return $message;
1720
}
1723
}
1721
 
1724
 
1722
 
1725
 
1723
function ADMIN_verifier_traduction_possible(&$db, $aso_valeurs) {
1726
function ADMIN_verifier_traduction_possible(&$db, $aso_valeurs) {
1724
	
1727
	
1725
		
1728
		
1726
	// 	Traduction d'un site principal uniquement :
1729
	// 	Traduction d'un site principal uniquement :
1727
    
1730
    
1728
    $requete =  'SELECT gsr_id_site_01, gs_ce_i18n '.
1731
    $requete =  'SELECT gsr_id_site_01, gs_ce_i18n '.
1729
                'FROM gen_site_relation, gen_site '.
1732
                'FROM gen_site_relation, gen_site '.
1730
                'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
1733
                'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
1731
                'AND gs_id_site = gsr_id_site_01  '.
1734
                'AND gs_id_site = gsr_id_site_01  '.
1732
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1735
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1733
    
1736
    
1734
    $resultat = $db->query($requete);
1737
    $resultat = $db->query($requete);
1735
    
1738
    
1736
    if (DB::isError($resultat)) {
1739
    if (DB::isError($resultat)) {
1737
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1740
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1738
    }
1741
    }
1739
 
1742
 
1740
    if ( $resultat->numRows() == 0 ) {
1743
    if ( $resultat->numRows() == 0 ) {
1741
    	$site_id = $aso_valeurs['form_sites_id_site'];
1744
    	$site_id = $aso_valeurs['form_sites_id_site'];
1742
    }
1745
    }
1743
    else {
1746
    else {
1744
    	$ligne_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1747
    	$ligne_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1745
        $site_id = $ligne_site->gsr_id_site_01;
1748
        $site_id = $ligne_site->gsr_id_site_01;
1746
    }
1749
    }
1747
    
1750
    
1748
		
1751
		
1749
	 $requete =  'SELECT distinct gs_ce_i18n '.
1752
	 $requete =  'SELECT distinct gs_ce_i18n '.
1750
    'FROM gen_site_relation, gen_site '.
1753
    'FROM gen_site_relation, gen_site '.
1751
    'WHERE gsr_id_site_01 = ' . $site_id .' '.
1754
    'WHERE gsr_id_site_01 = ' . $site_id .' '.
1752
    'AND gs_id_site = gsr_id_site_02  '.
1755
    'AND gs_id_site = gsr_id_site_02  '.
1753
    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1756
    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1754
    
1757
    
1755
    $resultat = $db->query($requete) ;
1758
    $resultat = $db->query($requete) ;
1756
    if (DB::isError($resultat)) {
1759
    if (DB::isError($resultat)) {
1757
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1760
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1758
    }
1761
    }
1759
    $not_in_langue='';
1762
    $not_in_langue='';
1760
    if ( $resultat->numRows() == 0 ) {
1763
    if ( $resultat->numRows() == 0 ) {
1761
		$not_in_langue="gi_id_i18n not in('".$ligne_site->gs_ce_i18n."')";    
1764
		$not_in_langue="gi_id_i18n not in('".$ligne_site->gs_ce_i18n."')";    
1762
    }
1765
    }
1763
    else {
1766
    else {
1764
    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1767
    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1765
				$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
1768
				$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
1766
				$end="'".$ligne->gs_ce_i18n."'";
1769
				$end="'".$ligne->gs_ce_i18n."'";
1767
			}
1770
			}
1768
    		$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
1771
    		$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
1769
    }
1772
    }
1770
	$resultat->free();		    
1773
	$resultat->free();		    
1771
 
1774
 
1772
	$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
1775
	$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
1773
	
1776
	
1774
    $resultat = $db->query($requete) ;
1777
    $resultat = $db->query($requete) ;
1775
    if (DB::isError($resultat)) {
1778
    if (DB::isError($resultat)) {
1776
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1779
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1777
    }
1780
    }
1778
    
1781
    
1779
    $retour = $resultat->numRows();
1782
    $retour = $resultat->numRows();
1780
    $resultat->free();
1783
    $resultat->free();
1781
    
1784
    
1782
    $message='';
1785
    $message='';
1783
    if ($retour == 0) {
1786
    if ($retour == 0) {
1784
    	  $message = '<p class="pap_erreur">Plus de traduction possible pour ce site </p>';
1787
    	  $message = '<p class="pap_erreur">Plus de traduction possible pour ce site </p>';
1785
    }
1788
    }
1786
    return  $message;
1789
    return  $message;
1787
}
1790
}
1788
    
1791
    
1789
// +- Fin du code source  --------------------------------------------------------------------------------+
1792
// +- Fin du code source  --------------------------------------------------------------------------------+
1790
/*
1793
/*
1791
* $Log: not supported by cvs2svn $
1794
* $Log: not supported by cvs2svn $
-
 
1795
* Revision 1.29  2006/03/23 20:24:58  ddelon
-
 
1796
* *** empty log message ***
-
 
1797
*
1792
* Revision 1.28  2006/03/15 23:44:19  ddelon
1798
* Revision 1.28  2006/03/15 23:44:19  ddelon
1793
* Gestion site
1799
* Gestion site
1794
*
1800
*
1795
* Revision 1.27  2006/03/15 23:35:25  ddelon
1801
* Revision 1.27  2006/03/15 23:35:25  ddelon
1796
* Gestion site
1802
* Gestion site
1797
*
1803
*
1798
* Revision 1.26  2006/03/02 10:49:49  ddelon
1804
* Revision 1.26  2006/03/02 10:49:49  ddelon
1799
* Fusion branche multilinguisme dans branche principale
1805
* Fusion branche multilinguisme dans branche principale
1800
*
1806
*
1801
* Revision 1.25.2.2  2006/02/28 14:02:10  ddelon
1807
* Revision 1.25.2.2  2006/02/28 14:02:10  ddelon
1802
* Finition multilinguisme
1808
* Finition multilinguisme
1803
*
1809
*
1804
* Revision 1.25.2.1  2006/01/19 21:26:20  ddelon
1810
* Revision 1.25.2.1  2006/01/19 21:26:20  ddelon
1805
* Multilinguisme site + bug ftp
1811
* Multilinguisme site + bug ftp
1806
*
1812
*
1807
* Revision 1.25  2005/10/17 13:48:59  jp_milcent
1813
* Revision 1.25  2005/10/17 13:48:59  jp_milcent
1808
* Ajout d'un espace après le texte "Dernière modification par".
1814
* Ajout d'un espace après le texte "Dernière modification par".
1809
*
1815
*
1810
* Revision 1.24  2005/09/23 14:32:54  florian
1816
* Revision 1.24  2005/09/23 14:32:54  florian
1811
* compatibilité XHTML + correction interface
1817
* compatibilité XHTML + correction interface
1812
*
1818
*
1813
* Revision 1.23  2005/09/20 17:01:22  ddelon
1819
* Revision 1.23  2005/09/20 17:01:22  ddelon
1814
* php5 et bugs divers
1820
* php5 et bugs divers
1815
*
1821
*
1816
* Revision 1.22  2005/05/27 16:06:16  jpm
1822
* Revision 1.22  2005/05/27 16:06:16  jpm
1817
* Gestion des infos sur l'admin modifiant les infos.
1823
* Gestion des infos sur l'admin modifiant les infos.
1818
*
1824
*
1819
* Revision 1.21  2005/04/08 13:29:04  jpm
1825
* Revision 1.21  2005/04/08 13:29:04  jpm
1820
* Utiliation de références.
1826
* Utiliation de références.
1821
* Correction du double &amp; dans les urls du formulaire.
1827
* Correction du double &amp; dans les urls du formulaire.
1822
*
1828
*
1823
* Revision 1.20  2005/03/08 11:17:47  jpm
1829
* Revision 1.20  2005/03/08 11:17:47  jpm
1824
* Suppression de l'inclusion d'un fichier inutile.
1830
* Suppression de l'inclusion d'un fichier inutile.
1825
*
1831
*
1826
* Revision 1.19  2005/02/28 11:07:00  jpm
1832
* Revision 1.19  2005/02/28 11:07:00  jpm
1827
* Modification des auteurs.
1833
* Modification des auteurs.
1828
*
1834
*
1829
* Revision 1.18  2005/02/28 10:59:07  jpm
1835
* Revision 1.18  2005/02/28 10:59:07  jpm
1830
* Modification des commentaires et copyright.
1836
* Modification des commentaires et copyright.
1831
*
1837
*
1832
* Revision 1.17  2005/02/17 17:51:11  florian
1838
* Revision 1.17  2005/02/17 17:51:11  florian
1833
* Correction bug FTP
1839
* Correction bug FTP
1834
*
1840
*
1835
* Revision 1.16  2005/02/17 16:44:55  florian
1841
* Revision 1.16  2005/02/17 16:44:55  florian
1836
* correction du bug sur les sites par défaut
1842
* correction du bug sur les sites par défaut
1837
*
1843
*
1838
* Revision 1.15  2005/01/04 19:52:50  alex
1844
* Revision 1.15  2005/01/04 19:52:50  alex
1839
* correction de bug de copie de répertoire récursif de PEAR.
1845
* correction de bug de copie de répertoire récursif de PEAR.
1840
*
1846
*
1841
* Revision 1.14  2004/12/03 19:22:53  jpm
1847
* Revision 1.14  2004/12/03 19:22:53  jpm
1842
* Gestion des types de sites externes gérés par Papyrus.
1848
* Gestion des types de sites externes gérés par Papyrus.
1843
*
1849
*
1844
* Revision 1.13  2004/12/03 16:37:34  jpm
1850
* Revision 1.13  2004/12/03 16:37:34  jpm
1845
* Correction d'un bogue qui empécher la mise à jour des url des sites externes.
1851
* Correction d'un bogue qui empécher la mise à jour des url des sites externes.
1846
*
1852
*
1847
* Revision 1.12  2004/12/01 17:22:58  jpm
1853
* Revision 1.12  2004/12/01 17:22:58  jpm
1848
* Ajout d'une confirmation javascript pour la suppression d'un site.
1854
* Ajout d'une confirmation javascript pour la suppression d'un site.
1849
*
1855
*
1850
* Revision 1.11  2004/11/30 16:43:51  jpm
1856
* Revision 1.11  2004/11/30 16:43:51  jpm
1851
* Correction de bogues.
1857
* Correction de bogues.
1852
*
1858
*
1853
* Revision 1.10  2004/11/29 17:05:28  jpm
1859
* Revision 1.10  2004/11/29 17:05:28  jpm
1854
* Correction d'un bogue concernat les cases à cocher.
1860
* Correction d'un bogue concernat les cases à cocher.
1855
*
1861
*
1856
* Revision 1.9  2004/11/26 13:13:51  jpm
1862
* Revision 1.9  2004/11/26 13:13:51  jpm
1857
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
1863
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
1858
*
1864
*
1859
* Revision 1.8  2004/11/03 17:59:59  jpm
1865
* Revision 1.8  2004/11/03 17:59:59  jpm
1860
* Corrections bogues erreurs variable inconnue.
1866
* Corrections bogues erreurs variable inconnue.
1861
*
1867
*
1862
* Revision 1.7  2004/10/26 18:41:28  jpm
1868
* Revision 1.7  2004/10/26 18:41:28  jpm
1863
* Gestion des sites externes à Papyrus.
1869
* Gestion des sites externes à Papyrus.
1864
*
1870
*
1865
* Revision 1.6  2004/10/22 17:25:31  jpm
1871
* Revision 1.6  2004/10/22 17:25:31  jpm
1866
* Changement du nom de la class CSS d'erreur.
1872
* Changement du nom de la class CSS d'erreur.
1867
*
1873
*
1868
* Revision 1.5  2004/10/19 15:57:55  jpm
1874
* Revision 1.5  2004/10/19 15:57:55  jpm
1869
* Amélioration de la gestion des fichiers sur le serveur.
1875
* Amélioration de la gestion des fichiers sur le serveur.
1870
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
1876
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
1871
*
1877
*
1872
* Revision 1.4  2004/10/18 18:27:41  jpm
1878
* Revision 1.4  2004/10/18 18:27:41  jpm
1873
* Correction problèmes FTP et manipulation de fichiers.
1879
* Correction problèmes FTP et manipulation de fichiers.
1874
*
1880
*
1875
* Revision 1.3  2004/09/23 16:51:27  jpm
1881
* Revision 1.3  2004/09/23 16:51:27  jpm
1876
* Ajout d'informations supplémentaires sur les messages d'erreur.
1882
* Ajout d'informations supplémentaires sur les messages d'erreur.
1877
*
1883
*
1878
* Revision 1.2  2004/07/06 17:08:01  jpm
1884
* Revision 1.2  2004/07/06 17:08:01  jpm
1879
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
1885
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
1880
*
1886
*
1881
* Revision 1.1  2004/06/16 14:28:46  jpm
1887
* Revision 1.1  2004/06/16 14:28:46  jpm
1882
* Changement de nom de Génésia en Papyrus.
1888
* Changement de nom de Génésia en Papyrus.
1883
* Changement de l'arborescence.
1889
* Changement de l'arborescence.
1884
*
1890
*
1885
* Revision 1.20  2004/05/10 14:32:14  jpm
1891
* Revision 1.20  2004/05/10 14:32:14  jpm
1886
* Changement du titre.
1892
* Changement du titre.
1887
*
1893
*
1888
* Revision 1.19  2004/05/10 12:23:39  jpm
1894
* Revision 1.19  2004/05/10 12:23:39  jpm
1889
* Modification formulaire.
1895
* Modification formulaire.
1890
*
1896
*
1891
* Revision 1.18  2004/05/07 16:33:53  jpm
1897
* Revision 1.18  2004/05/07 16:33:53  jpm
1892
* Amélioration des formulaires.
1898
* Amélioration des formulaires.
1893
*
1899
*
1894
* Revision 1.17  2004/05/07 07:22:51  jpm
1900
* Revision 1.17  2004/05/07 07:22:51  jpm
1895
* Ajout de la gestion des modification et suppression de site.
1901
* Ajout de la gestion des modification et suppression de site.
1896
* Amélioration de la création des sites.
1902
* Amélioration de la création des sites.
1897
*
1903
*
1898
* Revision 1.16  2004/04/30 16:22:53  jpm
1904
* Revision 1.16  2004/04/30 16:22:53  jpm
1899
* Poursuite de l'administration des sites.
1905
* Poursuite de l'administration des sites.
1900
*
1906
*
1901
* Revision 1.14  2004/04/02 15:58:39  jpm
1907
* Revision 1.14  2004/04/02 15:58:39  jpm
1902
* Modification fonction liste des projets.
1908
* Modification fonction liste des projets.
1903
*
1909
*
1904
* Revision 1.13  2004/04/01 11:21:41  jpm
1910
* Revision 1.13  2004/04/01 11:21:41  jpm
1905
* Ajout et modification de commentaires pour PhpDocumentor.
1911
* Ajout et modification de commentaires pour PhpDocumentor.
1906
*
1912
*
1907
* Revision 1.12  2004/03/24 20:01:02  jpm
1913
* Revision 1.12  2004/03/24 20:01:02  jpm
1908
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
1914
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
1909
*
1915
*
1910
* Revision 1.11  2004/03/24 10:06:01  jpm
1916
* Revision 1.11  2004/03/24 10:06:01  jpm
1911
* Ajout des commentaires d'entête.
1917
* Ajout des commentaires d'entête.
1912
* Début mise en conformité avec la convention de codage.
1918
* Début mise en conformité avec la convention de codage.
1913
* Début traitement de la fonction listant les projets.
1919
* Début traitement de la fonction listant les projets.
1914
*
1920
*
1915
*
1921
*
1916
*/
1922
*/
1917
?>
1923
?>