Subversion Repositories Applications.papyrus

Rev

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

Rev 1357 Rev 1364
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.35 2007-04-20 10:42:42 neiluj Exp $
22
// CVS : $Id: adsi_site.fonct.php,v 1.36 2007-04-20 13:48:31 alexandre_tb Exp $
23
/**
23
/**
24
* Bibliothèque de fonctions d'admininistration des projets
24
* Bibliotheque de fonctions d'admininistration des projets
25
*
25
*
26
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
26
* Contient un ensemble de fonctions permettant a l'application Administrateur de Papyrus, de modifier des informations
27
* sur les projets (=sites gérés par Papyrus).
27
* sur les projets (=sites geres par Papyrus).
28
*
28
*
29
*@package Admin_site
29
*@package Admin_site
30
*@subpackage Fonctions
30
*@subpackage Fonctions
31
//Auteur original :
31
//Auteur original :
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
33
//Autres auteurs :
33
//Autres auteurs :
34
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
34
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
35
*@author        Laurent COUDOUNEAU <lc@gsite.org>
35
*@author        Laurent COUDOUNEAU <lc@gsite.org>
36
*@copyright     Tela-Botanica 2000-2004
36
*@copyright     Tela-Botanica 2000-2004
37
*@version       $Revision: 1.35 $ $Date: 2007-04-20 10:42:42 $
37
*@version       $Revision: 1.36 $ $Date: 2007-04-20 13:48:31 $
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
39
*/
39
*/
Line 40... Line 40...
40
 
40
 
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
// |                                            ENTÊTE du PROGRAMME                                       |
42
// |                                            ENTÊTE du PROGRAMME                                       |
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
if (GEN_FTP_UTILISE) {
44
if (GEN_FTP_UTILISE) {
45
    /** Inclusion bibliothèque de PEAR gérant le FTP.*/
45
    /** Inclusion bibliotheque de PEAR gerant le FTP.*/
46
    require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
46
    require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
Line 47... Line 47...
47
}
47
}
48
 
48
 
49
// +------------------------------------------------------------------------------------------------------+
49
// +------------------------------------------------------------------------------------------------------+
50
// |                                            CORPS du PROGRAMME                                        |
50
// |                                            CORPS du PROGRAMME                                        |
51
// +------------------------------------------------------------------------------------------------------+
51
// +------------------------------------------------------------------------------------------------------+
52
/** Fonction ADMIN_afficherListeSites()- Génère le xhtml permettant de choisir un site parmis une liste.
52
/** Fonction ADMIN_afficherListeSites()- Genere le xhtml permettant de choisir un site parmis une liste.
53
*
53
*
54
* Cette fonction fournie une liste des sites principaux gérés par Papyrus.
54
* Cette fonction fournie une liste des sites principaux geres par papyrus.
55
*
55
*
56
* @param  string   l'objet Pear DB.
56
* @param  string   l'objet Pear DB.
57
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
57
* @param  string   l'url de la page à laquelle renvoyer le formulaire.
58
* @param  string   un message important à destination de l'utilisateur.
58
* @param  string   un message important à destination de l'utilisateur.
59
* return  string   le code XHTML à retourner.
59
* return  string   le code XHTML a retourner.
60
*/
60
*/
Line 61... Line 61...
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
61
function ADMIN_afficherFormListeSites(&$db, $url, $message = '')
Line 111... Line 111...
111
    			   $liste_site[]=$ligne;
111
    			   $liste_site[]=$ligne;
112
    		}
112
    		}
113
    }
113
    }
114
    $resultat->free();
114
    $resultat->free();
Line 115... Line 115...
115
    
115
    
116
    // Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue
116
    // Si la langue en cours n'est pas la langue par defaut, recherche des sites ayant comme langue
