Subversion Repositories Applications.papyrus

Rev

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

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