Subversion Repositories Applications.papyrus

Rev

Rev 546 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 546 Rev 754
Line 17... Line 17...
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.25 2005-10-17 13:48:59 jp_milcent Exp $
22
// CVS : $Id: adsi_site.fonct.php,v 1.26 2006-03-02 10:49:49 ddelon Exp $
23
/**
23
/**
24
* Bibliothèque de fonctions d'admininistration des projets
24
* Bibliothèque de fonctions d'admininistration des projets
25
*
25
*
26
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
26
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
27
* sur les projets (=sites gérés par Papyrus).
27
* sur les projets (=sites gérés par Papyrus).
Line 32... Line 32...
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.25 $ $Date: 2005-10-17 13:48:59 $
37
*@version       $Revision: 1.26 $ $Date: 2006-03-02 10:49:49 $
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
39
*/
39
*/
Line 40... Line 40...
40
 
40
 
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
Line 58... Line 58...
58
* @param  string   un message important à destination de l'utilisateur.
58
* @param  string   un message important à destination de l'utilisateur.
59
* return  string   le code XHTML à retourner.
59
* return  string   le code XHTML à retourner.
60
*/
60
*/
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
62
{
62
{
-
 
63
	
-
 
64
	$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie
-
 
65
	
-
 
66
	// Langue en cours : langue choisie ou langue par defaut (principale)
-
 
67
	
-
 
68
	if (isset($id_langue) && ($id_langue!='')) {
-
 
69
		$langue_test=$id_langue;
-
 
70
	} else {
-
 
71
		$langue_test=GEN_I18N_ID_DEFAUT;
-
 
72
	}
-
 
73
 
63
    // Liste des sites principaux
74
    // Liste des sites principaux :
-
 
75
    // Recherche de tous les sites langue en cours
-
 
76
    
64
    $requete =  'SELECT * '.
77
    $requete =  'SELECT * '.
65
                'FROM gen_site, gen_site_relation '.
78
                'FROM gen_site, gen_site_relation '.
66
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
79
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
67
                'AND gsr_id_site_01 = gs_id_site '.
80
                'AND gsr_id_site_01 = gs_id_site '.
68
                'AND gsr_id_valeur IN (102, 103) '.
81
                'AND gsr_id_valeur IN (102, 103) '.
-
 
82
                'AND gs_ce_i18n = "'.$langue_test.'" '.
69
                'ORDER BY gsr_ordre';
83
                'ORDER BY gsr_ordre';
-
 
84
                    
Line 70... Line 85...
70
    
85
    
71
    $resultat = $db->query($requete);
86
    $resultat = $db->query($requete);
Line -... Line 87...
-
 
87
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
-
 
88
    
-
 
89
    $liste_site=array();
-
 
90
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
91
    	
-
 
92
    		if ($langue_test == GEN_I18N_ID_DEFAUT) {
-
 
93
    			
-
 
94
    		  $requete_est_traduction =   'SELECT gsr_id_site_01 '.
-
 
95
	                       'FROM  gen_site_relation '.
-
 
96
	                       'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
-
 
97
	                  	   'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
-
 
98
	                       'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
-
 
99
	                                
-
 
100
	                                
-
 
101
	            $resultat_est_traduction = $db->query($requete_est_traduction);
-
 
102
	            (DB::isError($resultat_est_traduction))
-
 
103
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
-
 
104
	                : '';
-
 
105
	                
-
 
106
	   			if ( $resultat_est_traduction->numRows() == 0 ) {
-
 
107
    	 			$liste_site[]=$ligne;
-
 
108
	            }
-
 
109
    		}
-
 
110
    		else {
-
 
111
    			   $liste_site[]=$ligne;
-
 
112
    		}
-
 
113
    }
-
 
114
    $resultat->free();
-
 
115
    
-
 
116
    // Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue
-
 
117
    // la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductions
-
 
118
  	
-
 
119
  	
-
 
120
	if ($langue_test != GEN_I18N_ID_DEFAUT) {
-
 
121
 
-
 
122
    
-
 
123
	    $requete =  'SELECT * '.
-
 
124
	                'FROM gen_site, gen_site_relation '.
-
 
125
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
126
	                'AND gs_id_site = gsr_id_site_01 '.
-
 
127
	                'AND gsr_id_valeur IN (102, 103) '.
-
 
128
	                'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
-
 
129
	                'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe"
-
 
130
	                
-
 
131
	    $resultat = $db->query($requete);
-
 
132
	    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
133
	    
-
 
134
	    
-
 
135
	            
-
 
136
	    
-
 
137
	    // Recherche de tous les sites de la langue principale  qui ne sont pas traduits dans la langue en cours
-
 
138
	    
-
 
139
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
140
	    	
-
 
141
	    		$requete_est_traduction =   'SELECT gsr_id_site_01 '.
-
 
142
	                                'FROM  gen_site_relation '.
-
 
143
	                                'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
-
 
144
	                                'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
-
 
145
	                                'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
-
 
146
	                                
-
 
147
	                                
-
 
148
	            $resultat_est_traduction = $db->query($requete_est_traduction);
-
 
149
	            (DB::isError($resultat_est_traduction))
-
 
150
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
-
 
151
	                : '';
-
 
152
	                
-
 
153
	            if ( $resultat_est_traduction->numRows() == 0 ) {
-
 
154
	            	
-
 
155
		    	
-
 
156
					if (isset($id_langue) && ($id_langue!='')) {
-
 
157
						$langue_test=$id_langue;
-
 
158
					} else {
-
 
159
						$langue_test=GEN_I18N_ID_DEFAUT;
-
 
160
					}
-
 
161
				    	
-
 
162
		    		$requete_traduction =   'SELECT gsr_id_site_01 '.
-
 
163
		                                    'FROM  gen_site_relation, gen_site '.
-
 
164
		                                    'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
-
 
165
		                                    'AND gsr_id_site_02 = gs_id_site '.
-
 
166
		                                    'AND gs_ce_i18n = "'.$langue_test.'" '.
-
 
167
		                                    'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
-
 
168
		                                    
-
 
169
		            $resultat_traduction = $db->query($requete_traduction);
-
 
170
		            (DB::isError($resultat_traduction))
-
 
171
		                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
-
 
172
		                : '';
-
 
173
		                
-
 
174
		            if ( $resultat_traduction->numRows() == 0 ) {
-
 
175
		            	$liste_site []=$ligne;
-
 
176
		            }
-
 
177
		            
-
 
178
		            $resultat_traduction->free();
-
 
179
		            
-
 
180
	            }
-
 
181
	               $resultat_est_traduction->free();
-
 
182
		    
-
 
183
	    }
-
 
184
	    $resultat->free();
-
 
185
	}