Line 117... Line 117...
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
Line 280... Line 280...
280
*/
280
*/
281
function ADMIN_validerFormListesSites(&$db, $aso_valeurs)
281
function ADMIN_validerFormListesSites(&$db, $aso_valeurs)
282
{
282
{
283
    $message = '';
283
    $message = '';
Line 284... Line 284...
284
    
284
    
285
    // Validation des données du formulaire
285
    // Validation des donnees du formulaire
286
    if (empty($aso_valeurs['form_sites_id_site'])) {
286
    if (empty($aso_valeurs['form_sites_id_site'])) {
287
        $message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
287
        $message .= '<p class="pap_erreur">Vous devez d\'abord sélectionner un site.</p>';
Line 288... Line 288...
288
    }
288
    }
Line 292... Line 292...
292
 
292
 
293
/** Fonction ADMIN_afficherFormSite()- Génère un formulaire pour gen_site.
293
/** Fonction ADMIN_afficherFormSite()- Génère un formulaire pour gen_site.
294
*
294
*
295
* Cette fonction retourne un formulaire pour modification ou pour ajout.
295
* Cette fonction retourne un formulaire pour modification ou pour ajout.
296
*
296
*
297
* @param  string   l'objet pear de connexion à la base de données.
297
* @param  string   l'objet pear de connexion a la base de donnees.
298
* @param  string   l'url à laquelle renvoyer le formulaire.
298
* @param  string   l'url a laquelle renvoyer le formulaire.
299
* @param  string   le tableau contenant les valeurs du formulaire.
299
* @param  string   le tableau contenant les valeurs du formulaire.
300
* @param  string   un message à destination de l'utilisateur.
300
* @param  string   un message a destination de l'utilisateur.
301
* return  string   le code XHTML à retourner.
301
* return  string   le code XHTML a retourner.
302
*/
302
*/
303
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
303
function ADMIN_afficherFormSite(&$db, $url, $aso_valeurs = array(), $message = '')
304
{
304
{
305
    // Initialisation des valeurs
305
    // Initialisation des valeurs
306
    $sortie = '';
306
    $sortie = '';
307
    $aso_valeurs['modification'] = false;
307
    $aso_valeurs['modification'] = false;
308
    $aso_valeurs['traduction'] = false;
308
    $aso_valeurs['traduction'] = false;
309
    $aso_valeurs['defaut'] = false;
309
    $aso_valeurs['defaut'] = false;
310
    $aso_valeurs['type_site_externe'] = 0;
310
    $aso_valeurs['type_site_externe'] = 0;
311
    // Nous cherchons à savoir si nous somme en modification
311
    // Nous cherchons a savoir si nous somme en modification
312
    if ((isset($aso_valeurs['form_sites_modifier']))  || (isset($aso_valeurs['form_sites_traduire'])))  {
312
    if ((isset($aso_valeurs['form_sites_modifier']))  || (isset($aso_valeurs['form_sites_traduire'])))  {
313
    	if ((isset($aso_valeurs['form_sites_modifier']))) { 
313
    	if ((isset($aso_valeurs['form_sites_modifier']))) { 
314
        	$as_val['modification'] = true;
314
        	$as_val['modification'] = true;
315
        	$as_val['traduction'] = false;
315
        	$as_val['traduction'] = false;
Line 344... Line 344...
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
      	 }
Line 348... Line 348...
348
	        
348
	        
349
	        // Requete pour récupérer les informations sur le site à modifier
349
	        // Requete pour recuperer les informations sur le site a modifier
350
	        $requete =  'SELECT * '.
350
	        $requete =  'SELECT * '.
351
	                    'FROM gen_site '.
351
	                    'FROM gen_site '.
352
	                    'WHERE gs_id_site = '.$site_id;
352
	                    'WHERE gs_id_site = '.$site_id;
353
	        $resultat = $db->query($requete);
353
	        $resultat = $db->query($requete);
Line 356... Line 356...
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();
Line 360... Line 360...
360
        
360
        
361
        // Requete pour récupérer les informations issues des relations du site à modifier
361
        // Requete pour recuperer les informations issues des relations du site a modifier
362
        $requete =  'SELECT * '.
362
        $requete =  'SELECT * '.
363
                    'FROM gen_site_relation '.
363
                    'FROM gen_site_relation '.
364
                    'WHERE gsr_id_site_01 = '.$site_id.' '.
364
                    'WHERE gsr_id_site_01 = '.$site_id.' '.
365
                    'AND gsr_id_site_01 = gsr_id_site_02';
365
                    'AND gsr_id_site_01 = gsr_id_site_02';
Line 368... Line 368...
368
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
368
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
369
        }
369
        }
Line 370... Line 370...
370
        
370
        
371
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
371
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
372
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
372
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
373
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
373
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par defaut
374
                $aso_valeurs['defaut'] = true;
374
                $aso_valeurs['defaut'] = true;
375
            }
375
            }
376
            foreach ($tab_type as $cle => $val) {
376
            foreach ($tab_type as $cle => $val) {
377
                if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe à Papyrus
377
                if ($ligne->gsr_id_valeur == $val['id']) {// 20x = type de site externe a Papyrus
378
                    $aso_valeurs['type_site_externe'] = $val['id'];
378
                    $aso_valeurs['type_site_externe'] = $val['id'];
379
                }
379
                }
380
            }
380
            }
381
        }
381
        }
Line 393... Line 393...
393
        
393
        
394
        
394
        
395
    } else if (isset($aso_valeurs['gs_id_site'])) {
395
    } else if (isset($aso_valeurs['gs_id_site'])) {
396
        $aso_valeurs['modification'] = true;
396
        $aso_valeurs['modification'] = true;
397
    }
397
    }
398
    // débogage :
398
    // Debogage :
399
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
399
    //$GLOBALS['_DEBOGAGE_'] .= '<pre>'.print_r($aso_valeurs, true).'</pre>';
400
    //-------------------------------------------------------------------------------------------------------------------
400
    //-------------------------------------------------------------------------------------------------------------------
401
    // Information précédent le formulaire (en modification)
401
    // Information precedent le formulaire (en modification)
402
    if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
402
    if ((isset($aso_valeurs['modification'])||isset($aso_valeurs['traduction']))&&isset($aso_valeurs['gs_id_site'])) {
403
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
403
        $sortie .= '<p>'.'Identifiant de ce site : '.'<span id="adsi_site_id">'.$aso_valeurs['gs_id_site'].'</span></p>'."\n";
404
    }
404
    }
Line 464... Line 464...
464
    $aso_options = array();
464
    $aso_options = array();
465
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
465
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
466
        // Test pour connaître le type d'authentification.
466
        // Test pour connaître le type d'authentification.
467
        $type = '';
467
        $type = '';
