Subversion Repositories Applications.papyrus

Rev

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

Rev 1357 Rev 1364
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.35 2007-04-20 10:42:42 neiluj Exp $
22
// CVS : $Id: adsi_site.fonct.php,v 1.36 2007-04-20 13:48:31 alexandre_tb Exp $
23
/**
23
/**
24
* Bibliothèque de fonctions d'admininistration des projets
24
* Bibliotheque 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 a l'application Administrateur de Papyrus, de modifier des informations
27
* sur les projets (=sites gérés par Papyrus).
27
* sur les projets (=sites geres 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.35 $ $Date: 2007-04-20 10:42:42 $
37
*@version       $Revision: 1.36 $ $Date: 2007-04-20 13:48:31 $
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 bibliotheque de PEAR gerant 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()- Genere 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 Papyrus.
54
* Cette fonction fournie une liste des sites principaux geres par papyrus.
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 a 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 defaut, 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 donnees 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 a la base de donnees.
298
* @param  string   l'url à laquelle renvoyer le formulaire.
298
* @param  string   l'url a 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 a destination de l'utilisateur.
301
* return  string   le code XHTML à retourner.
301
* return  string   le code XHTML a 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 a 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 recuperer les informations sur le site a 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 recuperer les informations issues des relations du site a 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 defaut
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 a 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
    // Debogage :
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 precedent 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&eacute;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
    
476
    
477
    
477
    
478
    $id = 'gs_ce_auth';
478
    $id = 'gs_ce_auth';
479
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
479
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
480
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
480
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
481
    if (isset($aso_valeurs['gs_ce_auth'])) {
481
    if (isset($aso_valeurs['gs_ce_auth'])) {
482
	    $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
482
	    $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
483
    	$s->loadArray($aso_options,$aso_valeurs['gs_ce_auth']);
483
    	$s->loadArray($aso_options,$aso_valeurs['gs_ce_auth']);
484
    	$form->addElement($s);
484
    	$form->addElement($s);
485
    }
485
    }
486
    else {
486
    else {
487
	    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
487
	    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
488
    } 
488
    } 
489
    
489
    
490
    // En modification nous affichons la liste des squelettes disponibles dans
490
    // En modification nous affichons la liste des squelettes disponibles dans
491
    // le dossier du site.
491
    // le dossier du site.
492
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
492
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
493
        $aso_options = array();
493
        $aso_options = array();
494
        if (!GEN_FTP_UTILISE) {
494
        if (!GEN_FTP_UTILISE) {
495
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
495
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
496
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
496
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
497
            $dossier = opendir($chemin_squelettes);
497
            $dossier = opendir($chemin_squelettes);
498
            while(($fichier = readdir($dossier)) !== false) {
498
            while(($fichier = readdir($dossier)) !== false) {
499
                if ($fichier != '.' && $fichier != '..') {
499
                if ($fichier != '.' && $fichier != '..') {
500
                    $chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
500
                    $chemin_type = $chemin_squelettes.GEN_SEP.$fichier;
501
                    if (filetype($chemin_type) != 'dir') {
501
                    if (filetype($chemin_type) != 'dir') {
502
                        $aso_options[$fichier] = $fichier;
502
                        $aso_options[$fichier] = $fichier;
503
                    }
503
                    }
504
                }
504
                }
505
            }
505
            }
506
        } else {
506
        } else {
507
            // ouverture des squelettes présent dans le dossier du site 
507
            // ouverture des squelettes present dans le dossier du site 
508
            // création de l'objet pear ftp
508
            // creation de l'objet pear ftp
509
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
509
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
510
            // création de la connexion
510
            // creation de la connexion
511
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
511
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
512
            // identification
512
            // identification
513
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
513
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
514
            // Gestion des erreurs ftp
514
            // Gestion des erreurs ftp
515
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
515
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
516
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
516
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
517
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
517
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
518
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
518
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
519
                    'Ligne n° : '. __LINE__ .'<br />'.
519
                    'Ligne n&deg; : '. __LINE__ .'<br />'.
520
                    'Fichier n° : '. __FILE__ .'<br />');
520
                    'Fichier n&deg; : '. __FILE__ .'<br />');
521
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
521
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
522
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
522
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
523
            }
523
            }
524
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
524
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
525
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
525
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
526
            $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
526
            $tab_squelettes = $objet_pear_ftp->ls($chemin_squelettes);
527
            $aso_options = array();
527
            $aso_options = array();
528
            for ($i = 0; $i < count($tab_squelettes) ; $i++) {
528
            for ($i = 0; $i < count($tab_squelettes) ; $i++) {
529
                if ($tab_squelettes[$i]['is_dir'] == false) {
529
                if ($tab_squelettes[$i]['is_dir'] == false) {
530
                    $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
530
                    $aso_options[$tab_squelettes[$i]['name']] = $tab_squelettes[$i]['name'];
531
                }
531
                }
532
            }
532
            }
533
            $objet_pear_ftp->disconnect();
533
            $objet_pear_ftp->disconnect();
534
        }
534
        }
535
        
535
        
536
        // Vérification de la présence de squelettes
536
        // Vérification de la présence de squelettes
537
        if (count($aso_options) == 0) {
537
        if (count($aso_options) == 0) {
538
            $aso_options['Aucun squelette'] = 'Aucun squelette';
538
            $aso_options['Aucun squelette'] = 'Aucun squelette';
539
        }
539
        }
540
        
540
        
541
        $id = 'gs_fichier_squelette';
541
        $id = 'gs_fichier_squelette';
542
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
542
        $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
543
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
543
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
544
        $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
544
        $s = &$form->createElement('select', $id , $label, "", $aso_attributs);
545
    	$s->loadArray($aso_options,$aso_valeurs['gs_fichier_squelette']);
545
    	$s->loadArray($aso_options,$aso_valeurs['gs_fichier_squelette']);
546
    	$form->addElement($s);
546
    	$form->addElement($s);
547
    
547
    
548
    }
548
    }
549
    
549
    
550
    // Requete pour connaitre les internationalisation dispo
550
    // Requete pour connaitre les internationalisation dispo
551
    
551
    
552
    if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
552
    if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
553
    	$requete =  'SELECT * '.
553
    	$requete =  'SELECT * '.
554
        	        'FROM gen_i18n ';
554
        	        'FROM gen_i18n ';
555
    }
555
    }
556
    	else  {
556
    	else  {
557
    		
557
    		
558
    		
558
    		
559
    		if ($aso_valeurs['traduction']) {
559
    		if ($aso_valeurs['traduction']) {
560
    			
560
    			
561
    		// Recherche liste des sites deja traduits 
561
    		// Recherche liste des sites deja traduits 
562
    		
562
    		
563
	    		 $requete =  'SELECT distinct gs_ce_i18n  '.
563
	    		 $requete =  'SELECT distinct gs_ce_i18n  '.
564
                'FROM gen_site_relation, gen_site '.
564
                'FROM gen_site_relation, gen_site '.
565
                'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
565
                'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
566
                'AND gs_id_site = gsr_id_site_02  '.
566
                'AND gs_id_site = gsr_id_site_02  '.
567
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
567
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
568
                
568
                
569
                
569
                
570
			    $resultat = $db->query($requete) ;
570
			    $resultat = $db->query($requete) ;
571
			    if (DB::isError($resultat)) {
571
			    if (DB::isError($resultat)) {
572
			        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
572
			        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
573
			    }
573
			    }
574
			    $not_in_langue='';
574
			    $not_in_langue='';
575
			    if ( $resultat->numRows() == 0 ) {
575
			    if ( $resultat->numRows() == 0 ) {
576
					$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
576
					$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
577
			    }
577
			    }
578
			    else {
578
			    else {
579
			    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
579
			    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
580
    	 					$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
580
    	 					$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
581
    	 					$end="'".$ligne->gs_ce_i18n."'";
581
    	 					$end="'".$ligne->gs_ce_i18n."'";
582
    					}
582
    					}
583
    					if ($not_in_langue) {
583
    					if ($not_in_langue) {
584
			    			$not_in_langue="'".$site_ligne['gs_ce_i18n']."'".",".$not_in_langue;
584
			    			$not_in_langue="'".$site_ligne['gs_ce_i18n']."'".",".$not_in_langue;
585
			    			$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
585
			    			$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
586
			    		}
586
			    		}
587
			    		else {
587
			    		else {
588
			    			$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
588
			    			$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";
589
			    		}
589
			    		}
590
			    }
590
			    }
591
				$resultat->free();		    
591
				$resultat->free();		    
592
    		
592
    		
593
	    		$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
593
	    		$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
594
    		}
594
    		}
595
    		else 
595
    		else 
596
    		{
596
    		{
597
    			$requete =  "SELECT * FROM gen_i18n where  gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
597
    			$requete =  "SELECT * FROM gen_i18n where  gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
598
    		}
598
    		}
599
    }
599
    }
600
    $resultat = $db->query($requete) ;
600
    $resultat = $db->query($requete) ;
601
    if (DB::isError($resultat)) {
601
    if (DB::isError($resultat)) {
602
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
602
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
603
    }
603
    }
604
    $aso_options = array();
604
    $aso_options = array();
605
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
605
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
606
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
606
        $aso_options[$ligne->gi_id_i18n] = $ligne->gi_id_i18n;
607
    }
607
    }
608
    $resultat->free();
608
    $resultat->free();
609
    $id = 'gs_ce_i18n';
609
    $id = 'gs_ce_i18n';
610
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
610
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
611
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
611
    $label = '<label for="'.$id.'">'.'Langue : '.'</label>';
612
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
612
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
613
    
613
    
614
    $id = 'defaut';
614
    $id = 'defaut';
615
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
615
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
616
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
616
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
617
        $aso_attributs['checked'] = 'checked';
617
        $aso_attributs['checked'] = 'checked';
618
    }
618
    }
619
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
619
    $label = '<label for="'.$id.'">'.'En faire le site par d&eacute;faut : '.'</label>';
620
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
620
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
621
    
621
    
622
    // Groupe site externe
622
    // Groupe site externe
623
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
623
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
624
    $aso_options = array('0' => 'Aucun');
624
    $aso_options = array('0' => 'Aucun');
625
    foreach ($tab_type as $cle => $val) {
625
    foreach ($tab_type as $cle => $val) {
626
        $aso_options[$val['id']] = $val['intitule'];
626
        $aso_options[$val['id']] = $val['intitule'];
627
    }
627
    }
628
    
628
    
629
    $id = 'type_site_externe';
629
    $id = 'type_site_externe';
630
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
630
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
631
    $label = '<label>'.'Type de site externe : '.'</label>';
631
    $label = '<label>'.'Type de site externe : '.'</label>';
632
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
632
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
633
    
633
    
634
    $id = 'gs_url';
634
    $id = 'gs_url';
635
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
635
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://');
636
    $label = '<label>'.'URL du site externe : '.'</label>';
636
    $label = '<label>'.'URL du site externe : '.'</label>';
637
    $form->addElement('text', $id, $label, $aso_attributs);
637
    $form->addElement('text', $id, $label, $aso_attributs);
638
    
638
    
639
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
639
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
640
    $form->addElement('html', $partie_site_fin);
640
    $form->addElement('html', $partie_site_fin);
641
    
641
    
642
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
642
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Ent&egrave;te par d&eacute;faut des pages du site</legend>'."\n".'<ul>'."\n";
643
    $form->addElement('html', $partie_entete_debut);
643
    $form->addElement('html', $partie_entete_debut);
644
    
644
    
645
    $id = 'gs_titre';
645
    $id = 'gs_titre';
646
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
646
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
647
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
647
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
648
    $form->addElement('text', $id, $label, $aso_attributs);
648
    $form->addElement('text', $id, $label, $aso_attributs);
649
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
649
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
650
    
650
    
651
    $id = 'gs_mots_cles';
651
    $id = 'gs_mots_cles';
652
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
652
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
653
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
653
    $label = '<label for="'.$id.'">'.'Mots-cl&eacute;s : '.'</label>';
654
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
654
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
655
    $zone_mots_cles->setValue('mots-clés du site');
655
    $zone_mots_cles->setValue('mots-cl&eacute;s du site');
656
    $form->addElement($zone_mots_cles);
656
    $form->addElement($zone_mots_cles);
657
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
657
    $form->addRule($id, 'Des mots cl&eacute;s sont requis pour le site !', 'required', '', 'client');
658
    
658
    
659
    $id = 'gs_description';
659
    $id = 'gs_description';
660
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
660
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
661
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
661
    $label = '<label for="'.$id.'">'.'Description du contenu : '.'</label>';
662
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
662
    $zone = $form->createElement('textarea', $id, $label, $aso_attributs);
663
    $zone->setValue('description du site');
663
    $zone->setValue('description du site');
664
    $form->addElement($zone);
664
    $form->addElement($zone);
665
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
665
    $form->addRule($id, 'Une description est requise pour le site !', 'required', '', 'client');
666
    
666
    
667
    $id = 'gs_auteur';
667
    $id = 'gs_auteur';
668
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
668
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'auteur du site');
669
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
669
    $label = '<label for="'.$id.'">'.'Auteur du site : '.'</label>';
670
    $form->addElement('text', $id, $label, $aso_attributs);
670
    $form->addElement('text', $id, $label, $aso_attributs);
671
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
671
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
672
    
672
    
673
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
673
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
674
    $form->addElement('html', $partie_entete_fin);
674
    $form->addElement('html', $partie_entete_fin);
675
    
675
    
676
    if ($aso_valeurs['modification'] ||  $aso_valeurs['traduction']) {
676
    if ($aso_valeurs['modification'] ||  $aso_valeurs['traduction']) {
677
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
677
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
678
        $requete_admin =    'SELECT * '.
678
        $requete_admin =    'SELECT * '.
679
                            'FROM gen_annuaire '.
679
                            'FROM gen_annuaire '.
680
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
680
                            'WHERE ga_id_administrateur = '.$aso_valeurs['gs_ce_admin'];
681
        $resultat_admin = $db->query($requete_admin);
681
        $resultat_admin = $db->query($requete_admin);
682
        if (DB::isError($resultat_admin)) {
682
        if (DB::isError($resultat_admin)) {
683
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
683
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
684
        }
684
        }
685
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
685
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
686
        if (isset($ligne_admin)) {
686
        if (isset($ligne_admin)) {
687
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Dernière modification par '.
687
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Derni&egrave;re modification par '.
688
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
688
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
689
        	$form->addElement('html', $info_admin);
689
        	$form->addElement('html', $info_admin);
690
        	$form->addElement('hidden', 'gs_ce_admin');
690
        	$form->addElement('hidden', 'gs_ce_admin');
691
        	$form->addElement('hidden', 'gs_date_creation');
691
        	$form->addElement('hidden', 'gs_date_creation');
692
        }
692
        }
693
        
693
        
694
        // Titre de la page:
694
        // Titre de la page:
695
        if ($aso_valeurs['modification']) {
695
        if ($aso_valeurs['modification']) {
696
        	$titre = 'Modifier un site';
696
        	$titre = 'Modifier un site';
697
        	$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
697
        	$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
698
        }
698
        }
699
        else {
699
        else {
700
        	$titre = 'Traduire un site';
700
        	$titre = 'Traduire un site';
701
        	$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
701
        	$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
702
        }
702
        }
703
        
703
        
704
    } else {
704
    } else {
705
        // Titre de la page:
705
        // Titre de la page:
706
        $titre = 'Ajouter un site';
706
        $titre = 'Ajouter un site';
707
        // Bouton validant le formulaire
707
        // Bouton validant le formulaire
708
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
708
        $bouton_validation = '<input type="submit" id="site_enregistrer" name="site_enregistrer" value="Enregistrer" />';
709
    }
709
    }
710
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
710
    $bouton_annuler =   '<input type="submit" id="form_annuler" name="form_annuler" value="Annuler" />';
711
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
711
    $bouton_effacer =   '<input type="reset" id="effacer" name="effacer" value="Effacer" />';
712
    $boutons =  '<p>'."\n".
712
    $boutons =  '<p>'."\n".
713
                $bouton_validation."\n".
713
                $bouton_validation."\n".
714
                $bouton_annuler."\n".
714
                $bouton_annuler."\n".
715
                $bouton_effacer."\n".
715
                $bouton_effacer."\n".
716
                '</p>'."\n";
716
                '</p>'."\n";
717
    $form->addElement('html', $boutons);
717
    $form->addElement('html', $boutons);
718
    
718
    
719
    // Instanciation des valeurs par défaut du formulaire
719
    // Instanciation des valeurs par defaut du formulaire
720
    $form->setDefaults($aso_valeurs);
720
    $form->setDefaults($aso_valeurs);
721
    
721
    
722
    // Javascript pour la validation côté client
-
 
723
    $regles_javascript = $form->getValidationScript();
-
 
724
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
-
 
725
    // Le code ci-dessous devrait être utilisé si on arrive à empêcher Quickform de l'ajouter lui-même!
-
 
726
    /*
-
 
727
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
-
 
728
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
-
 
729
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
-
 
730
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
-
 
731
    GEN_stockerCodeScript($regles_javascript);
722
    // Javascript pour la validation cote client
732
    */