-
 
186
    
72
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
187
    
73
    
188
  
74
    //----------------------------------------------------------------------------
189
    //----------------------------------------------------------------------------
75
    // Création du formulaire
190
    // Création du formulaire
76
    $form =& new HTML_QuickForm('form_sites', 'post', str_replace('&amp;', '&', $url));
191
    $form =& new HTML_QuickForm('form_sites', 'post', str_replace('&amp;', '&', $url));
Line 87... Line 202...
87
                            '<legend>Listes des sites</legend>'."\n".
202
                            '<legend>Listes des sites</legend>'."\n".
88
                            '<ul>'."\n";
203
                            '<ul>'."\n";
89
    $form->addElement('html', $partie_site_debut);
204
    $form->addElement('html', $partie_site_debut);
Line 90... Line 205...
90
    
205
    
91
    $aso_options = array();
206
    $aso_options = array();
92
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
207
    foreach ($liste_site as $ligne ) {
-
 
208
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
-
 
209
        
-
 
210
        // Affichage des traductions
-
 
211
        $requete_traduction =   'SELECT * '.
-
 
212
	                            'FROM  gen_site_relation, gen_site '.
-
 
213
	                            'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
-
 
214
	                            'AND gsr_id_site_02 <> gsr_id_site_01 '.
-
 
215
	                            'AND gsr_id_site_02 = gs_id_site '.
-
 
216
	                            'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
-
 
217
	    $resultat_traduction = $db->query($requete_traduction);
-
 
218
        (DB::isError($resultat_traduction))
-
 
219
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
-
 
220
            : '';
-
 
221
        
-
 
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.')');
-
 
224
        }
-
 
225
        $resultat_traduction->free();
93
        $aso_options[$ligne->gs_id_site] = htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')');
226
    
94
    }
227
    }
Line 95... Line 228...
95
    $resultat->free();
228
    $resultat->free();
96
    
229
    
Line 113... Line 246...
113
    
246
    
114
    $id = 'form_sites_modifier';
247
    $id = 'form_sites_modifier';
115
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
248
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
116
    $label = 'Modifier';
249
    $label = 'Modifier';
-
 
250
    $form->addElement('submit', $id, $label, $aso_attributs);
-
 
251
 
-
 
252
    $id = 'form_sites_traduire';
-
 
253
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
-
 
254
    $label = 'Traduire';
Line 117... Line 255...
117
    $form->addElement('submit', $id, $label, $aso_attributs);
255
    $form->addElement('submit', $id, $label, $aso_attributs);
118
    
256
    
119
    $id = 'form_sites_supprimer';
257
    $id = 'form_sites_supprimer';