468
        if ($ligne->gsa_ce_type_auth == '1' ) {
468
        if ($ligne->gsa_ce_type_auth == '1' ) {
469
            $type = 'Base de données';
469
            $type = 'Base de donn&eacute;es';
470
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
470
        } else if ($ligne->gsa_ce_type_auth == '2' ) {
471
            $type = 'LDAP';
471
            $type = 'LDAP';
472
        }
472
        }
473
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
473
        $aso_options[$ligne->gsa_id_auth] = $ligne->gsa_nom.' ('.$type.')';
474
    }
474
    }
Line 502... Line 502...
502
                        $aso_options[$fichier] = $fichier;
502
                        $aso_options[$fichier] = $fichier;
503
                    }
503
                    }
504
                }
504
                }
505
            }
505
            }
506
        } else {
506
        } else {
507
            // ouverture des squelettes présent dans le dossier du site 
507
            // ouverture des squelettes present dans le dossier du site 
508
            // création de l'objet pear ftp
508
            // creation de l'objet pear ftp
509
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
509
            $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
510
            // création de la connexion
510
            // creation de la connexion
511
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
511
            $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
512
            // identification
512
            // identification
513
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
513
            $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
514
            // Gestion des erreurs ftp
514
            // Gestion des erreurs ftp
515
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
515
            if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
516
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
516
                die('ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
517
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
517
                    'Serveur : '. GEN_FTP_SERVEUR .'<br />'.
518
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
518
                    'Utilisateur : '. GEN_FTP_UTILISATEUR .'<br />'.
519
                    'Ligne n° : '. __LINE__ .'<br />'.
519
                    'Ligne n&deg; : '. __LINE__ .'<br />'.
520
                    'Fichier n° : '. __FILE__ .'<br />');
520
                    'Fichier n&deg; : '. __FILE__ .'<br />');
521
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
521
                    //'Message erreur de connection : '.$ftp_conn->getMessage().'<br />'.
522
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
522
                    //'Message erreur de login : '.$ftp_login_result->getMessage());
523
            }
523
            }
524
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
524
            $chemin_squelettes =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
525
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
525
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP;
Line 614... Line 614...
614
    $id = 'defaut';
614
    $id = 'defaut';
615
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
615
    $aso_attributs = array('id' => $id, 'tabindex' => $tab_index++);
616
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
616
    if (isset($aso_valeurs[$id]) && $aso_valeurs[$id] === true) {
617
        $aso_attributs['checked'] = 'checked';
617
        $aso_attributs['checked'] = 'checked';
618
    }
618
    }
619
    $label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>';
619
    $label = '<label for="'.$id.'">'.'En faire le site par d&eacute;faut : '.'</label>';
620
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
620
    $form->addElement('checkbox', $id, $label, null, $aso_attributs);
Line 621... Line 621...
621
    
621
    
622
    // Groupe site externe
622
    // Groupe site externe
623
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
623
    $tab_type = GEN_retournerTableauTypeSiteExterne($db);
Line 637... Line 637...
637
    $form->addElement('text', $id, $label, $aso_attributs);
637
    $form->addElement('text', $id, $label, $aso_attributs);
Line 638... Line 638...
638
    
638
    
639
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
639
    $partie_site_fin = '</ul>'."\n".'</fieldset>'."\n";
Line 640... Line 640...
640
    $form->addElement('html', $partie_site_fin);
640
    $form->addElement('html', $partie_site_fin);
641
    
641
    
Line 642... Line 642...
642
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Entête par défaut des pages du site</legend>'."\n".'<ul>'."\n";
642
    $partie_entete_debut = '<fieldset>'."\n".'<legend>Ent&egrave;te par d&eacute;faut des pages du site</legend>'."\n".'<ul>'."\n";
643
    $form->addElement('html', $partie_entete_debut);
643
    $form->addElement('html', $partie_entete_debut);
644
    
644
    
645
    $id = 'gs_titre';
645
    $id = 'gs_titre';
646
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
646
    $aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++, 'size' => 45, 'maxlength' => 255, 'value' => ADSI_TITRE_SITE);
Line 647... Line 647...
647
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
647
    $label = '<label for="'.$id.'">'.ADSI_TITRE_SITE.' : '.'</label>';
648
    $form->addElement('text', $id, $label, $aso_attributs);
648
    $form->addElement('text', $id, $label, $aso_attributs);
649
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
649
    $form->addRule('gs_titre', 'Un titre est requis pour le site !', 'required', '', 'client');
650
    
650
    
651
    $id = 'gs_mots_cles';
651
    $id = 'gs_mots_cles';
652
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
652
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'rows' => 3, 'cols' => 45);
653
    $label = '<label for="'.$id.'">'.'Mots-clés : '.'</label>';
653
    $label = '<label for="'.$id.'">'.'Mots-cl&eacute;s : '.'</label>';
Line 654... Line 654...
654
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
654
    $zone_mots_cles = $form->createElement('textarea', $id, $label, $aso_attributs);
655
    $zone_mots_cles->setValue('mots-clés du site');
655
    $zone_mots_cles->setValue('mots-cl&eacute;s du site');
656
    $form->addElement($zone_mots_cles);
656
    $form->addElement($zone_mots_cles);
657
    $form->addRule($id, 'Des mots clés sont requis pour le site !', 'required', '', 'client');
657
    $form->addRule($id, 'Des mots cl&eacute;s sont requis pour le site !', 'required', '', 'client');