723
    $regles_javascript = $form->getValidationScript();
733
    
724
    
734
    // Note de fin de formulaire
725
    // Note de fin de formulaire
735
    $form->setRequiredNote('Indique les champs obligatoires');
726
    $form->setRequiredNote('Indique les champs obligatoires');
736
    $sortie .= $form->toHTML()."\n";
727
    $sortie .= $form->toHTML()."\n";
737
    
728
    
738
    // Construction de la page.
729
    // Construction de la page.
739
    return ADMIN_contruirePage($titre, $sortie, $message);
730
    return ADMIN_contruirePage($titre, $sortie, $message);
740
}
731
}
741
 
732
 
742
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
733
/** Fonction ADMIN_validerFormAjouterSite() - Valide les donnees issues du formulaire pour gen_site.
743
*
734
*
744
* Cette fonction valide les données à ajouter dans la table gen_site.
735
* Cette fonction valide les donnees a ajouter dans la table gen_site.
745
*
736
*
746
* @param  string   l'objet pear de connexion à la base de données.
737
* @param  string   l'objet pear de connexion a la base de données.
747
* @param  string   le tableau contenant les valeurs du formulaire.
738
* @param  string   le tableau contenant les valeurs du formulaire.
748
* @return string   retourne les messages d'erreurs sinon rien.
739
* @return string   retourne les messages d'erreurs sinon rien.
749
*/
740
*/
750
function ADMIN_validerFormSite(&$db, $aso_valeurs)
741
function ADMIN_validerFormSite(&$db, $aso_valeurs)
751
{
742
{
752
    $message = '';
743
    $message = '';
753
    
744
    
754
    // Validation des données du formulaire
745
    // Validation des donnees du formulaire
755
    if (empty($aso_valeurs['gs_nom'])) {
746
    if (empty($aso_valeurs['gs_nom'])) {
756
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
747
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas &ecirc;tre vide.</p>';
757
    }
748
    }
758
    if (empty($aso_valeurs['gs_code_alpha'])) {
749
    if (empty($aso_valeurs['gs_code_alpha'])) {
759
        $message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
750
        $message .= '<p class="pap_erreur">Le champ "Code alphanum&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
760
    }
751
    }
761
    if ($aso_valeurs['gs_code_num'] == '') {
752
    if ($aso_valeurs['gs_code_num'] == '') {
762
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est considéré comme vide!
753
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est considéré comme vide!
763
        $message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
754
        $message .= '<p class="pap_erreur">Le champ "Code num&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
764
    }
755
    }
765
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
756
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
766
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
757
        $message .= '<p class="pap_erreur">Le champ "Code num&eacute;rique" doit contenir un nombre.</p>';
767
    }
758
    }
768
    
759
    
769
    // Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
760
    // Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
770
    // en mode creation uniquement !
761
    // en mode creation uniquement !
771
   
762
   
772
   
763
   
773
    if (!isset($aso_valeurs['site_modifier'])) $aso_valeurs['site_modifier']=0;
764
    if (!isset($aso_valeurs['site_modifier'])) $aso_valeurs['site_modifier']=0;
774
    if (!isset($aso_valeurs['site_traduire'])) $aso_valeurs['site_traduire']=0;
765
    if (!isset($aso_valeurs['site_traduire'])) $aso_valeurs['site_traduire']=0;
775
    
766
    
776
    if (@!$aso_valeurs['site_modifier'] && @!$aso_valeurs['site_traduire'] ) {
767
    if (@!$aso_valeurs['site_modifier'] && @!$aso_valeurs['site_traduire'] ) {
777
    
768
    
778
	    $requete =  'SELECT gs_code_alpha, gs_code_num '.
769
	    $requete =  'SELECT gs_code_alpha, gs_code_num '.
779
	                'FROM gen_site, gen_site_relation '.
770
	                'FROM gen_site, gen_site_relation '.
780
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
771
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
781
	                'AND gsr_id_site_01 = gs_id_site '.
772
	                'AND gsr_id_site_01 = gs_id_site '.
782
	                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
773
	                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
783
	    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
774
	    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
784
	    
775
	    
785
	    
776
	    
786
	    $resultat = $db->query($requete);
777
	    $resultat = $db->query($requete);
787
	    if (DB::isError($resultat)) {
778
	    if (DB::isError($resultat)) {
788
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
779
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
789
	    }
780
	    }
790
	    
781
	    
791
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
782
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
792
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
783
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
793
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
784
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code num&eacute;rique" existe d&eacute;j&agrave;.</p>';
794
	        }
785
	        }
795
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
786
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
796
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
787
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanum&eacute;rique" existe d&eacute;j&agrave;.</p>';
797
	        }
788
	        }
798
	    }
789
	    }
799
	    
790
	    
800
	    $resultat->free();
791
	    $resultat->free();
801
	    
792
	    
802
    }
793
    }
803
    
794
    
804
    else {
795
    else {
805
    // Refuser si plus de traduction disponible !	
796
    // Refuser si plus de traduction disponible !	
806
    }
797
    }
807
    
798
    
808
    if (empty($aso_valeurs['gs_titre'])) {
799
    if (empty($aso_valeurs['gs_titre'])) {
809
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
800
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas &ecirc;tre vide.</p>';
810
    }
801
    }
811
    if (empty($aso_valeurs['gs_mots_cles'])) {
802
    if (empty($aso_valeurs['gs_mots_cles'])) {
812
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
803
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas &ecirc;tre vide.</p>';
813
    }
804
    }
814
    if (empty($aso_valeurs['gs_description'])) {
805
    if (empty($aso_valeurs['gs_description'])) {
815
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
806
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas &ecirc;tre vide.</p>';
816
    }
807
    }
817
    if (empty($aso_valeurs['gs_auteur'])) {
808
    if (empty($aso_valeurs['gs_auteur'])) {
818
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
809
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas &ecirc;tre vide.</p>';
819
    }
810
    }
820
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
811
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
821
        $message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
812
        $message .= '<p class="pap_erreur">'.'Vous avez d&eacute;sign&eacute; ce site comme &eacute;tant externe. Il est n&eacute;cessaire de saisir son URL!'.'</p>';
822
    }
813
    }
823
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
814
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
824
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
815
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
825
                    'Vous considérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
816
                    'Vous conscid&eacute;rez donc ce site comme &eacute;tant externe. Il est n&eacute;cessaire de cocher la case "oui"!'.'</p>';
826
    }
817
    }
827
    return $message;
818
    return $message;
828
}
819
}
829
 
820
 
830
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
821
/** Fonction ADMIN_enregistrerSite() - Ajoute un site à Papyrus.
831
*
822
*
832
* Cette fonction ajoute le site à Papyrus, c'est à dire :
823
* Cette fonction ajoute le site à Papyrus, c'est à dire :
833
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
824
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
834
* - 2. Insertion d'une ligne dans la table "gen_site".
825
* - 2. Insertion d'une ligne dans la table "gen_site".
835
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
826
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
836
*
827
*
837
* @param  string   l'objet pear de connexion à la base de données.
828
* @param  string   l'objet pear de connexion à la base de données.
838
* @param  string   le tableau contenant les valeurs du formulaire.
829
* @param  string   le tableau contenant les valeurs du formulaire.
839
* @param  int      identifiant de l'administrateur réalisant cette création.
830
* @param  int      identifiant de l'administrateur réalisant cette création.
840
* @return string retourne un message en cas de succès ou d'échec.
831
* @return string retourne un message en cas de succès ou d'échec.
841
*/
832
*/
842
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
833
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
843
{
834
{
844
    // Nous vérifions si nous avons à faire à un site externe.
835
    // Nous verifions si nous avons a faire a un site externe.
845
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
836
    $id_type_site = '102';// par defaut on considère que c'est un site "principal"
846
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
837
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
847
        $id_type_site = '103';// c'est un site "externe"
838
        $id_type_site = '103';// c'est un site "externe"
848
    }
839
    }
849
    
840
    
850
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
841
    // Ajout des repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
851
    // par l'utilisateur dans le fichier de config avancée.
842
    // par l'utilisateur dans le fichier de config avancee.
852
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
843
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
853
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
844
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
854
                            GEN_DOSSIER_STYLE,