120
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
258
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onclick' => 'javascript:return confirm(\''.'Êtes vous sûr de vouloir supprimer ce site ?'.'\');');
Line 166... Line 304...
166
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
304
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
167
{
305
{
168
    // Initialisation des valeurs
306
    // Initialisation des valeurs
169
    $sortie = '';
307
    $sortie = '';
170
    $aso_valeurs['modification'] = false;
308
    $aso_valeurs['modification'] = false;
-
 
309
    $aso_valeurs['traduction'] = false;
171
    $aso_valeurs['defaut'] = false;
310
    $aso_valeurs['defaut'] = false;
172
    $aso_valeurs['type_site_externe'] = 0;
311
    $aso_valeurs['type_site_externe'] = 0;
173
    // Nous cherchons à savoir si nous somme en modification
312
    // Nous cherchons à savoir si nous somme en modification
-
 
313
    if ((isset($aso_valeurs['form_sites_modifier']))  || (isset($aso_valeurs['form_sites_traduire'])))  {
174
    if (isset($aso_valeurs['form_sites_modifier'])) {
314
    	if ((isset($aso_valeurs['form_sites_modifier']))) { 
-
 
315
        	$as_val['modification'] = true;
-
 
316
    	}
-
 
317
        else { 
-
 
318
        	$as_val['traduction'] = true;
-
 
319
        };
-
 
320
        
-
 
321
        if ($as_val['traduction']) {
-
 
322
	        // Traduction d'un site principal uniquement :
-
 
323
	        
-
 
324
	        $requete =  'SELECT * '.
-
 
325
	                    'FROM gen_site_relation '.
-
 
326
	                    'WHERE gsr_id_site_02 = '.$aso_valeurs['form_sites_id_site'].' '.
-
 
327
	                    'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
-
 
328
	        
-
 
329
	        $resultat = $db->query($requete);
-
 
330
	        
-
 
331
	        if (DB::isError($resultat)) {
-
 
332
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
333
	        }
-
 
334
	
-
 
335
	        if ( $resultat->numRows() == 0 ) {
175
        $site_id = $aso_valeurs['form_sites_id_site'];
336
	        	$site_id = $aso_valeurs['form_sites_id_site'];
-
 
337
	        }
-
 
338
	        else {
-
 
339
	        	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
340
		        $site_id = $ligne->gsr_id_site_01;
-
 
341
	        }
-
 
342
	        $resultat->free();
-
 
343
       		 }
-
 
344
        else {
-
 
345
          	$site_id = $aso_valeurs['form_sites_id_site'];
-
 
346
      	 }
-
 
347
	        
176
        // Requete pour récupérer les informations sur le site à modifier
348
	        // Requete pour récupérer les informations sur le site à modifier
177
        $requete =  'SELECT * '.
349
	        $requete =  'SELECT * '.
178
                    'FROM gen_site '.
350
	                    'FROM gen_site '.
179
                    'WHERE gs_id_site = '.$site_id;
351
	                    'WHERE gs_id_site = '.$site_id;
180
        $resultat = $db->query($requete);
352
	        $resultat = $db->query($requete);
181
        if (DB::isError($resultat)) {
353
	        if (DB::isError($resultat)) {
182
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
354
	            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
183
        }
355
	        }
184
        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
356
	        $aso_valeurs = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
-
 
357
	        $site_ligne = $aso_valeurs;
185
        $resultat->free();
358
	        $resultat->free();
Line 186... Line 359...
186
        
359
        
187
        // Requete pour récupérer les informations issues des relations du site à modifier
360
        // Requete pour récupérer les informations issues des relations du site à modifier
188
        $requete =  'SELECT * '.
361
        $requete =  'SELECT * '.
189
                    'FROM gen_site_relation '.
362
                    'FROM gen_site_relation '.
Line 205... Line 378...
205
                }
378
                }
206
            }
379
            }
207
        }
380
        }
208
        $resultat->free();
381
        $resultat->free();
Line -... Line 382...
-
 
382
        
209
        
383
        if (($as_val['modification'])) { 
-
 
384
        	$aso_valeurs['modification'] = true;
-
 
385
        }
-
 
386
        else { 
-
 
387
        	$aso_valeurs['traduction'] = true;
-
 
388
        };
-
 
389
      
-
 
390
        
210
        $aso_valeurs['modification'] = true;
391
        
211
    } else if (isset($aso_valeurs['gs_id_site'])) {
392
    } else if (isset($aso_valeurs['gs_id_site'])) {
212
        $aso_valeurs['modification'] = true;
393
        $aso_valeurs['modification'] = true;
213
    }
394
    }
214
    // Débogage :
395
    // Débogage :
215
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
396
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
216
    //-------------------------------------------------------------------------------------------------------------------
397
    //-------------------------------------------------------------------------------------------------------------------
217
    // Information précédent le formulaire (en modification)
398
    // Information précédent le formulaire (en modification)