Line 682... Line 682...
682
        if (DB::isError($resultat_admin)) {
682
        if (DB::isError($resultat_admin)) {
683
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
683
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_admin->getMessage(), $requete_admin));
684
        }
684
        }
685
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
685
        $ligne_admin = $resultat_admin->fetchRow(DB_FETCHMODE_OBJECT);
686
        if (isset($ligne_admin)) {
686
        if (isset($ligne_admin)) {
687
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Dernière modification par '.
687
        	$info_admin =   '<p class="info">Site créé le '.$aso_valeurs['gs_date_creation'].'. Derni&egrave;re modification par '.
688
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
688
                        $ligne_admin->ga_prenom.' '.$ligne_admin->ga_nom.'.'.'</p>';
689
        	$form->addElement('html', $info_admin);
689
        	$form->addElement('html', $info_admin);
690
        	$form->addElement('hidden', 'gs_ce_admin');
690
        	$form->addElement('hidden', 'gs_ce_admin');
691
        	$form->addElement('hidden', 'gs_date_creation');
691
        	$form->addElement('hidden', 'gs_date_creation');
692
        }
692
        }
Line 714... Line 714...
714
                $bouton_annuler."\n".
714
                $bouton_annuler."\n".
715
                $bouton_effacer."\n".
715
                $bouton_effacer."\n".
716
                '</p>'."\n";
716
                '</p>'."\n";
717
    $form->addElement('html', $boutons);
717
    $form->addElement('html', $boutons);
Line 718... Line 718...
718
    
718
    
719
    // Instanciation des valeurs par défaut du formulaire
719
    // Instanciation des valeurs par defaut du formulaire
Line 720... Line 720...
720
    $form->setDefaults($aso_valeurs);
720
    $form->setDefaults($aso_valeurs);
721
    
721
    
722
    // Javascript pour la validation côté client
-
 
723
    $regles_javascript = $form->getValidationScript();
-
 
724
    // Suppression des balises déjà créées par GEN_stockerCodeScript()
-
 
725
    // Le code ci-dessous devrait être utilisé si on arrive à empêcher Quickform de l'ajouter lui-même!
-
 
726
    /*
-
 
727
    $regles_javascript = ereg_replace ( '<script type="text\/javascript">', '', $regles_javascript);
-
 
728
    $regles_javascript = ereg_replace ( '<!--', '', $regles_javascript);
-
 
729
    $regles_javascript = ereg_replace ( '\/\/-->', '', $regles_javascript);
-
 
730
    $regles_javascript = ereg_replace ( '<\/script>', '', $regles_javascript);
-
 
Line 731... Line 722...
731
    GEN_stockerCodeScript($regles_javascript);
722
    // Javascript pour la validation cote client
732
    */
723
    $regles_javascript = $form->getValidationScript();
733
    
724
    
Line 734... Line 725...
734
    // Note de fin de formulaire
725
    // Note de fin de formulaire
735
    $form->setRequiredNote('Indique les champs obligatoires');
726
    $form->setRequiredNote('Indique les champs obligatoires');
736
    $sortie .= $form->toHTML()."\n";
727
    $sortie .= $form->toHTML()."\n";
Line 737... Line 728...
737
    
728
    
738
    // Construction de la page.
729
    // Construction de la page.
739
    return ADMIN_contruirePage($titre, $sortie, $message);
730
    return ADMIN_contruirePage($titre, $sortie, $message);
740
}
731
}
741
 
732
 
742
/** Fonction ADMIN_validerFormAjouterSite() - Valide les données issues du formulaire pour gen_site.
733
/** Fonction ADMIN_validerFormAjouterSite() - Valide les donnees issues du formulaire pour gen_site.
743
*
734
*
744
* Cette fonction valide les données à ajouter dans la table gen_site.
735
* Cette fonction valide les donnees a ajouter dans la table gen_site.
745
*
736
*
746
* @param  string   l'objet pear de connexion à la base de données.
737
* @param  string   l'objet pear de connexion a la base de données.
747
* @param  string   le tableau contenant les valeurs du formulaire.
738
* @param  string   le tableau contenant les valeurs du formulaire.
Line 748... Line 739...
748
* @return string   retourne les messages d'erreurs sinon rien.
739
* @return string   retourne les messages d'erreurs sinon rien.
749
*/
740
*/
750
function ADMIN_validerFormSite(&$db, $aso_valeurs)
741
function ADMIN_validerFormSite(&$db, $aso_valeurs)
751
{
742
{
752
    $message = '';
743
    $message = '';
753
    
744
    
754
    // Validation des données du formulaire
745
    // Validation des donnees du formulaire
755
    if (empty($aso_valeurs['gs_nom'])) {
746
    if (empty($aso_valeurs['gs_nom'])) {
756
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas être vide.</p>';
747
        $message .= '<p class="pap_erreur">Le champ "Nom" ne doit pas &ecirc;tre vide.</p>';
757
    }
748
    }
758
    if (empty($aso_valeurs['gs_code_alpha'])) {
749
    if (empty($aso_valeurs['gs_code_alpha'])) {
759
        $message .= '<p class="pap_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>';
750
        $message .= '<p class="pap_erreur">Le champ "Code alphanum&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
760
    }
751
    }
761
    if ($aso_valeurs['gs_code_num'] == '') {
752
    if ($aso_valeurs['gs_code_num'] == '') {
Line 762... Line 753...
762
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est considéré comme vide!
753
        // Note: ne pas utilisez empty() car si on veut saisir 0, cela est considéré comme vide!
763
        $message .= '<p class="pap_erreur">Le champ "Code numérique" ne doit pas être vide.</p>';
754
        $message .= '<p class="pap_erreur">Le champ "Code num&eacute;rique" ne doit pas &ecirc;tre vide.</p>';
Line 788... Line 779...
788
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
779
	        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
789
	    }
780
	    }
Line 790... Line 781...
790
	    
781
	    
791
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
782
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
792
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
783
	        if ($ligne->gs_code_num == $aso_valeurs['gs_code_num']) {
793
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
784
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_num'].'" pour le champ "Code num&eacute;rique" existe d&eacute;j&agrave;.</p>';
794
	        }
785
	        }
795
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
786
	        if ($ligne->gs_code_alpha == $aso_valeurs['gs_code_alpha']) {
796
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
787
	            $message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gs_code_alpha'].'" pour le champ "Code alphanum&eacute;rique" existe d&eacute;j&agrave;.</p>';
797
	        }
788
	        }