845
                            GEN_DOSSIER_STYLE,
855
                            GEN_DOSSIER_SCRIPT,
846
                            GEN_DOSSIER_SCRIPT,
856
                            GEN_DOSSIER_SQUELETTE,
847
                            GEN_DOSSIER_SQUELETTE,
857
                            GEN_DOSSIER_DOC);
848
                            GEN_DOSSIER_DOC);
858
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
849
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
859
        foreach ($tab_rep_langue as $nom_rep_langue) {
850
        foreach ($tab_rep_langue as $nom_rep_langue) {
860
            foreach ($tab_rep_site as $nom_rep_site) {
851
            foreach ($tab_rep_site as $nom_rep_site) {
861
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
852
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
862
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
853
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
863
                $vieux_umask = umask(0);
854
                $vieux_umask = umask(0);
864
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
855
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
865
                umask($vieux_umask);
856
                umask($vieux_umask);
866
                if ($resultat == false) {
857
                if ($resultat == false) {
867
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
858
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire.<br />'.
868
                                'Répertoire : '. $chemin_repertoire .'<br />'.
859
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
869
                                'Ligne n° : '. __LINE__ .'<br />'.
860
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
870
                                'Fichier n° : '. __FILE__ .'<br /></p>';
861
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
871
                    return $message;
862
                    return $message;
872
                }
863
                }
873
            }
864
            }
874
        }
865
        }
875
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
866
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
876
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
867
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
877
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
868
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
878
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
869
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
879
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
870
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
880
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
871
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
881
                        'Fichier : '. $chemin_squelette_site .'<br />'.
872
                        'Fichier : '. $chemin_squelette_site .'<br />'.
882
                        'Ligne n° : '. __LINE__ .'<br />'.
873
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
883
                        'Fichier n° : '. __FILE__ .'<br /></p>';
874
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
884
            return $message;
875
            return $message;
885
        }
876
        }
886
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
877
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
887
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
878
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
888
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
879
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
889
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
880
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
890
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
881
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
891
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
882
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de style par d&eacute;faut.<br />'.
892
                        'Fichier : '. $chemin_style_site .'<br />'.
883
                        'Fichier : '. $chemin_style_site .'<br />'.
893
                        'Ligne n° : '. __LINE__ .'<br />'.
884
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
894
                        'Fichier n° : '. __FILE__ .'<br /></p>';
885
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
895
            return $message;
886
            return $message;
896
        }
887
        }
897
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
888
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
898
        // Création d'une connection ftp avec Net_FTP de PEAR
889
        // Creation d'une connection ftp avec Net_FTP de PEAR
899
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
890
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
900
        
891
        
901
        // création de l'objet pear ftp
892
        // creation de l'objet pear ftp
902
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
893
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
903
        // création de la connexion
894
        // creation de la connexion
904
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
895
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
905
        // identification
896
        // identification
906
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
897
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
907
        // Gestion des erreurs ftp
898
        // Gestion des erreurs ftp
908
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
899
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
909
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
900
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
910
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
901
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
911
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
902
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
912
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
903
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
913
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
904
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
914
                        'Ligne n° : '. __LINE__ .'<br />'.
905
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
915
                        'Fichier n° : '. __FILE__ .'<br /><p>';
906
                        'Fichier n&deg; : '. __FILE__ .'<br /><p>';
916
            return $message;
907
            return $message;
917
        }
908
        }
918
        $resultat = $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
909
        $resultat = $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
919
        
910
        
920
       if (PEAR::isError($resultat)) {
911
       if (PEAR::isError($resultat)) {
921
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
912
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
922
                        'Répertoire : '. PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'] .'<br />'.
913
                        'R&eacute;pertoire : '. PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'] .'<br />'.
923
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
914
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
924
                        'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
915
                        'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
925
                        'Ligne n° : '. __LINE__ .'<br />'.
916
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
926
                        'Fichier n° : '. __FILE__ .'<br /></p>';
917
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
927
            return $message;
918
            return $message;
928
        }
919
        }
929
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
920
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
930
        foreach ($tab_rep_langue as $nom_rep_langue) {
921
        foreach ($tab_rep_langue as $nom_rep_langue) {
931
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
922
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
932
            foreach ($tab_rep_site as $nom_rep_site) {
923
            foreach ($tab_rep_site as $nom_rep_site) {
933
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
924
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
934
                
925
                
935
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
926
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
936
                if (PEAR::isError($resultat)) {
927
                if (PEAR::isError($resultat)) {
937
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
928
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire par ftp.<br />'.
938
                                'Répertoire : '. $chemin_repertoire .'<br />'.
929
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
939
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
930
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
940
                                'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
931
                                'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
941
                                'Ligne n° : '. __LINE__ .'<br />'.
932
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
942
                                'Fichier n° : '. __FILE__ .'<br /></p>';
933
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
943
                    return $message;
934
                    return $message;
944
                }
935
                }
945
            }
936
            }
946
        }
937
        }
947
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
938
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
948
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
939
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
949
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
940
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
950
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
941
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
951
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
942
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
952
        if (PEAR::isError($resultat)) {
943
        if (PEAR::isError($resultat)) {
953
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
944
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
954
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
945
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
955
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
946
                        'Fichier copi&eacute; : '. $chemin_squelette_site .'<br />'.
956
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
947
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
957
                        'Ligne n° : '. __LINE__ .'<br />'.
948
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
958
                        'Fichier n° : '. __FILE__ .'<br /></p>';
949
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
959
                return $message;
950
                return $message;
960
        }
951
        }
961
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
952
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
962
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
953
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
963
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
954
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
964
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
955
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
965
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
956
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
966
        if (PEAR::isError($resultat)) {
957
        if (PEAR::isError($resultat)) {
967
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
958
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
968
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
959
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
969
                        'Fichier copié : '. $chemin_style_site .'<br />'.
960
                        'Fichier copi&eacute; : '. $chemin_style_site .'<br />'.
970
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
961
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
971
                        'Ligne n° : '. __LINE__ .'<br />'.
962
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
972
                        'Fichier n° : '. __FILE__ .'<br /></p>';
963
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
973
                return $message;
964
                return $message;
974
        }
965
        }
975
        
966
        
976
        $chemin_image_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
967
        $chemin_image_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
977
                                GEN_DOSSIER_IMAGE.GEN_SEP;
968
                                GEN_DOSSIER_IMAGE.GEN_SEP;
978
        $chemin_image_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
969
        $chemin_image_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
979
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_IMAGE.GEN_SEP;
970
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_IMAGE.GEN_SEP;
980
        $resultat = $objet_pear_ftp->putRecursive($chemin_image_defaut, $chemin_image_site, false, FTP_BINARY);
971
        $resultat = $objet_pear_ftp->putRecursive($chemin_image_defaut, $chemin_image_site, false, FTP_BINARY);
981
        if (PEAR::isError($resultat)) {
972
        if (PEAR::isError($resultat)) {
982
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
973
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
983
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
974
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
984
                        'Fichier copié : '. $chemin_style_site .'<br />'.
975
                        'Fichier copi&eacute; : '. $chemin_style_site .'<br />'.
985
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
976
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
986
                        'Ligne n° : '. __LINE__ .'<br />'.
977
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
987
                        'Fichier n° : '. __FILE__ .'<br /></p>';
978
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
988
                return $message;
979
                return $message;
989
        }
980
        }
990
 
981
 
991
        
982
        
992
        
983
        
993
        $objet_pear_ftp->disconnect();
984
        $objet_pear_ftp->disconnect();
994
    }
985
    }
995
    
986
    
996
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
987
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
997
    if ($id_site == false) {
988
    if ($id_site == false) {
998
        $message = '<p class="erreur"> ERREUR Papyrus admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
989
        $message = '<p class="erreur"> ERREUR papyrus admin : impossible de r&eacute;cup&eacute;rer un identifiant pour la table gen_site.<br />'.
999
                    'Ligne n° : '. __LINE__ .'<br />'.
990
                    'Ligne n&deg; : '. __LINE__ .'<br />'.
1000
                    'Fichier n° : '. __FILE__ .'<br /></p>';
991
                    'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1001
        return $message;
992
        return $message;
1002
    }
993
    }
1003
    
994
    
1004
    // Modification de la requete si nous avons à faire à un site externe.
995
    // Modification de la requete si nous avons a faire a un site externe.
1005
    $requete_complement = ', gs_url = NULL';
996
    $requete_complement = ', gs_url = NULL';
1006
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
997
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1007
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
998
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
1008
    }
999
    }
1009
    
1000
    
1010
    // Requete d'insertion des infos d'un site dans gen_site
1001
    // Requete d'insertion des infos d'un site dans gen_site
1011
    $requete =  'INSERT INTO gen_site '.
1002
    $requete =  'INSERT INTO gen_site '.
1012
                'SET gs_id_site = '.$id_site.', '.
1003
                'SET gs_id_site = '.$id_site.', '.
1013
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1004
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1014
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1005
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1015
                'gs_fichier_squelette = "defaut.html", '.
1006
                'gs_fichier_squelette = "defaut.html", '.
1016
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1007
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1017
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1008
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1018
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1009
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1019
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1010
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1020
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1011
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1021
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1012
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1022
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1013
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1023
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1014
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1024
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1015
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1025
                'gs_ce_admin = '.$id_admin.
1016
                'gs_ce_admin = '.$id_admin.
1026
                $requete_complement;
1017
                $requete_complement;
1027
    $resultat = $db->query($requete);
1018
    $resultat = $db->query($requete);
1028
    if (DB::isError($resultat)) {
1019
    if (DB::isError($resultat)) {
1029
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1020
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1030
    }
1021
    }
1031
    
1022
    
1032
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1023
    // Recherche du nouveau numero d'ordre de ce site "principal" ou "externe"
1033
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1024
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1034
                'FROM gen_site_relation '.
1025
                'FROM gen_site_relation '.
1035
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1026
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1036
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1027
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1037
    $resultat = $db->query($requete) ;
1028
    $resultat = $db->query($requete) ;
1038
    if (DB::isError($resultat)) {
1029
    if (DB::isError($resultat)) {
1039
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1030
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1040
    }
1031
    }
1041
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1032
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1042
    $nouvel_ordre = $ligne->max_ordre + 1;
1033
    $nouvel_ordre = $ligne->max_ordre + 1;
1043
    
1034
    
1044
    // Requete d'insertion des relations dans gen_site_relation
1035
    // Requete d'insertion des relations dans gen_site_relation
1045
    $requete =  'INSERT INTO gen_site_relation '.
1036
    $requete =  'INSERT INTO gen_site_relation '.
1046
                'SET gsr_id_site_01 = '.$id_site.', '.
1037
                'SET gsr_id_site_01 = '.$id_site.', '.
1047
                'gsr_id_site_02 = '.$id_site.', '.
1038
                'gsr_id_site_02 = '.$id_site.', '.
1048
                'gsr_id_valeur = '.$id_type_site.', '.
1039
                'gsr_id_valeur = '.$id_type_site.', '.
1049
                'gsr_ordre = '.$nouvel_ordre;
1040
                'gsr_ordre = '.$nouvel_ordre;
1050
    $resultat = $db->query($requete);
1041
    $resultat = $db->query($requete);
1051
    if (DB::isError($resultat)) {
1042
    if (DB::isError($resultat)) {
1052
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1043
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1053
    }
1044
    }
1054
    
1045
    
1055
    // Gestion du site par défaut
1046
    // Gestion du site par défaut
1056
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1047
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1057
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1048
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1058
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1049
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1059
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1050
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1060
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1051
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1061
        if (DB::isError($resultat_supr_defaut)) {
1052
        if (DB::isError($resultat_supr_defaut)) {
1062
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1053
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1063
        }
1054
        }
1064
        
1055
        
1065
        // Requete d'insertion de la relations site par défaut
1056
        // Requete d'insertion de la relations site par defaut
1066
        $requete =  'INSERT INTO gen_site_relation '.
1057
        $requete =  'INSERT INTO gen_site_relation '.
1067
                    'SET gsr_id_site_01 = '.$id_site.', '.
1058
                    'SET gsr_id_site_01 = '.$id_site.', '.
1068
                    'gsr_id_site_02 = '.$id_site.', '.
1059
                    'gsr_id_site_02 = '.$id_site.', '.
1069
                    'gsr_id_valeur = 101, '.
1060
                    'gsr_id_valeur = 101, '.
1070
                    'gsr_ordre = NULL ';
1061
                    'gsr_ordre = NULL ';
1071
        $resultat = $db->query($requete);
1062
        $resultat = $db->query($requete);
1072
        if (DB::isError($resultat)) {
1063
        if (DB::isError($resultat)) {
1073
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1064
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1074
        }
1065
        }