218
    if (isset($aso_valeurs['modification'])&&isset($aso_valeurs['gs_id_site'])) {
399
    if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
219
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
400
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
220
    }
401
    }
221
    //-------------------------------------------------------------------------------------------------------------------
402
    //-------------------------------------------------------------------------------------------------------------------
222
    // Création du formulaire
403
    // Création du formulaire
Line 238... Line 419...
238
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
419
    $squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n");
Line 239... Line 420...
239
    
420
    
240
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
421
    $partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n";
Line 241... Line 422...
241
    $form->addElement('html', $partie_site_debut);
422
    $form->addElement('html', $partie_site_debut);
242
    
423
    
-
 
424
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
-
 
425
        $form->addElement('hidden', 'gs_id_site');
243
    if ($aso_valeurs['modification']) {
426
        $form->addElement('hidden', 'modification');
Line 244... Line 427...
244
        $form->addElement('hidden', 'gs_id_site');
427
        $form->addElement('hidden', 'traduction');
245
    }
428
    }
246
    
429
    
Line 290... Line 473...
290
    $id = 'gs_ce_auth';
473
    $id = 'gs_ce_auth';
291
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
474
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++);
292
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
475
    $label = '<label for="'.$id.'">'.'Identification : '.'</label>';
293
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
476
    $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
Line 294... Line 477...
294
    
477
    
295
    // En modification nous affichons la liste des squelettes disponiblent dans
478
    // En modification nous affichons la liste des squelettes disponibles dans
296
    // le dossier du site.
479
    // le dossier du site.
297
    if ($aso_valeurs['modification']) {
480
    if ($aso_valeurs['modification'] || $aso_valeurs['traduction']) {
298
        $aso_options = array();
481
        $aso_options = array();
299
        if (!GEN_FTP_UTILISE) {
482
        if (!GEN_FTP_UTILISE) {
300
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
483
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
301
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
484
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
Line 348... Line 531...
348
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
531
        $label = '<label for="'.$id.'">'.'Squelette : '.'</label>';
349
        $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
532
        $form->addElement('select', $id, $label, $aso_options, $aso_attributs);
350
    }
533
    }
Line 351... Line 534...
351
    
534
    
-
 
535
    // Requete pour connaitre les internationalisation dispo
-
 
536
    
352
    // Requete pour connaitre les internationalisation dispo
537
    if (!$aso_valeurs['modification'] && !$aso_valeurs['traduction']) {
353
    $requete =  'SELECT * '.
538
    	$requete =  'SELECT * '.
-
 
539
        	        'FROM gen_i18n ';
-
 
540
    }
-
 
541
    	else  {
-
 
542
    		
-
 
543
    		
-
 
544
    		if ($aso_valeurs['traduction']) {
-
 
545
    			
-
 
546
    		// Recherche liste des sites deja traduits 
-
 
547
    		
-
 
548
	    		 $requete =  'SELECT distinct gs_ce_i18n  '.
-
 
549
                'FROM gen_site_relation, gen_site '.
-
 
550
                'WHERE gsr_id_site_01 = ' .$site_ligne['gs_id_site'] .' '.
-
 
551
                'AND gs_id_site = gsr_id_site_02  '.
-
 
552
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
-
 
553
                
-
 
554
			    $resultat = $db->query($requete) ;
-
 
555
			    if (DB::isError($resultat)) {
-
 
556
			        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
557
			    }
-
 
558
			    $not_in_langue='';
-
 
559
			    if ( $resultat->numRows() == 0 ) {
-
 
560
					$not_in_langue="gi_id_i18n not in('".$site_ligne['gs_ce_i18n']."')";    
-
 
561
			    }
-
 
562
			    else {
-
 
563
			    	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
564
    	 					$not_in_langue="'".$ligne->gs_ce_i18n."'".",".$not_in_langue;
-
 
565
    	 					$end="'".$ligne->gs_ce_i18n."'";
-
 
566
    					}
-
 
567
			    		$not_in_langue=' gi_id_i18n not in('.$not_in_langue.$end.')';
-
 
568
			    }
-
 
569
				$resultat->free();		    
-
 
570
    		
-
 
571
	    		$requete =  "SELECT * FROM gen_i18n where ".$not_in_langue;
-
 
572
    		}
-
 
573
    		else 
-
 
574
    		{
-
 
575
    			$requete =  "SELECT * FROM gen_i18n where  gi_id_i18n =('".$site_ligne['gs_ce_i18n']."')";
-
 
576
    		}
354
                'FROM gen_i18n ';
577
    }
355
    $resultat = $db->query($requete) ;
578
    $resultat = $db->query($requete) ;
356
    if (DB::isError($resultat)) {
579
    if (DB::isError($resultat)) {
357
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
580
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
358
    }
581
    }
Line 396... Line 619...
396
    
619
    
397
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
620
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
Line 398... Line 621...
398
    $form->addElement('html', $partie_entete_debut);
621
    $form->addElement('html', $partie_entete_debut);
399
    
622
    
400
    $id = 'gs_titre';
623
    $id = 'gs_titre';
401
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => 'titre du site');
624
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
402
    $label = '<label for="'.$id.'">'.'Titre du site : '.'</label>';