Line 798... Line 789...
798
	    }
789
	    }
Line 804... Line 795...
804
    else {
795
    else {
805
    // Refuser si plus de traduction disponible !	
796
    // Refuser si plus de traduction disponible !	
806
    }
797
    }
Line 807... Line 798...
807
    
798
    
808
    if (empty($aso_valeurs['gs_titre'])) {
799
    if (empty($aso_valeurs['gs_titre'])) {
809
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas être vide.</p>';
800
        $message .= '<p class="pap_erreur">Le champ "Titre" ne doit pas &ecirc;tre vide.</p>';
810
    }
801
    }
811
    if (empty($aso_valeurs['gs_mots_cles'])) {
802
    if (empty($aso_valeurs['gs_mots_cles'])) {
812
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas être vide.</p>';
803
        $message .= '<p class="pap_erreur">Le champ "Mots clés" ne doit pas &ecirc;tre vide.</p>';
813
    }
804
    }
814
    if (empty($aso_valeurs['gs_description'])) {
805
    if (empty($aso_valeurs['gs_description'])) {
815
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas être vide.</p>';
806
        $message .= '<p class="pap_erreur">Le champ "Description" ne doit pas &ecirc;tre vide.</p>';
816
    }
807
    }
817
    if (empty($aso_valeurs['gs_auteur'])) {
808
    if (empty($aso_valeurs['gs_auteur'])) {
818
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>';
809
        $message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas &ecirc;tre vide.</p>';
819
    }
810
    }
820
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
811
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) {
821
        $message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>';
812
        $message .= '<p class="pap_erreur">'.'Vous avez d&eacute;sign&eacute; ce site comme &eacute;tant externe. Il est n&eacute;cessaire de saisir son URL!'.'</p>';
822
    }
813
    }
823
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
814
    if (isset($aso_valeurs['externe']) && $aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) {
824
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
815
        $message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'.
825
                    'Vous considérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>';
816
                    'Vous conscid&eacute;rez donc ce site comme &eacute;tant externe. Il est n&eacute;cessaire de cocher la case "oui"!'.'</p>';
826
    }
817
    }
827
    return $message;
818
    return $message;
Line 828... Line 819...
828
}
819
}
Line 839... Line 830...
839
* @param  int      identifiant de l'administrateur réalisant cette création.
830
* @param  int      identifiant de l'administrateur réalisant cette création.
840
* @return string retourne un message en cas de succès ou d'échec.
831
* @return string retourne un message en cas de succès ou d'échec.
841
*/
832
*/
842
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
833
function ADMIN_enregistrerSite(&$db, $aso_valeurs, $id_admin)
843
{
834
{
844
    // Nous vérifions si nous avons à faire à un site externe.
835
    // Nous verifions si nous avons a faire a un site externe.
845
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
836
    $id_type_site = '102';// par defaut on considère que c'est un site "principal"
846
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
837
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
847
        $id_type_site = '103';// c'est un site "externe"
838
        $id_type_site = '103';// c'est un site "externe"
848
    }
839
    }
Line 849... Line 840...
849
    
840
    
850
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
841
    // Ajout des repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
851
    // par l'utilisateur dans le fichier de config avancée.
842
    // par l'utilisateur dans le fichier de config avancee.
852
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
843
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
853
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
844
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
854
                            GEN_DOSSIER_STYLE,
845
                            GEN_DOSSIER_STYLE,
855
                            GEN_DOSSIER_SCRIPT,
846
                            GEN_DOSSIER_SCRIPT,
Line 862... Line 853...
862
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
853
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
863
                $vieux_umask = umask(0);
854
                $vieux_umask = umask(0);
864
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
855
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
865
                umask($vieux_umask);
856
                umask($vieux_umask);
866
                if ($resultat == false) {
857
                if ($resultat == false) {
867
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
858
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire.<br />'.
868
                                'Répertoire : '. $chemin_repertoire .'<br />'.
859
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
869
                                'Ligne n° : '. __LINE__ .'<br />'.
860
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
870
                                'Fichier n° : '. __FILE__ .'<br /></p>';
861
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
871
                    return $message;
862
                    return $message;
872
                }
863
                }