1075
    }
1066
    }
1076
    
1067
    
1077
    // Gestion des sites externes
1068
    // Gestion des sites externes
1078
    if ($id_type_site == '103') {
1069
    if ($id_type_site == '103') {
1079
        // Requete d'insertion des relations dans gen_site_relation
1070
        // Requete d'insertion des relations dans gen_site_relation
1080
        $requete =  'INSERT INTO gen_site_relation '.
1071
        $requete =  'INSERT INTO gen_site_relation '.
1081
                    'SET gsr_id_site_01 = '.$id_site.', '.
1072
                    'SET gsr_id_site_01 = '.$id_site.', '.
1082
                    'gsr_id_site_02 = '.$id_site.', '.
1073
                    'gsr_id_site_02 = '.$id_site.', '.
1083
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1074
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1084
                    'gsr_ordre = NULL ';
1075
                    'gsr_ordre = NULL ';
1085
        $resultat = $db->query($requete);
1076
        $resultat = $db->query($requete);
1086
        if (DB::isError($resultat)) {
1077
        if (DB::isError($resultat)) {
1087
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1078
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1088
        }
1079
        }
1089
    }
1080
    }
1090
    
1081
    
1091
    $message = '<p class="pap_info">'.'Succès de l\'ajout du site.'.'</p>';
1082
    $message = '<p class="pap_info">'.'Succès de l\'ajout du site.'.'</p>';
1092
    return $message;
1083
    return $message;
1093
}
1084
}
1094
 
1085
 
1095
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1086
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1096
*
1087
*
1097
* Cette fonction traduit un site à Papyrus, c'est à dire :
1088
* Cette fonction traduit un site a Papyrus, c'est a dire :
1098
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1089
* - 1. Creation des repertoire du projet en fonction du nom et des sous-repertoires.
1099
* - 2. Insertion d'une ligne dans la table "gen_site".
1090
* - 2. Insertion d'une ligne dans la table "gen_site".
1100
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1091
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liees si necessaire.
1101
*
1092
*
1102
* @param  string   l'objet pear de connexion à la base de données.
1093
* @param  string   l'objet pear de connexion a la base de données.
1103
* @param  string   le tableau contenant les valeurs du formulaire.
1094
* @param  string   le tableau contenant les valeurs du formulaire.
1104
* @param  int      identifiant de l'administrateur réalisant cette création.
1095
* @param  int      identifiant de l'administrateur realisant cette création.
1105
* @return string retourne un message en cas de succès ou d'échec.
1096
* @return string retourne un message en cas de succes ou d'echec.
1106
*/
1097
*/
1107
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1098
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1108
{
1099
{
1109
    // Nous vérifions si nous avons à faire à un site externe.
1100
    // Nous verifions si nous avons a faire a un site externe.
1110
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
1101
    $id_type_site = '102';// par defaut on considere que c'est un site "principal"
1111
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1102
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1112
        $id_type_site = '103';// c'est un site "externe"
1103
        $id_type_site = '103';// c'est un site "externe"
1113
    }
1104
    }
1114
    
1105
    
1115
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
1106
    // Ajout des repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
1116
    // par l'utilisateur dans le fichier de config avancée.
1107
    // par l'utilisateur dans le fichier de config avancee.
1117
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1108
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1118
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1109
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1119
                            GEN_DOSSIER_STYLE,
1110
                            GEN_DOSSIER_STYLE,
1120
                            GEN_DOSSIER_SCRIPT,
1111
                            GEN_DOSSIER_SCRIPT,
1121
                            GEN_DOSSIER_SQUELETTE,
1112
                            GEN_DOSSIER_SQUELETTE,
1122
                            GEN_DOSSIER_DOC);
1113
                            GEN_DOSSIER_DOC);
1123
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
1114
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
1124
        foreach ($tab_rep_langue as $nom_rep_langue) {
1115
        foreach ($tab_rep_langue as $nom_rep_langue) {
1125
            foreach ($tab_rep_site as $nom_rep_site) {
1116
            foreach ($tab_rep_site as $nom_rep_site) {
1126
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1117
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1127
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1118
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1128
                $vieux_umask = umask(0);
1119
                $vieux_umask = umask(0);
1129
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1120
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1130
                umask($vieux_umask);
1121
                umask($vieux_umask);
1131
                if ($resultat == false) {
1122
                if ($resultat == false) {
1132
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
1123
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire.<br />'.
1133
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1124
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
1134
                                'Ligne n° : '. __LINE__ .'<br />'.
1125
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
1135
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1126
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1136
                    return $message;
1127
                    return $message;
1137
                }
1128
                }
1138
            }
1129
            }
1139
        }
1130
        }
1140
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1131
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1141
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1132
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1142
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1133
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1143
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1134
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1144
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1135
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1145
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
1136
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
1146
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1137
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1147
                        'Ligne n° : '. __LINE__ .'<br />'.
1138
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
1148
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1139
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1149
            return $message;
1140
            return $message;
1150
        }
1141
        }
1151
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1142
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1152
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1143
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1153
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1144
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1154
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1145
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1155
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1146
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1156
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
1147
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de style par défaut.<br />'.
1157
                        'Fichier : '. $chemin_style_site .'<br />'.
1148
                        'Fichier : '. $chemin_style_site .'<br />'.
1158
                        'Ligne n° : '. __LINE__ .'<br />'.
1149
                        'Ligne n° : '. __LINE__ .'<br />'.
1159
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1150
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1160
            return $message;
1151
            return $message;
1161
        }
1152
        }
1162
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
1153
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
1163
        // Création d'une connection ftp avec Net_FTP de PEAR
1154
        // Création d'une connection ftp avec Net_FTP de PEAR
1164
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1155
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1165
        
1156
        
1166
        // création de l'objet pear ftp
1157
        // création de l'objet pear ftp
1167
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1158
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1168
        // création de la connexion
1159
        // création de la connexion
1169
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1160
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1170
        // identification
1161
        // identification
1171
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1162
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1172
        // Gestion des erreurs ftp
1163
        // Gestion des erreurs ftp
1173
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1164
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1174
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1165
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1175
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1166
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1176
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1167
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1177
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1168
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1178
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1169
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1179
                        'Ligne n° : '. __LINE__ .'<br />'.
1170
                        'Ligne n° : '. __LINE__ .'<br />'.
1180
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1171
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1181
            return $message;
1172
            return $message;
1182
        }
1173
        }
1183
        $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1174
        $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1184
        
1175
        
1185
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1176
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
1186
        foreach ($tab_rep_langue as $nom_rep_langue) {
1177
        foreach ($tab_rep_langue as $nom_rep_langue) {
1187
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
1178
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
1188
            foreach ($tab_rep_site as $nom_rep_site) {
1179
            foreach ($tab_rep_site as $nom_rep_site) {
1189
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
1180
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
1190
                
1181
                
1191
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
1182
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
1192
                if (PEAR::isError($resultat)) {
1183
                if (PEAR::isError($resultat)) {
1193
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
1184
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
1194
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1185
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1195
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
1186
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
1196
                                'Ligne n° : '. __LINE__ .'<br />'.
1187
                                'Ligne n° : '. __LINE__ .'<br />'.
1197
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1188
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1198
                    return $message;
1189
                    return $message;
1199
                }
1190
                }
1200
            }
1191
            }
1201
        }
1192
        }
1202
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1193
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1203
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1194
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1204
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1195
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1205
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1196
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1206
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
1197
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
1207
        if (PEAR::isError($resultat)) {
1198
        if (PEAR::isError($resultat)) {
1208
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
1199
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
1209
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
1200
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
1210
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
1201
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
1211
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1202
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1212
                        'Ligne n° : '. __LINE__ .'<br />'.
1203
                        'Ligne n° : '. __LINE__ .'<br />'.
1213
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1204
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1214
                return $message;
1205
                return $message;
1215
        }
1206
        }
1216
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1207
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1217
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1208
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1218
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1209
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1219
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1210
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1220
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
1211
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
1221
        if (PEAR::isError($resultat)) {
1212
        if (PEAR::isError($resultat)) {
1222
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
1213
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
1223
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
1214
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
1224
                        'Fichier copié : '. $chemin_style_site .'<br />'.
1215
                        'Fichier copié : '. $chemin_style_site .'<br />'.
1225
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1216
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
1226
                        'Ligne n° : '. __LINE__ .'<br />'.
1217
                        'Ligne n° : '. __LINE__ .'<br />'.
1227
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1218
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1228
                return $message;
1219
                return $message;
1229
        }
1220
        }
1230
        $objet_pear_ftp->disconnect();
1221
        $objet_pear_ftp->disconnect();
1231
    }
1222
    }
1232
    
1223
    
1233
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
1224
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
1234
    
1225
    
1235
    if ($id_site == false) {
1226
    if ($id_site == false) {
1236
        $message = '<p class="erreur"> ERREUR Papyrus admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
1227
        $message = '<p class="erreur"> ERREUR Papyrus admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
1237
                    'Ligne n° : '. __LINE__ .'<br />'.
1228
                    'Ligne n° : '. __LINE__ .'<br />'.
1238
                    'Fichier n° : '. __FILE__ .'<br /></p>';
1229
                    'Fichier n° : '. __FILE__ .'<br /></p>';
1239
        return $message;
1230
        return $message;
1240
    }
1231
    }
1241
    
1232
    
1242
    // Modification de la requete si nous avons à faire à un site externe.
1233
    // Modification de la requete si nous avons à faire à un site externe.
1243
    $requete_complement = ', gs_url = NULL';
1234
    $requete_complement = ', gs_url = NULL';
1244
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1235
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1245
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
1236
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
1246
    }
1237
    }
1247
    
1238
    
1248
    // Requete d'insertion des infos d'un site dans gen_site
1239
    // Requete d'insertion des infos d'un site dans gen_site
1249
    $requete =  'INSERT INTO gen_site '.
1240
    $requete =  'INSERT INTO gen_site '.
1250
                'SET gs_id_site = '.$id_site.', '.
1241
                'SET gs_id_site = '.$id_site.', '.
1251
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1242
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1252
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1243
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1253
                'gs_fichier_squelette = "defaut.html", '.
1244
                'gs_fichier_squelette = "defaut.html", '.
1254
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1245
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1255
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1246
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1256
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1247
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1257
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1248
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1258
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1249
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1259
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1250
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1260
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1251
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1261
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1252
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1262
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1253
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
1263
                'gs_ce_admin = '.$id_admin.
1254
                'gs_ce_admin = '.$id_admin.
1264
                $requete_complement;
1255
                $requete_complement;
1265
    $resultat = $db->query($requete);
1256
    $resultat = $db->query($requete);
1266
    if (DB::isError($resultat)) {
1257
    if (DB::isError($resultat)) {
1267
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1258
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1268
    }
1259
    }
1269
    
1260
    
1270
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1261
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1271
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1262
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1272
                'FROM gen_site_relation '.
1263
                'FROM gen_site_relation '.
1273
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1264
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1274
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1265
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1275
    $resultat = $db->query($requete) ;
1266
    $resultat = $db->query($requete) ;
1276
    if (DB::isError($resultat)) {
1267
    if (DB::isError($resultat)) {
1277
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1268
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1278
    }
1269
    }
1279
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1270
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1280
    $nouvel_ordre = $ligne->max_ordre + 1;
1271
    $nouvel_ordre = $ligne->max_ordre + 1;
1281
    
1272
    
1282
    // Requete d'insertion des relations dans gen_site_relation
1273
    // Requete d'insertion des relations dans gen_site_relation
1283
    
1274
    
1284
    $requete =  'INSERT INTO gen_site_relation '.
1275
    $requete =  'INSERT INTO gen_site_relation '.
1285
                'SET gsr_id_site_01 = '.$id_site.', '.
1276
                'SET gsr_id_site_01 = '.$id_site.', '.
1286
                'gsr_id_site_02 = '.$id_site.', '.
1277
                'gsr_id_site_02 = '.$id_site.', '.
1287
                'gsr_id_valeur = '.$id_type_site.', '.
1278
                'gsr_id_valeur = '.$id_type_site.', '.
1288
                'gsr_ordre = '.$nouvel_ordre;
1279
                'gsr_ordre = '.$nouvel_ordre;
1289
    $resultat = $db->query($requete);
1280
    $resultat = $db->query($requete);
1290
    if (DB::isError($resultat)) {
1281
    if (DB::isError($resultat)) {
1291
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1282
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1292
    }
1283
    }
1293
    
1284
    
1294
    // Traduction : Requete d'insertion des relations dans gen_site_relation
1285
    // Traduction : Requete d'insertion des relations dans gen_site_relation