625
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
Line 403... Line 626...
403
    $form->addElement('text', $id, $label, $aso_attributs);
626
    $form->addElement('text', $id, $label, $aso_attributs);
404
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
627
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
Line 426... Line 649...
426
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
649
    $form->addRule('gs_auteur', 'Un auteur est requis pour le site !', 'required', '', 'client');  
Line 427... Line 650...
427
    
650
    
428
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
651
    $partie_entete_fin = '</ul>'."\n".'</fieldset>'."\n";
Line 429... Line 652...
429
    $form->addElement('html', $partie_entete_fin);
652
    $form->addElement('html', $partie_entete_fin);
430
    
653
    
431
    if ($aso_valeurs['modification']) {
654
    if ($aso_valeurs['modification'] ||  $aso_valeurs['traduction']) {
432
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
655
        // Requete pour connaitre les informations sur l'administrateur ayant fait la dernière modif
433
        $requete_admin =    'SELECT * '.
656
        $requete_admin =    'SELECT * '.
434
                            'FROM gen_annuaire '.
657
                            'FROM gen_annuaire '.
Line 445... Line 668...
445
        	$form->addElement('hidden', 'gs_ce_admin');
668
        	$form->addElement('hidden', 'gs_ce_admin');
446
        	$form->addElement('hidden', 'gs_date_creation');
669
        	$form->addElement('hidden', 'gs_date_creation');
447
        }
670
        }
Line 448... Line 671...
448
        
671
        
-
 
672
        // Titre de la page:
449
        // Titre de la page:
673
        if ($aso_valeurs['modification']) {
-
 
674
        	$titre = 'Modifier un site';
-
 
675
        	$bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
-
 
676
        }
450
        $titre = 'Modifier un site';
677
        else {
451
        // Bouton validant le formulaire
678
        	$titre = 'Traduire un site';
-
 
679
        	$bouton_validation = '<input type="submit" id="site_traduire" name="site_traduire" value="Enregistrer" />';
-
 
680
        }
452
        $bouton_validation = '<input type="submit" id="site_modifier" name="site_modifier" value="Enregistrer" />';
681
        
453
    } else {
682
    } else {
454
        // Titre de la page:
683
        // Titre de la page:
455
        $titre = 'Ajouter un site';
684
        $titre = 'Ajouter un site';
456
        // Bouton validant le formulaire
685
        // Bouton validant le formulaire
Line 513... Line 742...
513
    }
742
    }
514
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
743
    if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) {
515
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
744
        $message .= '<p class="pap_erreur">Le champ "Code numérique" doit contenir un nombre.</p>';
516
    }
745
    }
Line 517... Line 746...
517
    
746
    
518
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_site
-
 
519
    $requete =  'SELECT gs_code_alpha, gs_code_num '.
747
    // Requete pour vérifier l'absence du code numérique et alphanumérique de la table gen_site
520
                'FROM gen_site, gen_site_relation '.
-
 
521
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
522
                'AND gsr_id_site_01 = gs_id_site '.
-
 
523
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
-
 
Line -... Line 748...
-
 
748
    // en mode creation uniquement !
-
 
749
    
-
 
750
    if (!$aso_valeurs['site_modifier'] && !$aso_valeurs['site_traduire'] ) {
-
 
751
    
-
 
752
	    $requete =  'SELECT gs_code_alpha, gs_code_num '.
-
 
753
	                'FROM gen_site, gen_site_relation '.
-
 
754
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
755
	                'AND gsr_id_site_01 = gs_id_site '.
-
 
756
	                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
-
 
757
	    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
524
    $requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : '';
758
	    
525
    
759
	    
526
    $resultat = $db->query($requete);
760
	    $resultat = $db->query($requete);
-
 
761
	    if (DB::isError($resultat)) {
-
 
762
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
763
	    }
-
 
764
	    
-
 
765
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
-
 
766
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
-
 
767
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
-
 
768
	        }
-
 
769
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
-
 
770
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
-
 
771
	        }
-
 
772
	    }
-
 
773
	    
527
    if (DB::isError($resultat)) {
774
	    $resultat->free();
Line 528... Line -...
528
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
529
    }
-
 
530
    
-
 
531
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
775
	    
532
        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
776
    }
533
            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
-
 
534
        }
-
 
535
        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
777
    
536
            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
-
 
Line 537... Line 778...
537
        }
778
    else {
538
    }