873
            }
864
            }
874
        }
865
        }
875
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
866
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
876
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
867
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
877
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
868
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
878
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
869
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
879
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
870
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
880
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
871
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
881
                        'Fichier : '. $chemin_squelette_site .'<br />'.
872
                        'Fichier : '. $chemin_squelette_site .'<br />'.
882
                        'Ligne n° : '. __LINE__ .'<br />'.
873
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
883
                        'Fichier n° : '. __FILE__ .'<br /></p>';
874
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
884
            return $message;
875
            return $message;
885
        }
876
        }
886
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
877
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
887
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
878
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
888
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
879
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
889
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
880
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
890
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
881
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
891
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
882
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de style par d&eacute;faut.<br />'.
892
                        'Fichier : '. $chemin_style_site .'<br />'.
883
                        'Fichier : '. $chemin_style_site .'<br />'.
893
                        'Ligne n° : '. __LINE__ .'<br />'.
884
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
894
                        'Fichier n° : '. __FILE__ .'<br /></p>';
885
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
895
            return $message;
886
            return $message;
896
        }
887
        }
897
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
888
    } else if (GEN_FTP_UTILISE && $id_type_site != '103') {  // 103 est le type "site externe"
898
        // Création d'une connection ftp avec Net_FTP de PEAR
889
        // Creation d'une connection ftp avec Net_FTP de PEAR
899
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
890
        // voir http://pear.php.net/manual/fr/package.networking.net-ftp.php
Line 900... Line 891...
900
        
891
        
901
        // création de l'objet pear ftp
892
        // creation de l'objet pear ftp
902
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
893
        $objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
903
        // création de la connexion
894
        // creation de la connexion
904
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
895
        $ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
905
        // identification
896
        // identification
906
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
897
        $ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
907
        // Gestion des erreurs ftp
898
        // Gestion des erreurs ftp
908
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
899
        if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {
909
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
900
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
910
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
901
                        'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
911
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
902
                        'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
912
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
903
                        'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
913
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
904
                        'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
914
                        'Ligne n° : '. __LINE__ .'<br />'.
905
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
915
                        'Fichier n° : '. __FILE__ .'<br /><p>';
906
                        'Fichier n&deg; : '. __FILE__ .'<br /><p>';
916
            return $message;
907
            return $message;
917
        }
908
        }
Line 918... Line 909...
918
        $resultat = $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
909
        $resultat = $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
919
        
910
        
920
       if (PEAR::isError($resultat)) {
911
       if (PEAR::isError($resultat)) {
921
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
912
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
922
                        'Répertoire : '. PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'] .'<br />'.
913
                        'R&eacute;pertoire : '. PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'] .'<br />'.
923
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
914
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
924
                        'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
915
                        'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
925
                        'Ligne n° : '. __LINE__ .'<br />'.
916
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
926
                        'Fichier n° : '. __FILE__ .'<br /></p>';
917
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
927
            return $message;
918
            return $message;
928
        }
919
        }
929
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
920
        //$objet_pear_ftp->cd(PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha']) ;