1295
 
1286
 
1296
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1287
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1297
                'FROM gen_site_relation '.
1288
                'FROM gen_site_relation '.
1298
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1289
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1299
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1290
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1300
    $resultat = $db->query($requete) ;
1291
    $resultat = $db->query($requete) ;
1301
    if (DB::isError($resultat)) {
1292
    if (DB::isError($resultat)) {
1302
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1293
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1303
    }
1294
    }
1304
    if ( $resultat->numRows() == 0 ) {
1295
    if ( $resultat->numRows() == 0 ) {
1305
	      $nouvel_ordre = 1;
1296
	      $nouvel_ordre = 1;
1306
    }
1297
    }
1307
    else {
1298
    else {
1308
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1299
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1309
    	$nouvel_ordre = $ligne->max_ordre + 1;
1300
    	$nouvel_ordre = $ligne->max_ordre + 1;
1310
    }
1301
    }
1311
 
1302
 
1312
    // 1 : insertion information traduction pere (si inexistant)
1303
    // 1 : insertion information traduction pere (si inexistant)
1313
    
1304
    
1314
    $requete =  'SELECT * '.
1305
    $requete =  'SELECT * '.
1315
                'FROM gen_site_relation '.
1306
                'FROM gen_site_relation '.
1316
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1307
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
1317
                'AND gsr_id_site_01 = gsr_id_site_02 '.
1308
                'AND gsr_id_site_01 = gsr_id_site_02 '.
1318
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1309
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1319
                
1310
                
1320
    $resultat = $db->query($requete) ;
1311
    $resultat = $db->query($requete) ;
1321
    if (DB::isError($resultat)) {
1312
    if (DB::isError($resultat)) {
1322
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1313
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1323
    }
1314
    }
1324
    if ( $resultat->numRows() == 0 ) {
1315
    if ( $resultat->numRows() == 0 ) {
1325
    
1316
    
1326
		$requete =  'INSERT INTO gen_site_relation '.
1317
		$requete =  'INSERT INTO gen_site_relation '.
1327
		            'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1318
		            'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1328
		            'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1319
		            'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1329
		            'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1320
		            'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1330
		            'gsr_ordre = 1 ';
1321
		            'gsr_ordre = 1 ';
1331
		$resultat = $db->query($requete);
1322
		$resultat = $db->query($requete);
1332
		if (DB::isError($resultat)) {
1323
		if (DB::isError($resultat)) {
1333
		    die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1324
		    die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1334
		}
1325
		}
1335
		$nouvel_ordre = 2;
1326
		$nouvel_ordre = 2;
1336
    }    
1327
    }    
1337
 
1328
 
1338
 
1329
 
1339
    // 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
1330
    // 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
1340
    // dans les mises à jour
1331
    // dans les mises à jour
1341
    
1332
    
1342
    $requete =  'INSERT INTO gen_site_relation '.
1333
    $requete =  'INSERT INTO gen_site_relation '.
1343
                'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1334
                'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
1344
                'gsr_id_site_02 = '.$id_site.', '.
1335
                'gsr_id_site_02 = '.$id_site.', '.
1345
                'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1336
                'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
1346
                'gsr_ordre = '.$nouvel_ordre;
1337
                'gsr_ordre = '.$nouvel_ordre;
1347
    $resultat = $db->query($requete);
1338
    $resultat = $db->query($requete);
1348
    if (DB::isError($resultat)) {
1339
    if (DB::isError($resultat)) {
1349
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1340
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1350
    }
1341
    }
1351
        
1342
        
1352
  
1343
  
1353
    // Gestion du site par défaut
1344
    // Gestion du site par défaut
1354
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1345
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1355
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1346
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1356
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1347
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1357
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1348
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1358
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1349
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1359
        if (DB::isError($resultat_supr_defaut)) {
1350
        if (DB::isError($resultat_supr_defaut)) {
1360
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1351
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1361
        }
1352
        }
1362
        
1353
        
1363
        // Requete d'insertion de la relations site par défaut
1354
        // Requete d'insertion de la relations site par défaut
1364
        $requete =  'INSERT INTO gen_site_relation '.
1355
        $requete =  'INSERT INTO gen_site_relation '.
1365
                    'SET gsr_id_site_01 = '.$id_site.', '.
1356
                    'SET gsr_id_site_01 = '.$id_site.', '.
1366
                    'gsr_id_site_02 = '.$id_site.', '.
1357
                    'gsr_id_site_02 = '.$id_site.', '.
1367
                    'gsr_id_valeur = 101, '.
1358
                    'gsr_id_valeur = 101, '.
1368
                    'gsr_ordre = NULL ';
1359
                    'gsr_ordre = NULL ';
1369
        $resultat = $db->query($requete);
1360
        $resultat = $db->query($requete);
1370
        if (DB::isError($resultat)) {
1361
        if (DB::isError($resultat)) {
1371
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1362
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1372
        }
1363
        }
1373
    }
1364
    }
1374
    
1365
    
1375
    // Gestion des sites externes
1366
    // Gestion des sites externes
1376
    if ($id_type_site == '103') {
1367
    if ($id_type_site == '103') {
1377
        // Requete d'insertion des relations dans gen_site_relation
1368
        // Requete d'insertion des relations dans gen_site_relation
1378
        $requete =  'INSERT INTO gen_site_relation '.
1369
        $requete =  'INSERT INTO gen_site_relation '.
1379
                    'SET gsr_id_site_01 = '.$id_site.', '.
1370
                    'SET gsr_id_site_01 = '.$id_site.', '.
1380
                    'gsr_id_site_02 = '.$id_site.', '.
1371
                    'gsr_id_site_02 = '.$id_site.', '.
1381
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1372
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1382
                    'gsr_ordre = NULL ';
1373
                    'gsr_ordre = NULL ';
1383
        $resultat = $db->query($requete);
1374
        $resultat = $db->query($requete);
1384
        if (DB::isError($resultat)) {
1375
        if (DB::isError($resultat)) {
1385
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1376
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1386
        }
1377
        }
1387
    }
1378
    }
1388
    
1379
    
1389
    $message = '<p class="pap_info">'.'Succès de l\'ajout du site.'.'</p>';
1380
    $message = '<p class="pap_info">'.'Succès de l\'ajout du site.'.'</p>';
1390
    return $message;
1381
    return $message;
1391
}
1382
}
1392
 
1383
 
1393
 
1384
 
1394
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
1385
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
1395
*
1386
*
1396
* Cette fonction modifie un site géré par Papyrus.
1387
* Cette fonction modifie un site géré par Papyrus.
1397
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
1388
* Il faudrait aussi pouvoir renomer le dossier du site si le code alpha change.
1398
*
1389
*
1399
* @param  string   l'objet pear de connexion à la base de données.
1390
* @param  string   l'objet pear de connexion à la base de données.
1400
* @param  string   le tableau contenant les valeurs du formulaire.
1391
* @param  string   le tableau contenant les valeurs du formulaire.
1401
* @param  int      identifiant de l'administrateur réalisant cette modification.
1392
* @param  int      identifiant de l'administrateur réalisant cette modification.
1402
* @return string retourne un message en cas de succès ou d'échec.
1393
* @return string retourne un message en cas de succès ou d'échec.
1403
*/
1394
*/
1404
function ADMIN_modifierSite(&$db, $aso_valeurs, $id_admin)
1395
function ADMIN_modifierSite(&$db, $aso_valeurs, $id_admin)
1405
{
1396
{
1406
    // Initialisation de variables
1397
    // Initialisation de variables
1407
    $message_complement = '';
1398
    $message_complement = '';
1408
    
1399
    
1409
    // Récupération de l'ancien code alphanumérique
1400
    // Récupération de l'ancien code alphanumérique
1410
    $requete =  'SELECT gs_code_alpha '.
1401
    $requete =  'SELECT gs_code_alpha '.
1411
                'FROM gen_site '.
1402
                'FROM gen_site '.
1412
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1403
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1413
    $ancien_code_alphnum = $db->getOne($requete);
1404
    $ancien_code_alphnum = $db->getOne($requete);
1414
    if (DB::isError($ancien_code_alphnum)) {
1405
    if (DB::isError($ancien_code_alphnum)) {
1415
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
1406
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) );
1416
    }
1407
    }
1417
    
1408
    
1418
    // Nous vérifions si nous avons à faire à un site externe.
1409
    // Nous vérifions si nous avons à faire à un site externe.
1419
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
1410
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
1420
    $requete_complement = ', gs_url = NULL ';
1411
    $requete_complement = ', gs_url = NULL ';
1421
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1412
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1422
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
1413
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'" ';
1423
        $id_type_site = '103';// c'est un site "externe"
1414
        $id_type_site = '103';// c'est un site "externe"
1424
    }
1415
    }
1425
    
1416
    
1426
    // Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
1417
    // Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe.
1427
    if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site != 103) {
1418
    if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site != 103) {
1428
        if (!GEN_FTP_UTILISE) {
1419
        if (!GEN_FTP_UTILISE) {
1429
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1420
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1430
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1421
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1431
            if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
1422
            if (!rename($chemin_site_ancien, $chemin_site_nouveau)) {
1432
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
1423
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'.
1433
                            'Ancien nom : '. $chemin_site_ancien .'<br />'.
1424
                            'Ancien nom : '. $chemin_site_ancien .'<br />'.
1434
                            'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
1425
                            'Nouveau nom : '. $chemin_site_nouveau .'<br />'.
1435
                            'Ligne n° : '. __LINE__ .'<br />'.
1426
                            'Ligne n° : '. __LINE__ .'<br />'.
1436
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1427
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1437
                return $message;
1428
                return $message;
1438
            }
1429
            }
1439
        } else {
1430
        } else {
1440
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1431
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1441
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1432
            $chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP;
1442
            // Création d'une connection ftp avec Net_FTP de PEAR
1433
            // Création d'une connection ftp avec Net_FTP de PEAR
1443
            // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1434
            // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1444
            // création de l'objet pear ftp
1435
            // création de l'objet pear ftp
1445
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1436
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1446
            // création de la connexion
1437
            // création de la connexion
1447
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1438
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1448
            // identification
1439
            // identification
1449
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1440
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1450
            // Gestion des erreurs ftp
1441
            // Gestion des erreurs ftp
1451
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1442
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1452
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1443
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1453
                            'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1444
                            'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1454
                            'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1445
                            'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1455
                            'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1446
                            'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1456
                            'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1447
                            'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1457
                            'Ligne n° : '. __LINE__ .'<br />'.
1448
                            'Ligne n° : '. __LINE__ .'<br />'.
1458
                            'Fichier n° : '. __FILE__ .'<br /><p>';
1449
                            'Fichier n° : '. __FILE__ .'<br /><p>';
1459
                return $message;
1450
                return $message;
1460
            }
1451
            }
1461
            $resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
1452
            $resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY);
1462
            if (PEAR::isError($resultat)) {
1453
            if (PEAR::isError($resultat)) {
1463
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
1454
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'.
1464
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1455
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1465
                            'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
1456
                            'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'.
1466
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1457
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1467
                            'Ligne n° : '. __LINE__ .'<br />'.
1458
                            'Ligne n° : '. __LINE__ .'<br />'.
1468
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1459
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1469
                    return $message;
1460
                    return $message;
1470
            }
1461
            }
1471
            // On utilise la racine FTP pour rm
1462
            // On utilise la racine FTP pour rm
1472
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1463
            $chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP;
1473
            // Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
1464
            // Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP
1474
            error_reporting(E_PARSE);
1465
            error_reporting(E_PARSE);
1475
            $resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
1466
            $resultat = $objet_pear_ftp->rm($chemin_site_ancien, true);
1476
            if (PEAR::isError($resultat)) {
1467
            if (PEAR::isError($resultat)) {
1477
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
1468
                $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'.
1478
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1469
                            'Dossier site ancien : '. $chemin_site_ancien .'<br />'.
1479
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1470
                            'Erreur origine : '. $resultat->getMessage() .'<br />'.
1480
                            'Ligne n° : '. __LINE__ .'<br />'.
1471
                            'Ligne n° : '. __LINE__ .'<br />'.
1481
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1472
                            'Fichier n° : '. __FILE__ .'<br /></p>';
1482
                    return $message;
1473
                    return $message;
1483
            }
1474
            }
1484
            // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1475
            // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1485
            error_reporting(GEN_DEBOGAGE_NIVEAU);
1476
            error_reporting(GEN_DEBOGAGE_NIVEAU);
1486
            $objet_pear_ftp->disconnect();
1477
            $objet_pear_ftp->disconnect();
1487
        }
1478
        }
1488
    }
1479
    }
1489
    
1480
    