779
    // Refuser si plus de traduction disponible !	
539
    $resultat->free();
780
    }
540
    
781
    
Line 795... Line 1036...
795
    
1036
    
796
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
1037
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
797
    return $message;
1038
    return $message;
Line -... Line 1039...
-
 
1039
}
-
 
1040
 
-
 
1041
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
-
 
1042
*
-
 
1043
* Cette fonction traduit un site à Papyrus, c'est à dire :
-
 
1044
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
-
 
1045
* - 2. Insertion d'une ligne dans la table "gen_site".
-
 
1046
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
-
 
1047
*
-
 
1048
* @param  string   l'objet pear de connexion à la base de données.
-
 
1049
* @param  string   le tableau contenant les valeurs du formulaire.
-
 
1050
* @param  int      identifiant de l'administrateur réalisant cette création.
-
 
1051
* @return string retourne un message en cas de succès ou d'échec.
-
 
1052
*/
-
 
1053
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
-
 
1054
{
-
 
1055
    // Nous vérifions si nous avons à faire à un site externe.
-
 
1056
    $id_type_site = '102';// par défaut on considére que c'est un site "principal"
-
 
1057
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
-
 
1058
        $id_type_site = '103';// c'est un site "externe"
-
 
1059
    }
-
 
1060
    
-
 
1061
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
-
 
1062
    // par l'utilisateur dans le fichier de config avancée.
-
 
1063
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
-
 
1064
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
-
 
1065
                            GEN_DOSSIER_STYLE,
-
 
1066
                            GEN_DOSSIER_SCRIPT,
-
 
1067
                            GEN_DOSSIER_SQUELETTE,
-
 
1068
                            GEN_DOSSIER_DOC);
-
 
1069
    if (!GEN_FTP_UTILISE && $id_type_site != '103') {
-
 
1070
        foreach ($tab_rep_langue as $nom_rep_langue) {
-
 
1071
            foreach ($tab_rep_site as $nom_rep_site) {
-
 
1072
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
-
 
1073
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
-
 
1074
                $vieux_umask = umask(0);
-
 
1075
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
-
 
1076
                umask($vieux_umask);
-
 
1077
                if ($resultat == false) {
-
 
1078
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
-
 
1079
                                'Répertoire : '. $chemin_repertoire .'<br />'.
-
 
1080
                                'Ligne n° : '. __LINE__ .'<br />'.
-
 
1081
                                'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1082
                    return $message;
-
 
1083
                }
-
 
1084
            }
-
 
1085
        }
-
 
1086
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
-
 
1087
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
-
 
1088
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
-
 
1089
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
-
 
1090
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
-
 
1091
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
-
 
1092
                        'Fichier : '. $chemin_squelette_site .'<br />'.
-
 
1093
                        'Ligne n° : '. __LINE__ .'<br />'.
-
 
1094
                        'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1095
            return $message;
-
 
1096
        }
-
 
1097
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
-
 
1098
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
-
 
1099
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
-
 
1100
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
-
 
1101
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
-
 
1102
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
-
 
1103
                        'Fichier : '. $chemin_style_site .'<br />'.
-
 
1104
                        'Ligne n° : '. __LINE__ .'<br />'.
-
 
1105
                        'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1106
            return $message;
-
 
1107
        }
-
 
1108
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
-
 
1109
        // Création d'une connection ftp avec Net_FTP de PEAR
-
 
1110
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
-
 
1111
        
-
 
1112
        // création de l'objet pear ftp
-
 
1113
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
-
 
1114
        // création de la connexion
-
 
1115
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
-
 
1116
        // identification
-
 
1117
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
-
 
1118
        // Gestion des erreurs ftp
-
 
1119
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
-
 
1120
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
-
 
1121
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
-
 
1122
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
-
 
1123
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
-
 
1124
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
-
 
1125
                        'Ligne n° : '. __LINE__ .'<br />'.
-
 
1126
                        'Fichier n° : '. __FILE__ .'<br /><p>';
-
 
1127
            return $message;
-
 
1128
        }
-
 
1129
        $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
-
 
1130
        
-
 
1131
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
-
 
