Subversion Repositories Applications.papyrus

Rev

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

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