1490
    // Requete de mise à jour des infos d'un site dans gen_site
1481
    // Requete de mise à jour des infos d'un site dans gen_site
1491
    $requete =  'UPDATE gen_site '.
1482
    $requete =  'UPDATE gen_site '.
1492
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1483
                'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
1493
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1484
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
1494
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
1485
                'gs_fichier_squelette = "'.$aso_valeurs['gs_fichier_squelette'].'", '.
1495
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1486
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
1496
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1487
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
1497
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1488
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
1498
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1489
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
1499
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1490
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
1500
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1491
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
1501
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1492
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
1502
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1493
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
1503
                'gs_date_creation = "'.$aso_valeurs['gs_date_creation'].'", '.
1494
                'gs_date_creation = "'.$aso_valeurs['gs_date_creation'].'", '.
1504
                'gs_ce_admin = '.$id_admin.' '.
1495
                'gs_ce_admin = '.$id_admin.' '.
1505
                $requete_complement.
1496
                $requete_complement.
1506
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1497
                'WHERE gs_id_site = '.$aso_valeurs['gs_id_site'];
1507
    $resultat = $db->query($requete) ;
1498
    $resultat = $db->query($requete) ;
1508
    if (DB::isError($resultat)) {
1499
    if (DB::isError($resultat)) {
1509
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1500
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1510
    }
1501
    }
1511
    // Gestion du site externe
1502
    // Gestion du site externe
1512
    if ($id_type_site == 103) {
1503
    if ($id_type_site == 103) {
1513
        // Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
1504
        // Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe"
1514
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1505
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1515
                    'FROM gen_site_relation '.
1506
                    'FROM gen_site_relation '.
1516
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1507
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1517
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1508
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1518
                    'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1509
                    'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1519
        $nbre_relation = $db->getOne($requete);
1510
        $nbre_relation = $db->getOne($requete);
1520
        if (DB::isError($nbre_relation)) {
1511
        if (DB::isError($nbre_relation)) {
1521
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1512
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1522
        }
1513
        }
1523
        
1514
        
1524
        // Nous supprimons l'ancienne relation si nécessaire
1515
        // Nous supprimons l'ancienne relation si nécessaire
1525
        if ($nbre_relation >= 1) {
1516
        if ($nbre_relation >= 1) {
1526
            $requete_supr_ext = 'DELETE FROM gen_site_relation '.
1517
            $requete_supr_ext = 'DELETE FROM gen_site_relation '.
1527
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1518
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1528
                                'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1519
                                'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1529
                                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1520
                                'AND gsr_id_valeur = 102 ';// 102 = site "principal"
1530
            $resultat_supr_ext = $db->query($requete_supr_ext);
1521
            $resultat_supr_ext = $db->query($requete_supr_ext);
1531
            if (DB::isError($resultat_supr_ext)) {
1522
            if (DB::isError($resultat_supr_ext)) {
1532
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
1523
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext));
1533
            }
1524
            }
1534
            $message_complement =   'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
1525
            $message_complement =   'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '.
1535
                                    'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
1526
                                    'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '.
1536
                                    'le serveur!';
1527
                                    'le serveur!';
1537
        }
1528
        }
1538
        
1529
        
1539
        // Vérification pour voir si le site est déjà "externe"
1530
        // Vérification pour voir si le site est déjà "externe"
1540
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1531
        $requete =  'SELECT COUNT(gsr_id_site_01) AS nbre_relation '.
1541
                    'FROM gen_site_relation '.
1532
                    'FROM gen_site_relation '.
1542
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1533
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1543
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1534
                    'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '.
1544
                    'AND gsr_id_valeur = 103 ';// 103 = site "externe"
1535
                    'AND gsr_id_valeur = 103 ';// 103 = site "externe"
1545
        $nbre_relation = $db->getOne($requete);
1536
        $nbre_relation = $db->getOne($requete);
1546
        if (DB::isError($nbre_relation)) {
1537
        if (DB::isError($nbre_relation)) {
1547
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1538
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) );
1548
        }
1539
        }
1549
        if ($nbre_relation == 0) {
1540
        if ($nbre_relation == 0) {
1550
            // Requete d'insertion de la relations site "externe"
1541
            // Requete d'insertion de la relations site "externe"
1551
            $requete =  'INSERT INTO gen_site_relation '.
1542
            $requete =  'INSERT INTO gen_site_relation '.
1552
                        'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1543
                        'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1553
                        'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1544
                        'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1554
                        'gsr_id_valeur = '.$id_type_site.', '.
1545
                        'gsr_id_valeur = '.$id_type_site.', '.
1555
                        'gsr_ordre = NULL ';
1546
                        'gsr_ordre = NULL ';
1556
            $resultat = $db->query($requete);
1547
            $resultat = $db->query($requete);
1557
            if (DB::isError($resultat)) {
1548
            if (DB::isError($resultat)) {
1558
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1549
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1559
            }
1550
            }
1560
        }
1551
        }
1561
        
1552
        
1562
        // Ajout du type de site externe
1553
        // Ajout du type de site externe
1563
        $requete =  'INSERT INTO gen_site_relation '.
1554
        $requete =  'INSERT INTO gen_site_relation '.
1564
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1555
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1565
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1556
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1566
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1557
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
1567
                    'gsr_ordre = NULL ';
1558
                    'gsr_ordre = NULL ';
1568
        $resultat = $db->query($requete);
1559
        $resultat = $db->query($requete);
1569
        if (DB::isError($resultat)) {
1560
        if (DB::isError($resultat)) {
1570
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1561
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1571
        }
1562
        }
1572
        
1563
        
1573
    }
1564
    }
1574
    
1565
    
1575
    // Gestion du site par défaut
1566
    // Gestion du site par défaut
1576
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1567
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
1577
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1568
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
1578
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1569
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1579
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1570
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
1580
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1571
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1581
        if (DB::isError($resultat_supr_defaut)) {
1572
        if (DB::isError($resultat_supr_defaut)) {
1582
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1573
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1583
        }
1574
        }
1584
        
1575
        
1585
        // Requete d'insertion de la relations site par défaut
1576
        // Requete d'insertion de la relations site par défaut
1586
        $requete =  'INSERT INTO gen_site_relation '.
1577
        $requete =  'INSERT INTO gen_site_relation '.
1587
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1578
                    'SET gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].', '.
1588
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1579
                    'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
1589
                    'gsr_id_valeur = 101, '.
1580
                    'gsr_id_valeur = 101, '.
1590
                    'gsr_ordre = NULL ';
1581
                    'gsr_ordre = NULL ';
1591
        $resultat = $db->query($requete);
1582
        $resultat = $db->query($requete);
1592
        if (DB::isError($resultat)) {
1583
        if (DB::isError($resultat)) {
1593
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1584
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1594
        }
1585
        }
1595
    }
1586
    }
1596
    
1587
    
1597
    $message = '<p class="pap_info">'.'Succès de la modification du site.'.'</p>';
1588
    $message = '<p class="pap_info">'.'Succès de la modification du site.'.'</p>';
1598
    $message .= '<p class="pap_info">'.$message_complement.'</p>';
1589
    $message .= '<p class="pap_info">'.$message_complement.'</p>';
1599
    return $message;
1590
    return $message;
1600
}
1591
}
1601
 
1592
 
1602
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
1593
/** Fonction ADMIN_supprimerSite() - Ajoute un site à Papyrus.
1603
*
1594
*
1604
* Cette fonction ajoute le site à Papyrus, c'est à dire :
1595
* Cette fonction ajoute le site à Papyrus, c'est à dire :
1605
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1596
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1606
* - 2. Insertion d'une ligne dans la table "gen_site".
1597
* - 2. Insertion d'une ligne dans la table "gen_site".
1607
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1598
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1608
*
1599
*
1609
* @param  string   l'objet pear de connexion à la base de données.
1600
* @param  string   l'objet pear de connexion à la base de données.
1610
* @param  string   le tableau contenant les valeurs du formulaire.
1601
* @param  string   le tableau contenant les valeurs du formulaire.
1611
* @param  int      identifiant de l'administrateur réalisant cette création.
1602
* @param  int      identifiant de l'administrateur réalisant cette création.
1612
* @return string retourne un message en cas de succès ou d'échec.
1603
* @return string retourne un message en cas de succès ou d'échec.
1613
*/
1604
*/
1614
function ADMIN_supprimerSite(&$db, $aso_valeurs)
1605
function ADMIN_supprimerSite(&$db, $aso_valeurs)
1615
{
1606
{
1616
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
1607
    // Recherche du coda alpha du site principal afin de pouvoir détruire ses répertoires
1617
    $requete =  'SELECT gs_code_alpha '.
1608
    $requete =  'SELECT gs_code_alpha '.
1618
                'FROM gen_site '.
1609
                'FROM gen_site '.
1619
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
1610
                'WHERE gs_id_site = '.$aso_valeurs['form_sites_id_site'];
1620
    $code_alpha_site_principal = $db->getOne($requete);
1611
    $code_alpha_site_principal = $db->getOne($requete);
1621
    if (DB::isError($code_alpha_site_principal)) {
1612
    if (DB::isError($code_alpha_site_principal)) {
1622
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
1613
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete));
1623
    }
1614
    }
1624
    
1615
    
1625
    // Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
1616
    // Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin).
1626
    if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
1617
    if ($code_alpha_site_principal == GEN_SITE_DEFAUT) {
1627
        $message =  '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
1618
        $message =  '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '.
1628
                    'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
1619
                    'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '.
1629
                    'ensuite le supprimer via cette interface.</p>';
1620
                    'ensuite le supprimer via cette interface.</p>';
1630
        return $message;
1621
        return $message;
1631
    }
1622
    }
1632
    
1623
    
1633
    // Recherche des différents sites liés à celui que l'on veut détruire
1624
    // Recherche des différents sites liés à celui que l'on veut détruire
1634
    // Cela comprend le site à détruire lui même car il possède la relations
1625
    // Cela comprend le site à détruire lui même car il possède la relations
1635
    // sur lui meme "site principale".
1626
    // sur lui meme "site principale".
1636
    $requete =  'SELECT gs_id_site '.
1627
    $requete =  'SELECT gs_id_site '.
1637
                'FROM gen_site, gen_site_relation '.
1628
                'FROM gen_site, gen_site_relation '.
1638
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
1629
                'WHERE gsr_id_site_01 = '.$aso_valeurs['form_sites_id_site'].' '.
1639
                'AND gsr_id_site_02 = gs_id_site ';
1630
                'AND gsr_id_site_02 = gs_id_site ';
1640
    $resultat = $db->query($requete);
1631
    $resultat = $db->query($requete);
1641
    if (DB::isError($resultat)) {
1632
    if (DB::isError($resultat)) {
1642
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1633
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
1643
    }
1634
    }
1644
    
1635
    
1645
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1636
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1646
        // Requete de suppression des sites liés dans gen_site
1637
        // Requete de suppression des sites liés dans gen_site
1647
        $requete_supr_site =    'DELETE FROM gen_site '.
1638
        $requete_supr_site =    'DELETE FROM gen_site '.
1648
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
1639
                                'WHERE gs_id_site = '.$ligne->gs_id_site;
1649
        $resultat_supr_site = $db->query($requete_supr_site);
1640
        $resultat_supr_site = $db->query($requete_supr_site);
1650
        if (DB::isError($resultat_supr_site)) {
1641
        if (DB::isError($resultat_supr_site)) {
1651
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
1642
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site->getMessage(), $requete_supr_site));
1652
        }
1643
        }
1653
        
1644
        
1654
        // Requete de suppression des relations des sites à détruire
1645
        // Requete de suppression des relations des sites à détruire
1655
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
1646
        $requete_supr_site_relation =   'DELETE FROM gen_site_relation '.
1656
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
1647
                                        'WHERE gsr_id_site_01 = '.$ligne->gs_id_site;
1657
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
1648
        $resultat_supr_site_relation = $db->query($requete_supr_site_relation);
1658
        if (DB::isError($resultat_supr_site_relation)) {
1649
        if (DB::isError($resultat_supr_site_relation)) {
1659
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
1650
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_site_relation->getMessage(), $requete_supr_site_relation));
1660
        }
1651
        }
1661
        
1652
        
1662
        // Recherche des différents menus liés au site à détruire
1653
        // Recherche des différents menus liés au site à détruire
1663
        $requete_menu = 'SELECT gm_id_menu '.
1654
        $requete_menu = 'SELECT gm_id_menu '.
1664
                        'FROM gen_menu '.
1655
                        'FROM gen_menu '.
1665
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
1656
                        'WHERE gm_ce_site = '.$ligne->gs_id_site;
1666
        $resultat_menu = $db->query($requete_menu) ;