1132
        foreach ($tab_rep_langue as $nom_rep_langue) {
-
 
1133
            $objet_pear_ftp->mkdir(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
-
 
1134
            foreach ($tab_rep_site as $nom_rep_site) {
-
 
1135
                $chemin_repertoire =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
-
 
1136
                
-
 
1137
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
-
 
1138
                if (PEAR::isError($resultat)) {
-
 
1139
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
-
 
1140
                                'Répertoire : '. $chemin_repertoire .'<br />'.
-
 
1141
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
-
 
1142
                                'Ligne n° : '. __LINE__ .'<br />'.
-
 
1143
                                'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1144
                    return $message;
-
 
1145
                }
-
 
1146
            }
-
 
1147
        }
-
 
1148
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
-
 
1149
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
-
 
1150
        $chemin_squelette_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
-
 
1151
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
-
 
1152
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
-
 
1153
        if (PEAR::isError($resultat)) {
-
 
1154
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
-
 
1155
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
-
 
1156
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
-
 
1157
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
-
 
1158
                        'Ligne n° : '. __LINE__ .'<br />'.
-
 
1159
                        'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1160
                return $message;
-
 
1161
        }
-
 
1162
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
-
 
1163
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
-
 
1164
        $chemin_style_site =    PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
-
 
1165
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
-
 
1166
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
-
 
1167
        if (PEAR::isError($resultat)) {
-
 
1168
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
-
 
1169
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
-
 
1170
                        'Fichier copié : '. $chemin_style_site .'<br />'.
-
 
1171
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
-
 
1172
                        'Ligne n° : '. __LINE__ .'<br />'.
-
 
1173
                        'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1174
                return $message;
-
 
1175
        }
-
 
1176
        $objet_pear_ftp->disconnect();
-
 
1177
    }
-
 
1178
    
-
 
1179
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
-
 
1180
    
-
 
1181
    if ($id_site == false) {
-
 
1182
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
-
 
1183
                    'Ligne n° : '. __LINE__ .'<br />'.
-
 
1184
                    'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
1185
        return $message;
-
 
1186
    }
-
 
1187
    
-
 
1188
    // Modification de la requete si nous avons à faire à un site externe.
-
 
1189
    $requete_complement = ', gs_url = NULL';
-
 
1190
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
-
 
1191
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
-
 
1192
    }
-
 
1193
    
-
 
1194
    // Requete d'insertion des infos d'un site dans gen_site
-
 
1195
    $requete =  'INSERT INTO gen_site '.
-
 
1196
                'SET gs_id_site = '.$id_site.', '.
-
 
1197
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
-
 
1198
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
-
 
1199
                'gs_fichier_squelette = "defaut.html", '.
-
 
1200
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
-
 
1201
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
-
 
1202
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
-
 
1203
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
-
 
1204
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
-
 
1205
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
-
 
1206
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
-
 
1207
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
-
 
1208
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
-
 
1209
                'gs_ce_admin = '.$id_admin.
-
 
1210
                $requete_complement;
-
 
1211
    $resultat = $db->query($requete);
-
 
1212
    if (DB::isError($resultat)) {
-
 
1213
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
1214
    }
-
 
1215
    
-
 
1216
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
-
 
1217
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
-
 
1218
                'FROM gen_site_relation '.
-
 
1219
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
1220
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
-
 
1221
    $resultat = $db->query($requete) ;
-
 
1222
    if (DB::isError($resultat)) {
-
 
1223
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
1224
    }
-
 
1225
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
1226
    $nouvel_ordre = $ligne->max_ordre + 1;
-
 
1227
    
-
 
1228
    // Requete d'insertion des relations dans gen_site_relation
-
 
1229
    
-
 
1230
    $requete =  'INSERT INTO gen_site_relation '.
-
 
1231
                'SET gsr_id_site_01 = '.$id_site.', '.
-
 
1232
                'gsr_id_site_02 = '.$id_site.', '.
-
 
1233
                'gsr_id_valeur = '.$id_type_site.', '.
-
 
1234
                'gsr_ordre = '.$nouvel_ordre;
-
 
1235
    $resultat = $db->query($requete);
-
 
1236
    if (DB::isError($resultat)) {
-
 
1237
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
1238
    }
-
 
1239
    
-
 
1240
    // Traduction : Requete d'insertion des relations dans gen_site_relation
-
 
1241
 
-
 
1242
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
-
 
1243
                'FROM gen_site_relation '.
-
 
1244
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
-
 
1245
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
-
 
1246
    $resultat = $db->query($requete) ;
-
 
1247
    if (DB::isError($resultat)) {
-
 
1248
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
1249
    }
-
 
1250
    if ( $resultat->numRows() == 0 ) {
-
 
1251
	      $nouvel_ordre = 1;
-
 
1252
    }
-
 
1253
    else {
-
 
1254
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
1255
    	$nouvel_ordre = $ligne->max_ordre + 1;
-
 
1256
    }
-
 
1257
 
-
 
1258
    // 1 : insertion information traduction pere (si inexistant)
-
 
1259
    
-
 
1260
    $requete =  'SELECT * '.
-
 
1261
                'FROM gen_site_relation '.
-
 
1262
                'WHERE gsr_id_site_01 = ' .$aso_valeurs['gs_id_site'] .' '.
-
 
1263
                'AND gsr_id_site_01 = gsr_id_site_02 '.
-
 
1264
                'AND gsr_id_valeur =1  '; // 1 = "avoir traduction"