930
        foreach ($tab_rep_langue as $nom_rep_langue) {
921
        foreach ($tab_rep_langue as $nom_rep_langue) {
931
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
922
            $objet_pear_ftp->mkdir(PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue) ;
Line 932... Line 923...
932
            foreach ($tab_rep_site as $nom_rep_site) {
923
            foreach ($tab_rep_site as $nom_rep_site) {
933
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
924
                $chemin_repertoire =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$nom_rep_langue.GEN_SEP.$nom_rep_site;
934
                
925
                
935
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
926
                $resultat = $objet_pear_ftp->mkdir($chemin_repertoire) ;
936
                if (PEAR::isError($resultat)) {
927
                if (PEAR::isError($resultat)) {
937
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'.
928
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire par ftp.<br />'.
938
                                'Répertoire : '. $chemin_repertoire .'<br />'.
929
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
939
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
930
                                'Erreur origine : '. $resultat->getMessage() .'<br />'.
940
                                'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
931
                                'Informations de debogage : '.$resultat->getDebugInfo().'<br />'.
941
                                'Ligne n° : '. __LINE__ .'<br />'.
932
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
942
                                'Fichier n° : '. __FILE__ .'<br /></p>';
933
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
943
                    return $message;
934
                    return $message;
944
                }
935
                }
Line 950... Line 941...
950
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
941
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
951
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
942
        $resultat = $objet_pear_ftp->put($chemin_squelette_defaut, $chemin_squelette_site, true, FTP_BINARY);
952
        if (PEAR::isError($resultat)) {
943
        if (PEAR::isError($resultat)) {
953
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
944
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le squelette defaut par ftp.<br />'.
954
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
945
                        'Fichier origine : '. $chemin_squelette_defaut .'<br />'.
955
                        'Fichier copié : '. $chemin_squelette_site .'<br />'.
946
                        'Fichier copi&eacute; : '. $chemin_squelette_site .'<br />'.
956
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
947
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
957
                        'Ligne n° : '. __LINE__ .'<br />'.
948
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
958
                        'Fichier n° : '. __FILE__ .'<br /></p>';
949
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
959
                return $message;
950
                return $message;
960
        }
951
        }
961
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
952
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
962
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
953
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
963
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
954
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
964
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
955
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
965
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
956
        $resultat = $objet_pear_ftp->put($chemin_style_defaut, $chemin_style_site, true, FTP_BINARY);
966
        if (PEAR::isError($resultat)) {
957
        if (PEAR::isError($resultat)) {
967
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
958
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
968
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
959
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
969
                        'Fichier copié : '. $chemin_style_site .'<br />'.
960
                        'Fichier copi&eacute; : '. $chemin_style_site .'<br />'.
970
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
961
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
971
                        'Ligne n° : '. __LINE__ .'<br />'.
962
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
972
                        'Fichier n° : '. __FILE__ .'<br /></p>';
963
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
973
                return $message;
964
                return $message;
974
        }
965
        }
Line 975... Line 966...
975
        
966
        
976
        $chemin_image_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
967
        $chemin_image_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
Line 979... Line 970...
979
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_IMAGE.GEN_SEP;
970
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_IMAGE.GEN_SEP;
980
        $resultat = $objet_pear_ftp->putRecursive($chemin_image_defaut, $chemin_image_site, false, FTP_BINARY);
971
        $resultat = $objet_pear_ftp->putRecursive($chemin_image_defaut, $chemin_image_site, false, FTP_BINARY);
981
        if (PEAR::isError($resultat)) {
972
        if (PEAR::isError($resultat)) {
982
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
973
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier les styles defaut par ftp.<br />'.
983
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
974
                        'Fichier origine : '. $chemin_style_defaut .'<br />'.
984
                        'Fichier copié : '. $chemin_style_site .'<br />'.
975
                        'Fichier copi&eacute; : '. $chemin_style_site .'<br />'.
985
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
976
                        'Erreur origine : '. $resultat->getMessage() .'<br />'.
986
                        'Ligne n° : '. __LINE__ .'<br />'.
977
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
987
                        'Fichier n° : '. __FILE__ .'<br /></p>';
978
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
988
                return $message;
979
                return $message;
989
        }
980
        }
Line 990... Line 981...
990
 
981
 
991
        
982
        
Line 992... Line 983...
992
        
983
        
993
        $objet_pear_ftp->disconnect();
984
        $objet_pear_ftp->disconnect();
994
    }
985
    }
995
    
986
    
996
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
987
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
997
    if ($id_site == false) {
988
    if ($id_site == false) {
998
        $message = '<p class="erreur"> ERREUR Papyrus admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
989
        $message = '<p class="erreur"> ERREUR papyrus admin : impossible de r&eacute;cup&eacute;rer un identifiant pour la table gen_site.<br />'.
Line 999... Line 990...
999
                    'Ligne n° : '. __LINE__ .'<br />'.
990
                    'Ligne n&deg; : '. __LINE__ .'<br />'.
1000
                    'Fichier n° : '. __FILE__ .'<br /></p>';
991
                    'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1001
        return $message;
992
        return $message;
1002
    }
993
    }
1003
    
994
    
Line 1027... Line 1018...
1027
    $resultat = $db->query($requete);
1018
    $resultat = $db->query($requete);
1028
    if (DB::isError($resultat)) {
1019
    if (DB::isError($resultat)) {
1029
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1020
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1030
    }
1021
    }
Line 1031... Line 1022...
1031
    
1022
    
1032
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
1023
    // Recherche du nouveau numero d'ordre de ce site "principal" ou "externe"
1033
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1024
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
1034
                'FROM gen_site_relation '.
1025
                'FROM gen_site_relation '.
1035
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1026
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
1036
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
1027
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
Line 1060... Line 1051...
1060
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1051
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
1061
        if (DB::isError($resultat_supr_defaut)) {
1052
        if (DB::isError($resultat_supr_defaut)) {
1062
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1053
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
1063
        }
1054
        }
Line 1064... Line 1055...
1064
        
1055
        
1065
        // Requete d'insertion de la relations site par défaut
1056
        // Requete d'insertion de la relations site par defaut
1066
        $requete =  'INSERT INTO gen_site_relation '.
1057
        $requete =  'INSERT INTO gen_site_relation '.
1067
                    'SET gsr_id_site_01 = '.$id_site.', '.
1058
                    'SET gsr_id_site_01 = '.$id_site.', '.
1068
                    'gsr_id_site_02 = '.$id_site.', '.
1059
                    'gsr_id_site_02 = '.$id_site.', '.
1069
                    'gsr_id_valeur = 101, '.
1060
                    'gsr_id_valeur = 101, '.
Line 1092... Line 1083...
1092
    return $message;
1083
    return $message;
1093
}
1084
}
Line 1094... Line 1085...
1094
 
1085
 