1657
        $resultat_menu = $db->query($requete_menu) ;
1667
        if (DB::isError($resultat_menu)) {
1658
        if (DB::isError($resultat_menu)) {
1668
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
1659
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete_menu));
1669
        }
1660
        }
1670
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
1661
        while ($ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
1671
            // Requete de suppression des des menus
1662
            // Requete de suppression des des menus
1672
            $requete_supr_menu =   'DELETE FROM gen_menu '.
1663
            $requete_supr_menu =   'DELETE FROM gen_menu '.
1673
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
1664
                                            'WHERE gm_id_menu = '.$ligne_menu->gm_id_menu;
1674
            $resultat_supr_menu = $db->query($requete_supr_menu);
1665
            $resultat_supr_menu = $db->query($requete_supr_menu);
1675
            if (DB::isError($resultat_supr_menu)) {
1666
            if (DB::isError($resultat_supr_menu)) {
1676
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
1667
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu->getMessage(), $requete_supr_menu));
1677
            }
1668
            }
1678
            // Requete de suppression des relations des menus
1669
            // Requete de suppression des relations des menus
1679
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
1670
            $requete_supr_menu_relation =   'DELETE FROM gen_menu_relation '.
1680
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
1671
                                            'WHERE gmr_id_menu_01 = '.$ligne_menu->gm_id_menu;
1681
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
1672
            $resultat_supr_menu_relation = $db->query($requete_supr_menu_relation);
1682
            if (DB::isError($resultat_supr_menu_relation)) {
1673
            if (DB::isError($resultat_supr_menu_relation)) {
1683
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
1674
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_relation->getMessage(), $requete_supr_menu_relation));
1684
            }
1675
            }
1685
            
1676
            
1686
            // Requete de suppression des contenus des menus
1677
            // Requete de suppression des contenus des menus
1687
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
1678
            $requete_supr_menu_contenu =   'DELETE FROM gen_menu_contenu '.
1688
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
1679
                                            'WHERE gmc_ce_menu = '.$ligne_menu->gm_id_menu;
1689
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
1680
            $resultat_supr_menu_contenu = $db->query($requete_supr_menu_contenu);
1690
            if (DB::isError($resultat_supr_menu_contenu)) {
1681
            if (DB::isError($resultat_supr_menu_contenu)) {
1691
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
1682
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_contenu->getMessage(), $requete_supr_menu_contenu));
1692
            }
1683
            }
1693
            
1684
            
1694
            // Requete de suppression des ulr alternatives des menus
1685
            // Requete de suppression des ulr alternatives des menus
1695
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
1686
            $requete_supr_menu_url_alt =   'DELETE FROM gen_menu_url_alternative '.
1696
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
1687
                                            'WHERE gmua_ce_menu = '.$ligne_menu->gm_id_menu;
1697
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
1688
            $resultat_supr_menu_url_alt = $db->query($requete_supr_menu_url_alt);
1698
            if (DB::isError($resultat_supr_menu_url_alt)) {
1689
            if (DB::isError($resultat_supr_menu_url_alt)) {
1699
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
1690
                die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_menu_url_alt->getMessage(), $requete_supr_menu_url_alt));
1700
            }
1691
            }
1701
        }
1692
        }
1702
        $resultat_menu->free();
1693
        $resultat_menu->free();
1703
    }
1694
    }
1704
    $resultat->free();
1695
    $resultat->free();
1705
    
1696
    
1706
    // Suppression des répertoires du site
1697
    // Suppression des répertoires du site
1707
    if (!GEN_FTP_UTILISE) {
1698
    if (!GEN_FTP_UTILISE) {
1708
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
1699
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal;
1709
        $resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
1700
        $resultat = supprimerDossier($chemin_repertoire, GEN_SEP);
1710
        if (!$resultat) {
1701
        if (!$resultat) {
1711
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
1702
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire.<br />'.
1712
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1703
                        'Répertoire : '. $chemin_repertoire .'<br />'.
1713
                        'Ligne n° : '. __LINE__ .'<br />'.
1704
                        'Ligne n° : '. __LINE__ .'<br />'.
1714
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1705
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1715
            return $message;
1706
            return $message;
1716
        }
1707
        }
1717
    } else {
1708
    } else {
1718
        // Création d'une connection ftp avec Net_FTP de PEAR
1709
        // Création d'une connection ftp avec Net_FTP de PEAR
1719
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1710
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
1720
        
1711
        
1721
        // création de l'objet pear ftp
1712
        // création de l'objet pear ftp
1722
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1713
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1723
        // création de la connexion
1714
        // création de la connexion
1724
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1715
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
1725
        // identification
1716
        // identification
1726
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1717
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
1727
        // Gestion des erreurs ftp
1718
        // Gestion des erreurs ftp
1728
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1719
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
1729
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1720
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
1730
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1721
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
1731
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1722
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
1732
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1723
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
1733
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1724
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
1734
                        'Ligne n° : '. __LINE__ .'<br />'.
1725
                        'Ligne n° : '. __LINE__ .'<br />'.
1735
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1726
                        'Fichier n° : '. __FILE__ .'<br /><p>';
1736
            return $message;
1727
            return $message;
1737
        }
1728
        }
1738
        // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
1729
        // Changement du niveau d'erreur pour éviter les Notices PHP dues à  Net_FTP
1739
        error_reporting(E_PARSE);
1730
        error_reporting(E_PARSE);
1740
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
1731
        $chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal.'/';
1741
        
1732
        
1742
        if ($code_alpha_site_principal!='') {
1733
        if ($code_alpha_site_principal!='') {
1743
	        $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
1734
	        $resultat = $objet_pear_ftp->rm($chemin_repertoire, true);
1744
	        if (PEAR::isError($resultat)) {
1735
	        if (PEAR::isError($resultat)) {
1745
	            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
1736
	            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer le répertoire par ftp.<br />'.
1746
	                        'Erreur ftp : '.$resultat->getMessage().'<br />'.
1737
	                        'Erreur ftp : '.$resultat->getMessage().'<br />'.
1747
	                        'Répertoire : '. $chemin_repertoire .'<br />'.
1738
	                        'Répertoire : '. $chemin_repertoire .'<br />'.
1748
	                        'Ligne n° : '. __LINE__ .'<br />'.
1739
	                        'Ligne n° : '. __LINE__ .'<br />'.
1749
	                        'Fichier n° : '. __FILE__ .'<br /></p>';
1740
	                        'Fichier n° : '. __FILE__ .'<br /></p>';
1750
	            return $message;
1741
	            return $message;
1751
	        }
1742
	        }
1752
        }
1743
        }
1753
        $objet_pear_ftp->disconnect();
1744
        $objet_pear_ftp->disconnect();
1754
        // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1745
        // Retour au niveau d'erreur définit dans le fichier de config de Papyrus
1755
        error_reporting(GEN_DEBOGAGE_NIVEAU);
1746
        error_reporting(GEN_DEBOGAGE_NIVEAU);
1756
    }
1747
    }
1757
    $message = '<p class="pap_info">Succès de la suppression du site.</p>';
1748
    $message = '<p class="pap_info">Succès de la suppression du site.</p>';
1758
    return $message;
1749
    return $message;
1759
}
1750
}
1760
 
1751
 
1761
 
1752
 
1762
function ADMIN_verifier_traduction_possible(&$db, $aso_valeurs) {
1753
function ADMIN_verifier_traduction_possible(&$db, $aso_valeurs) {
1763
	
1754
	
1764
		
1755
		
1765
	// 	Traduction d'un site principal uniquement :
1756
	// 	Traduction d'un site principal uniquement :
1766
    
1757
    
1767
    $requete =  'SELECT gsr_id_site_01, gs_ce_i18n '.
1758
    $requete =  'SELECT gsr_id_site_01, gs_ce_i18n '.
1768
                'FROM gen_site_relation, gen_site '.
1759
                'FROM gen_site_relation, gen_site '.
1769
                'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
1760
                'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
1770
                'AND gs_id_site = gsr_id_site_01  '.
1761
                'AND gs_id_site = gsr_id_site_01  '.
1771
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1762
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1772
    
1763
    
1773
    $resultat = $db->query($requete);
1764
    $resultat = $db->query($requete);
1774
    
1765
    
1775
    if (DB::isError($resultat)) {
1766
    if (DB::isError($resultat)) {
1776
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1767
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1777
    }
1768
    }
1778
 
1769
 
1779
    if ( $resultat->numRows() == 0 ) {
1770
    if ( $resultat->numRows() == 0 ) {
1780
    	$site_id = $aso_valeurs['form_sites_id_site'];
1771
    	$site_id = $aso_valeurs['form_sites_id_site'];
1781
    }
1772
    }
1782
    else {
1773
    else {
1783
    	$ligne_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1774
    	$ligne_site = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1784
        $site_id = $ligne_site->gsr_id_site_01;
1775
        $site_id = $ligne_site->gsr_id_site_01;
1785
    }
1776
    }
1786
    
1777
    
1787
		
1778
		
1788
	 $requete =  'SELECT distinct gs_ce_i18n '.
1779
	 $requete =  'SELECT distinct gs_ce_i18n '.
1789
    'FROM gen_site_relation, gen_site '.
1780
    'FROM gen_site_relation, gen_site '.
1790
    'WHERE gsr_id_site_01 = ' . $site_id .' '.
1781
    'WHERE gsr_id_site_01 = ' . $site_id .' '.
1791
    'AND gs_id_site = gsr_id_site_02  '.
1782
    'AND gs_id_site = gsr_id_site_02  '.
1792
    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1783
    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
1793
    
1784
    
1794
    $resultat = $db->query($requete) ;
1785
    $resultat = $db->query($requete) ;
1795
    if (DB::isError($resultat)) {
1786
    if (DB::isError($resultat)) {
1796
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1787
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1797
    }
1788
    }
1798
    $not_in_langue='';
1789
    $not_in_langue='';
1799
    if ( $resultat->numRows() == 0 ) {
1790
    if ( $resultat->numRows() == 0 ) {
1800
		$not_in_langue="gi_id_i18n not in('".$ligne_site->gs_ce_i18n."')";    
1791
		$not_in_langue="gi_id_i18n not in('".$ligne_site->gs_ce_i18n."')";    
1801
    }
1792
    }
1802
    else {
1793
    else {
1803
    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1794
    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
1804
				$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
1795
				$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
1805
				$end="'".$ligne->gs_ce_i18n."'";
1796
				$end="'".$ligne->gs_ce_i18n."'";
1806
			}
1797
			}
1807
    		$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
1798
    		$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
1808
    }
1799
    }
1809
	$resultat->free();		    
1800
	$resultat->free();		    
1810
 
1801
 
1811
	$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
1802
	$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
1812
	
1803
	
1813
    $resultat = $db->query($requete) ;
1804
    $resultat = $db->query($requete) ;
1814
    if (DB::isError($resultat)) {
1805
    if (DB::isError($resultat)) {
1815
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1806
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1816
    }
1807
    }
1817
    
1808
    
1818
    $retour = $resultat->numRows();
1809
    $retour = $resultat->numRows();
1819
    $resultat->free();
1810
    $resultat->free();
1820
    
1811
    
1821
    $message='';
1812
    $message='';
1822
    if ($retour == 0) {
1813
    if ($retour == 0) {
1823
    	  $message = '<p class="pap_erreur">Plus de traduction possible pour ce site </p>';
1814
    	  $message = '<p class="pap_erreur">Plus de traduction possible pour ce site </p>';
1824
    }
1815
    }
1825
    return  $message;
1816
    return  $message;
1826
}
1817
}
1827
    
1818
    