-
 
1265
                
-
 
1266
    $resultat = $db->query($requete) ;
-
 
1267
    if (DB::isError($resultat)) {
-
 
1268
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
1269
    }
-
 
1270
    if ( $resultat->numRows() == 0 ) {
-
 
1271
    
-
 
1272
		$requete =  'INSERT INTO gen_site_relation '.
-
 
1273
		            'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
-
 
1274
		            'gsr_id_site_02 = '.$aso_valeurs['gs_id_site'].', '.
-
 
1275
		            'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
-
 
1276
		            'gsr_ordre = 1 ';
-
 
1277
		$resultat = $db->query($requete);
-
 
1278
		if (DB::isError($resultat)) {
-
 
1279
		    die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
1280
		}
-
 
1281
		$nouvel_ordre = 2;
-
 
1282
    }    
-
 
1283
 
-
 
1284
 
-
 
1285
    // 2 : insertion information traduction site en cours (si inexistant ?) (et la mise a jour, c'est ailleurs
-
 
1286
    // dans les mises à jour
-
 
1287
    
-
 
1288
    $requete =  'INSERT INTO gen_site_relation '.
-
 
1289
                'SET gsr_id_site_01 = '. $aso_valeurs['gs_id_site'].', '.
-
 
1290
                'gsr_id_site_02 = '.$id_site.', '.
-
 
1291
                'gsr_id_valeur = 1, '. // 1 = "avoir traduction"
-
 
1292
                'gsr_ordre = '.$nouvel_ordre;
-
 
1293
    $resultat = $db->query($requete);
-
 
1294
    if (DB::isError($resultat)) {
-
 
1295
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
1296
    }
-
 
1297
        
-
 
1298
  
-
 
1299
    // Gestion du site par défaut
-
 
1300
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
-
 
1301
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
-
 
1302
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
1303
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
-
 
1304
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
-
 
1305
        if (DB::isError($resultat_supr_defaut)) {
-
 
1306
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
-
 
1307
        }
-
 
1308
        
-
 
1309
        // Requete d'insertion de la relations site par défaut
-
 
1310
        $requete =  'INSERT INTO gen_site_relation '.
-
 
1311
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
1312
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
1313
                    'gsr_id_valeur = 101, '.
-
 
1314
                    'gsr_ordre = NULL ';
-
 
1315
        $resultat = $db->query($requete);
-
 
1316
        if (DB::isError($resultat)) {
-
 
1317
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
1318
        }
-
 
1319
    }
-
 
1320
    
-
 
1321
    // Gestion des sites externes
-
 
1322
    if ($id_type_site == '103') {
-
 
1323
        // Requete d'insertion des relations dans gen_site_relation
-
 
1324
        $requete =  'INSERT INTO gen_site_relation '.
-
 
1325
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
1326
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
1327
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
-
 
1328
                    'gsr_ordre = NULL ';
-
 
1329
        $resultat = $db->query($requete);
-
 
1330
        if (DB::isError($resultat)) {
-
 
1331
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
1332
        }
-
 
1333
    }
-
 
1334
    
-
 
1335
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
-
 
1336
    return $message;
-
 
1337
}
798
}
1338
 
799
 
1339
 
800
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
1340
/** Fonction ADMIN_modifierSite() - Modifie un site de Papyrus.
801
*
1341
*
802
* Cette fonction modifie un site géré par Papyrus.
1342
* Cette fonction modifie un site géré par Papyrus.
Line 1162... Line 1702...
1162
}
1702
}
Line 1163... Line 1703...
1163
 
1703
 
1164
// +- Fin du code source  --------------------------------------------------------------------------------+
1704
// +- Fin du code source  --------------------------------------------------------------------------------+
1165
/*
1705
/*
-
 
1706
* $Log: not supported by cvs2svn $
-
 
1707
* Revision 1.25.2.2  2006/02/28 14:02:10  ddelon
-
 
1708
* Finition multilinguisme
-
 
1709
*
-
 
1710
* Revision 1.25.2.1  2006/01/19 21:26:20  ddelon
-
 
1711
* Multilinguisme site + bug ftp
-
 
1712
*
-
 
1713
* Revision 1.25  2005/10/17 13:48:59  jp_milcent
-
 
1714
* Ajout d'un espace après le texte "Dernière modification par".
1166
* $Log: not supported by cvs2svn $
1715
*
1167
* Revision 1.24  2005/09/23 14:32:54  florian
1716
* Revision 1.24  2005/09/23 14:32:54  florian
1168
* compatibilité XHTML + correction interface
1717
* compatibilité XHTML + correction interface
1169
*
1718
*
1170
* Revision 1.23  2005/09/20 17:01:22  ddelon
1719
* Revision 1.23  2005/09/20 17:01:22  ddelon