1095
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1086
/** Fonction ADMIN_traduireSite() - Traduire un site papyrus
1096
*
1087
*
1097
* Cette fonction traduit un site à Papyrus, c'est à dire :
1088
* Cette fonction traduit un site a Papyrus, c'est a dire :
1098
* - 1. Création des répertoire du projet en fonction du nom et des sous-répertoires.
1089
* - 1. Creation des repertoire du projet en fonction du nom et des sous-repertoires.
1099
* - 2. Insertion d'une ligne dans la table "gen_site".
1090
* - 2. Insertion d'une ligne dans la table "gen_site".
1100
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liées si nécessaire.
1091
* - 3. Insertion d'une ligne dans la table "gen_site_auth" et ses tables liees si necessaire.
1101
*
1092
*
1102
* @param  string   l'objet pear de connexion à la base de données.
1093
* @param  string   l'objet pear de connexion a la base de données.
1103
* @param  string   le tableau contenant les valeurs du formulaire.
1094
* @param  string   le tableau contenant les valeurs du formulaire.
1104
* @param  int      identifiant de l'administrateur réalisant cette création.
1095
* @param  int      identifiant de l'administrateur realisant cette création.
1105
* @return string retourne un message en cas de succès ou d'échec.
1096
* @return string retourne un message en cas de succes ou d'echec.
1106
*/
1097
*/
1107
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1098
function ADMIN_traduireSite(&$db, $aso_valeurs, $id_admin)
1108
{
1099
{
1109
    // Nous vérifions si nous avons à faire à un site externe.
1100
    // Nous verifions si nous avons a faire a un site externe.
1110
    $id_type_site = '102';// par défaut on considère que c'est un site "principal"
1101
    $id_type_site = '102';// par defaut on considere que c'est un site "principal"
1111
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1102
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
1112
        $id_type_site = '103';// c'est un site "externe"
1103
        $id_type_site = '103';// c'est un site "externe"
Line 1113... Line 1104...
1113
    }
1104
    }
1114
    
1105
    
1115
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
1106
    // Ajout des repertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante definie
1116
    // par l'utilisateur dans le fichier de config avancée.
1107
    // par l'utilisateur dans le fichier de config avancee.
1117
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1108
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
1118
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1109
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
1119
                            GEN_DOSSIER_STYLE,
1110
                            GEN_DOSSIER_STYLE,
Line 1127... Line 1118...
1127
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1118
                                        $nom_rep_langue.GEN_SEP.$nom_rep_site;
1128
                $vieux_umask = umask(0);
1119
                $vieux_umask = umask(0);
1129
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1120
                $resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP);
1130
                umask($vieux_umask);
1121
                umask($vieux_umask);
1131
                if ($resultat == false) {
1122
                if ($resultat == false) {
1132
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'.
1123
                    $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le r&eacute;pertoire.<br />'.
1133
                                'Répertoire : '. $chemin_repertoire .'<br />'.
1124
                                'R&eacute;pertoire : '. $chemin_repertoire .'<br />'.
1134
                                'Ligne n° : '. __LINE__ .'<br />'.
1125
                                'Ligne n&deg; : '. __LINE__ .'<br />'.
1135
                                'Fichier n° : '. __FILE__ .'<br /></p>';
1126
                                'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1136
                    return $message;
1127
                    return $message;
1137
                }
1128
                }
1138
            }
1129
            }
1139
        }
1130
        }
1140
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1131
        $chemin_squelette_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1141
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1132
                                    GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1142
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1133
        $chemin_squelette_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1143
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1134
                                    $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE;
1144
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1135
        if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) {
1145
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'.
1136
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de squellete par d&eacute;faut.<br />'.
1146
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1137
                        'Fichier : '. $chemin_squelette_site .'<br />'.
1147
                        'Ligne n° : '. __LINE__ .'<br />'.
1138
                        'Ligne n&deg; : '. __LINE__ .'<br />'.
1148
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1139
                        'Fichier n&deg; : '. __FILE__ .'<br /></p>';
1149
            return $message;
1140
            return $message;
1150
        }
1141
        }
1151
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1142
        $chemin_style_defaut =  PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP.
1152
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1143
                                GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1153
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1144
        $chemin_style_site =    PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.
1154
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1145
                                $aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE;
1155
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1146
        if (!copy($chemin_style_defaut, $chemin_style_site)) {
1156
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'.
1147
            $message =  '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de cr&eacute;er le fichier de style par défaut.<br />'.
1157
                        'Fichier : '. $chemin_style_site .'<br />'.
1148
                        'Fichier : '. $chemin_style_site .'<br />'.
1158
                        'Ligne n° : '. __LINE__ .'<br />'.
1149
                        'Ligne n° : '. __LINE__ .'<br />'.
1159
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1150
                        'Fichier n° : '. __FILE__ .'<br /></p>';
1160
            return $message;
1151
            return $message;
1161
        }
1152
        }
Line 1826... Line 1817...
1826
}
1817
}
Line 1827... Line 1818...
1827
    
1818
    
1828
// +- Fin du code source  --------------------------------------------------------------------------------+
1819
// +- Fin du code source  --------------------------------------------------------------------------------+
1829
/*
1820
/*
-
 
1821
* $Log: not supported by cvs2svn $
-
 
1822
* Revision 1.35  2007/04/20 10:42:42  neiluj
-
 
1823
* suite oubli, fix des derniers bugs FTP
1830
* $Log: not supported by cvs2svn $
1824
*
1831
* Revision 1.34  2007/04/20 09:21:41  neiluj
1825
* Revision 1.34  2007/04/20 09:21:41  neiluj
1832
* correction bug ftp création/suppression/modification de site
1826
* correction bug ftp création/suppression/modification de site
1833
* (changé PAP_FTP_RACINE en PAP_CHEMIN_RACINE)
1827
* (changé PAP_FTP_RACINE en PAP_CHEMIN_RACINE)
1834
* voir compatibilité chroot() du serveur FTP)
1828
* voir compatibilité chroot() du serveur FTP)