1828
// +- Fin du code source  --------------------------------------------------------------------------------+
1819
// +- Fin du code source  --------------------------------------------------------------------------------+
1829
/*
1820
/*
1830
* $Log: not supported by cvs2svn $
1821
* $Log: not supported by cvs2svn $
-
 
1822
* Revision 1.35  2007/04/20 10:42:42  neiluj
-
 
1823
* suite oubli, fix des derniers bugs FTP
-
 
1824
*
1831
* Revision 1.34  2007/04/20 09:21:41  neiluj
1825
* Revision 1.34  2007/04/20 09:21:41  neiluj
1832
* correction bug ftp création/suppression/modification de site
1826
* correction bug ftp création/suppression/modification de site
1833
* (changé PAP_FTP_RACINE en PAP_CHEMIN_RACINE)
1827
* (changé PAP_FTP_RACINE en PAP_CHEMIN_RACINE)
1834
* voir compatibilité chroot() du serveur FTP)
1828
* voir compatibilité chroot() du serveur FTP)
1835
*
1829
*
1836
* Revision 1.33  2007/04/19 15:34:35  neiluj
1830
* Revision 1.33  2007/04/19 15:34:35  neiluj
1837
* préparration release (livraison) "Narmer" - v0.25
1831
* préparration release (livraison) "Narmer" - v0.25
1838
*
1832
*
1839
* Revision 1.32  2006/10/16 15:49:06  ddelon
1833
* Revision 1.32  2006/10/16 15:49:06  ddelon
1840
* Refactorisation code mulitlinguisme et gestion menu invisibles
1834
* Refactorisation code mulitlinguisme et gestion menu invisibles
1841
*
1835
*
1842
* Revision 1.31  2006/09/12 09:54:02  ddelon
1836
* Revision 1.31  2006/09/12 09:54:02  ddelon
1843
* Affichage des identifications disponibles lors de la création d'un site. Un bug faisait que l'affichage de l'identification par défaut ne fonctionnait plus en creation.
1837
* Affichage des identifications disponibles lors de la création d'un site. Un bug faisait que l'affichage de l'identification par défaut ne fonctionnait plus en creation.
1844
*
1838
*
1845
* Revision 1.30  2006/07/19 13:57:35  ddelon
1839
* Revision 1.30  2006/07/19 13:57:35  ddelon
1846
* Bug suppression de site
1840
* Bug suppression de site
1847
*
1841
*
1848
* Revision 1.29  2006/03/23 20:24:58  ddelon
1842
* Revision 1.29  2006/03/23 20:24:58  ddelon
1849
* *** empty log message ***
1843
* *** empty log message ***
1850
*
1844
*
1851
* Revision 1.28  2006/03/15 23:44:19  ddelon
1845
* Revision 1.28  2006/03/15 23:44:19  ddelon
1852
* Gestion site
1846
* Gestion site
1853
*
1847
*
1854
* Revision 1.27  2006/03/15 23:35:25  ddelon
1848
* Revision 1.27  2006/03/15 23:35:25  ddelon
1855
* Gestion site
1849
* Gestion site
1856
*
1850
*
1857
* Revision 1.26  2006/03/02 10:49:49  ddelon
1851
* Revision 1.26  2006/03/02 10:49:49  ddelon
1858
* Fusion branche multilinguisme dans branche principale
1852
* Fusion branche multilinguisme dans branche principale
1859
*
1853
*
1860
* Revision 1.25.2.2  2006/02/28 14:02:10  ddelon
1854
* Revision 1.25.2.2  2006/02/28 14:02:10  ddelon
1861
* Finition multilinguisme
1855
* Finition multilinguisme
1862
*
1856
*
1863
* Revision 1.25.2.1  2006/01/19 21:26:20  ddelon
1857
* Revision 1.25.2.1  2006/01/19 21:26:20  ddelon
1864
* Multilinguisme site + bug ftp
1858
* Multilinguisme site + bug ftp
1865
*
1859
*
1866
* Revision 1.25  2005/10/17 13:48:59  jp_milcent
1860
* Revision 1.25  2005/10/17 13:48:59  jp_milcent
1867
* Ajout d'un espace après le texte "Dernière modification par".
1861
* Ajout d'un espace après le texte "Dernière modification par".
1868
*
1862
*
1869
* Revision 1.24  2005/09/23 14:32:54  florian
1863
* Revision 1.24  2005/09/23 14:32:54  florian
1870
* compatibilité XHTML + correction interface
1864
* compatibilité XHTML + correction interface
1871
*
1865
*
1872
* Revision 1.23  2005/09/20 17:01:22  ddelon
1866
* Revision 1.23  2005/09/20 17:01:22  ddelon
1873
* php5 et bugs divers
1867
* php5 et bugs divers
1874
*
1868
*
1875
* Revision 1.22  2005/05/27 16:06:16  jpm
1869
* Revision 1.22  2005/05/27 16:06:16  jpm
1876
* Gestion des infos sur l'admin modifiant les infos.
1870
* Gestion des infos sur l'admin modifiant les infos.
1877
*
1871
*
1878
* Revision 1.21  2005/04/08 13:29:04  jpm
1872
* Revision 1.21  2005/04/08 13:29:04  jpm
1879
* Utiliation de références.
1873
* Utiliation de références.
1880
* Correction du double &amp; dans les urls du formulaire.
1874
* Correction du double &amp; dans les urls du formulaire.
1881
*
1875
*
1882
* Revision 1.20  2005/03/08 11:17:47  jpm
1876
* Revision 1.20  2005/03/08 11:17:47  jpm
1883
* Suppression de l'inclusion d'un fichier inutile.
1877
* Suppression de l'inclusion d'un fichier inutile.
1884
*
1878
*
1885
* Revision 1.19  2005/02/28 11:07:00  jpm
1879
* Revision 1.19  2005/02/28 11:07:00  jpm
1886
* Modification des auteurs.
1880
* Modification des auteurs.
1887
*
1881
*
1888
* Revision 1.18  2005/02/28 10:59:07  jpm
1882
* Revision 1.18  2005/02/28 10:59:07  jpm
1889
* Modification des commentaires et copyright.
1883
* Modification des commentaires et copyright.
1890
*
1884
*
1891
* Revision 1.17  2005/02/17 17:51:11  florian
1885
* Revision 1.17  2005/02/17 17:51:11  florian
1892
* Correction bug FTP
1886
* Correction bug FTP
1893
*
1887
*
1894
* Revision 1.16  2005/02/17 16:44:55  florian
1888
* Revision 1.16  2005/02/17 16:44:55  florian
1895
* correction du bug sur les sites par défaut
1889
* correction du bug sur les sites par défaut
1896
*
1890
*
1897
* Revision 1.15  2005/01/04 19:52:50  alex
1891
* Revision 1.15  2005/01/04 19:52:50  alex
1898
* correction de bug de copie de répertoire récursif de PEAR.
1892
* correction de bug de copie de répertoire récursif de PEAR.
1899
*
1893
*
1900
* Revision 1.14  2004/12/03 19:22:53  jpm
1894
* Revision 1.14  2004/12/03 19:22:53  jpm
1901
* Gestion des types de sites externes gérés par Papyrus.
1895
* Gestion des types de sites externes gérés par Papyrus.
1902
*
1896
*
1903
* Revision 1.13  2004/12/03 16:37:34  jpm
1897
* Revision 1.13  2004/12/03 16:37:34  jpm
1904
* Correction d'un bogue qui empêcher la mise à jour des url des sites externes.
1898
* Correction d'un bogue qui empêcher la mise à jour des url des sites externes.
1905
*
1899
*
1906
* Revision 1.12  2004/12/01 17:22:58  jpm
1900
* Revision 1.12  2004/12/01 17:22:58  jpm
1907
* Ajout d'une confirmation javascript pour la suppression d'un site.
1901
* Ajout d'une confirmation javascript pour la suppression d'un site.
1908
*
1902
*
1909
* Revision 1.11  2004/11/30 16:43:51  jpm
1903
* Revision 1.11  2004/11/30 16:43:51  jpm
1910
* Correction de bogues.
1904
* Correction de bogues.
1911
*
1905
*
1912
* Revision 1.10  2004/11/29 17:05:28  jpm
1906
* Revision 1.10  2004/11/29 17:05:28  jpm
1913
* Correction d'un bogue concernat les cases à cocher.
1907
* Correction d'un bogue concernat les cases à cocher.
1914
*
1908
*
1915
* Revision 1.9  2004/11/26 13:13:51  jpm
1909
* Revision 1.9  2004/11/26 13:13:51  jpm
1916
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
1910
* Mise en commentaire de variable passée dans un message d'erreur car elles semblent provoquer un bogue et ne sont pas obligatoire.
1917
*
1911
*
1918
* Revision 1.8  2004/11/03 17:59:59  jpm
1912
* Revision 1.8  2004/11/03 17:59:59  jpm
1919
* Corrections bogues erreurs variable inconnue.
1913
* Corrections bogues erreurs variable inconnue.
1920
*
1914
*
1921
* Revision 1.7  2004/10/26 18:41:28  jpm
1915
* Revision 1.7  2004/10/26 18:41:28  jpm
1922
* Gestion des sites externes à Papyrus.
1916
* Gestion des sites externes à Papyrus.
1923
*
1917
*
1924
* Revision 1.6  2004/10/22 17:25:31  jpm
1918
* Revision 1.6  2004/10/22 17:25:31  jpm
1925
* Changement du nom de la class CSS d'erreur.
1919
* Changement du nom de la class CSS d'erreur.
1926
*
1920
*
1927
* Revision 1.5  2004/10/19 15:57:55  jpm
1921
* Revision 1.5  2004/10/19 15:57:55  jpm
1928
* Amélioration de la gestion des fichiers sur le serveur.
1922
* Amélioration de la gestion des fichiers sur le serveur.
1929
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
1923
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut.
1930
*
1924
*
1931
* Revision 1.4  2004/10/18 18:27:41  jpm
1925
* Revision 1.4  2004/10/18 18:27:41  jpm
1932
* Correction problèmes FTP et manipulation de fichiers.
1926
* Correction problèmes FTP et manipulation de fichiers.
1933
*
1927
*
1934
* Revision 1.3  2004/09/23 16:51:27  jpm
1928
* Revision 1.3  2004/09/23 16:51:27  jpm
1935
* Ajout d'informations supplémentaires sur les messages d'erreur.
1929
* Ajout d'informations supplémentaires sur les messages d'erreur.
1936
*
1930
*
1937
* Revision 1.2  2004/07/06 17:08:01  jpm
1931
* Revision 1.2  2004/07/06 17:08:01  jpm
1938
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
1932
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
1939
*
1933
*
1940
* Revision 1.1  2004/06/16 14:28:46  jpm
1934
* Revision 1.1  2004/06/16 14:28:46  jpm
1941
* Changement de nom de Papyrus en Papyrus.
1935
* Changement de nom de Papyrus en Papyrus.
1942
* Changement de l'arborescence.
1936
* Changement de l'arborescence.
1943
*
1937
*
1944
* Revision 1.20  2004/05/10 14:32:14  jpm
1938
* Revision 1.20  2004/05/10 14:32:14  jpm
1945
* Changement du titre.
1939
* Changement du titre.
1946
*
1940
*
1947
* Revision 1.19  2004/05/10 12:23:39  jpm
1941
* Revision 1.19  2004/05/10 12:23:39  jpm
1948
* Modification formulaire.
1942
* Modification formulaire.
1949
*
1943
*
1950
* Revision 1.18  2004/05/07 16:33:53  jpm
1944
* Revision 1.18  2004/05/07 16:33:53  jpm
1951
* Amélioration des formulaires.
1945
* Amélioration des formulaires.
1952
*
1946
*
1953
* Revision 1.17  2004/05/07 07:22:51  jpm
1947
* Revision 1.17  2004/05/07 07:22:51  jpm
1954
* Ajout de la gestion des modification et suppression de site.
1948
* Ajout de la gestion des modification et suppression de site.
1955
* Amélioration de la création des sites.
1949
* Amélioration de la création des sites.
1956
*
1950
*
1957
* Revision 1.16  2004/04/30 16:22:53  jpm
1951
* Revision 1.16  2004/04/30 16:22:53  jpm
1958
* Poursuite de l'administration des sites.
1952
* Poursuite de l'administration des sites.
1959
*
1953
*
1960
* Revision 1.14  2004/04/02 15:58:39  jpm
1954
* Revision 1.14  2004/04/02 15:58:39  jpm
1961
* Modification fonction liste des projets.
1955
* Modification fonction liste des projets.
1962
*
1956
*
1963
* Revision 1.13  2004/04/01 11:21:41  jpm
1957
* Revision 1.13  2004/04/01 11:21:41  jpm
1964
* Ajout et modification de commentaires pour PhpDocumentor.
1958
* Ajout et modification de commentaires pour PhpDocumentor.
1965
*
1959
*
1966
* Revision 1.12  2004/03/24 20:01:02  jpm
1960
* Revision 1.12  2004/03/24 20:01:02  jpm
1967
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
1961
* Traduction, mise en forme, ajout de commentaire pour les fonctions listProjects() et updateProject().
1968
*
1962
*
1969
* Revision 1.11  2004/03/24 10:06:01  jpm
1963
* Revision 1.11  2004/03/24 10:06:01  jpm
1970
* Ajout des commentaires d'entête.
1964
* Ajout des commentaires d'entête.
1971
* Début mise en conformité avec la convention de codage.
1965
* Début mise en conformité avec la convention de codage.
1972
* Début traitement de la fonction listant les projets.
1966
* Début traitement de la fonction listant les projets.
1973
*
1967
*
1974
*
1968
*
1975
*/
1969
*/
1976
?>
1970
?>