Subversion Repositories Applications.papyrus

Rev

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

Rev 239 Rev 257
Line 18... Line 18...
18
// |                                                                                                      |
18
// |                                                                                                      |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
20
// | License along with this library; if not, write to the Free Software                                  |
20
// | License along with this library; if not, write to the Free Software                                  |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// +------------------------------------------------------------------------------------------------------+
22
// +------------------------------------------------------------------------------------------------------+
23
// CVS : $Id: adsi_site.fonct.php,v 1.15 2005-01-04 19:52:50 alex Exp $
23
// CVS : $Id: adsi_site.fonct.php,v 1.16 2005-02-17 16:44:55 florian Exp $
24
/**
24
/**
25
* Bibliothèque de fonctions d'admininistration des projets
25
* Bibliothèque de fonctions d'admininistration des projets
26
*
26
*
27
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
27
* Contient un ensemble de fonctions permettant à l'application Administrateur de Papyrus, de modifier des informations
28
* sur les projets (=sites gérés par Papyrus).
28
* sur les projets (=sites gérés par Papyrus).
Line 33... Line 33...
33
*@author        Laurent COUDOUNEAU <lc@gsite.org>
33
*@author        Laurent COUDOUNEAU <lc@gsite.org>
34
//Autres auteurs :
34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@copyright     Tela-Botanica 2000-2004
37
*@copyright     Tela-Botanica 2000-2004
38
*@version       $Revision: 1.15 $ $Date: 2005-01-04 19:52:50 $
38
*@version       $Revision: 1.16 $ $Date: 2005-02-17 16:44:55 $
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
*/
40
*/
Line 41... Line 41...
41
 
41
 
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
Line 169... Line 169...
169
* @param  string   un message à destination de l'utilisateur.
169
* @param  string   un message à destination de l'utilisateur.
170
* return  string   le code XHTML à retourner.
170
* return  string   le code XHTML à retourner.
171
*/
171
*/
172
function ADMIN_afficherFormSite($db, $url, $aso_valeurs = array(), $message = '')
172
function ADMIN_afficherFormSite($db, $url, $aso_valeurs = array(), $message = '')
173
{
173
{
174
    
-
 
175
    // Nous cherchons à savoir si nous somme en modification
174
    //initialisation des valeurs
176
    $aso_valeurs['modification'] = false;
175
    $aso_valeurs['modification'] = false;
-
 
176
    $aso_valeurs['defaut'] = false;
-
 
177
    $aso_valeurs['type_site_externe'] = 0;
-
 
178
    // Nous cherchons à savoir si nous somme en modification
177
    if (isset($aso_valeurs['form_sites_modifier'])) {
179
    if (isset($aso_valeurs['form_sites_modifier'])) {
178
        $site_id = $aso_valeurs['form_sites_id_site'];
180
        $site_id = $aso_valeurs['form_sites_id_site'];
179
        // Requete pour récupérer les informations sur le site à modifier
181
        // Requete pour récupérer les informations sur le site à modifier
180
        $requete =  'SELECT * '.
182
        $requete =  'SELECT * '.
181
                    'FROM gen_site '.
183
                    'FROM gen_site '.
Line 194... Line 196...
194
                    'AND gsr_id_site_01 = gsr_id_site_02';
196
                    'AND gsr_id_site_01 = gsr_id_site_02';
195
        $resultat = $db->query($requete);
197
        $resultat = $db->query($requete);
196
        if (DB::isError($resultat)) {
198
        if (DB::isError($resultat)) {
197
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
199
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
198
        }
200
        }
199
        $aso_valeurs['defaut'] = 0;
-
 
200
        $aso_valeurs['type_site_externe'] = 0;
-
 
-
 
201
        
201
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
202
        $tab_type = GEN_retournerTableauTypeSiteExterne($db);
202
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
203
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
203
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
204
            if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
204
                $aso_valeurs['defaut'] = true;
205
                $aso_valeurs['defaut'] = true;
205
            }
206
            }
Line 572... Line 573...
572
* @param  int      identifiant de l'administrateur réalisant cette création.
573
* @param  int      identifiant de l'administrateur réalisant cette création.
573
* @return string retourne un message en cas de succès ou d'échec.
574
* @return string retourne un message en cas de succès ou d'échec.
574
*/
575
*/
575
function ADMIN_enregistrerSite($db, $aso_valeurs, $id_admin)
576
function ADMIN_enregistrerSite($db, $aso_valeurs, $id_admin)
576
{
577
{
577
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
-
 
578
    if ($id_site == false) {
-
 
579
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
-
 
580
                    'Ligne n° : '. __LINE__ .'<br />'.
-
 
581
                    'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
582
        return $message;
-
 
583
    }
-
 
584
    // Nous vérifions si nous avons à faire à un site externe.
578
    // Nous vérifions si nous avons à faire à un site externe.
585
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
579
    $id_type_site = '102';// par défaut on conscidére que c'est un site "principal"
586
    $requete_complement = ', gs_url = NULL';
-
 
587
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
580
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
588
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
-
 
589
        $id_type_site = '103';// c'est un site "externe"
581
        $id_type_site = '103';// c'est un site "externe"
590
    }
582
    }
Line 591... Line -...
591
    
-
 
592
    // Requete d'insertion des infos d'un site dans gen_site
-
 
593
    $requete =  'INSERT INTO gen_site '.
-
 
594
                'SET gs_id_site = '.$id_site.', '.
-
 
595
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
-
 
596
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
-
 
597
                'gs_fichier_squelette = "defaut.html", '.
-
 
598
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
-
 
599
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
-
 
600
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
-
 
601
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
-
 
602
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
-
 
603
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
-
 
604
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
-
 
605
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
-
 
606
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
-
 
607
                'gs_ce_admin = '.$id_admin.
-
 
608
                $requete_complement;
-
 
609
    $resultat = $db->query($requete);
-
 
610
    if (DB::isError($resultat)) {
-
 
611
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
612
    }
-
 
613
    
-
 
614
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
-
 
615
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
-
 
616
                'FROM gen_site_relation '.
-
 
617
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
618
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
-
 
619
    $resultat = $db->query($requete) ;
-
 
620
    if (DB::isError($resultat)) {
-
 
621
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
622
    }
-
 
623
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
624
    $nouvel_ordre = $ligne->max_ordre + 1;
-
 
625
    
-
 
626
    // Requete d'insertion des relations dans gen_site_relation
-
 
627
    $requete =  'INSERT INTO gen_site_relation '.
-
 
628
                'SET gsr_id_site_01 = '.$id_site.', '.
-
 
629
                'gsr_id_site_02 = '.$id_site.', '.
-
 
630
                'gsr_id_valeur = '.$id_type_site.', '.
-
 
631
                'gsr_ordre = '.$nouvel_ordre;
-
 
632
    $resultat = $db->query($requete);
-
 
633
    if (DB::isError($resultat)) {
-
 
634
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
635
    }
-
 
636
    
-
 
637
    // Gestion du site par défaut
-
 
638
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
-
 
639
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
640
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
-
 
641
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
642
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
-
 
643
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
-
 
644
        if (DB::isError($resultat_supr_defaut)) {
-
 
645
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
-
 
646
        }
-
 
647
        
-
 
648
        // Requete d'insertion de la relations site par défaut
-
 
649
        $requete =  'INSERT INTO gen_site_relation '.
-
 
650
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
651
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
652
                    'gsr_id_valeur = 101, '.
-
 
653
                    'gsr_ordre = NULL ';
-
 
654
        $resultat = $db->query($requete);
-
 
655
        if (DB::isError($resultat)) {
-
 
656
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
657
        }
-
 
658
    }
-
 
659
    
-
 
660
    // Gestion des sites externes
-
 
661
    if ($id_type_site == '103') {
-
 
662
        // Requete d'insertion des relations dans gen_site_relation
-
 
663
        $requete =  'INSERT INTO gen_site_relation '.
-
 
664
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
665
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
666
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
-
 
667
                    'gsr_ordre = NULL ';
-
 
668
        $resultat = $db->query($requete);
-
 
669
        if (DB::isError($resultat)) {
-
 
670
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
671
        }
-
 
672
    }
-
 
673
    
583
    
674
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
584
    // Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie
675
    // par l'utilisateur dans le fichier de config avancée.
585
    // par l'utilisateur dans le fichier de config avancée.
676
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
586
    $tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']);
677
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
587
    $tab_rep_site = array(  GEN_DOSSIER_IMAGE,
Line 786... Line 696...
786
                        'Fichier n° : '. __FILE__ .'<br /></p>';
696
                        'Fichier n° : '. __FILE__ .'<br /></p>';
787
                return $message;
697
                return $message;
788
        }
698
        }
789
        $objet_pear_ftp->disconnect();
699
        $objet_pear_ftp->disconnect();
790
    }
700
    }
-
 
701
    
-
 
702
    $id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
-
 
703
    if ($id_site == false) {
-
 
704
        $message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
-
 
705
                    'Ligne n° : '. __LINE__ .'<br />'.
-
 
706
                    'Fichier n° : '. __FILE__ .'<br /></p>';
-
 
707
        return $message;
-
 
708
    }
-
 
709
    
-
 
710
    // Modification de la requete si nous avons à faire à un site externe.
-
 
711
    $requete_complement = ', gs_url = NULL';
-
 
712
    if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
-
 
713
        $requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
-
 
714
    }
-
 
715
    
-
 
716
    // Requete d'insertion des infos d'un site dans gen_site
-
 
717
    $requete =  'INSERT INTO gen_site '.
-
 
718
                'SET gs_id_site = '.$id_site.', '.
-
 
719
                'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
-
 
720
                'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
-
 
721
                'gs_fichier_squelette = "defaut.html", '.
-
 
722
                'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
-
 
723
                'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
-
 
724
                'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
-
 
725
                'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
-
 
726
                'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
-
 
727
                'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
-
 
728
                'gs_description = "'.$aso_valeurs['gs_description'].'", '.
-
 
729
                'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '.
-
 
730
                'gs_date_creation = "'.date('Y-m-d H:i:s').'", '.
-
 
731
                'gs_ce_admin = '.$id_admin.
-
 
732
                $requete_complement;
-
 
733
    $resultat = $db->query($requete);
-
 
734
    if (DB::isError($resultat)) {
-
 
735
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
736
    }
-
 
737
    
-
 
738
    // Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe"
-
 
739
    $requete =  'SELECT MAX(gsr_ordre) AS max_ordre '.
-
 
740
                'FROM gen_site_relation '.
-
 
741
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
742
                'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe"
-
 
743
    $resultat = $db->query($requete) ;
-
 
744
    if (DB::isError($resultat)) {
-
 
745
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
746
    }
-
 
747
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
748
    $nouvel_ordre = $ligne->max_ordre + 1;
-
 
749
    
-
 
750
    // Requete d'insertion des relations dans gen_site_relation
-
 
751
    $requete =  'INSERT INTO gen_site_relation '.
-
 
752
                'SET gsr_id_site_01 = '.$id_site.', '.
-
 
753
                'gsr_id_site_02 = '.$id_site.', '.
-
 
754
                'gsr_id_valeur = '.$id_type_site.', '.
-
 
755
                'gsr_ordre = '.$nouvel_ordre;
-
 
756
    $resultat = $db->query($requete);
-
 
757
    if (DB::isError($resultat)) {
-
 
758
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
759
    }
-
 
760
    
-
 
761
    // Gestion du site par défaut
-
 
762
    if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) {
-
 
763
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
764
        $requete_supr_defaut =  'DELETE FROM gen_site_relation '.
-
 
765
                                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
-
 
766
                                'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
-
 
767
        $resultat_supr_defaut = $db->query($requete_supr_defaut);
-
 
768
        if (DB::isError($resultat_supr_defaut)) {
-
 
769
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
-
 
770
        }
-
 
771
        
-
 
772
        // Requete d'insertion de la relations site par défaut
-
 
773
        $requete =  'INSERT INTO gen_site_relation '.
-
 
774
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
775
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
776
                    'gsr_id_valeur = 101, '.
-
 
777
                    'gsr_ordre = NULL ';
-
 
778
        $resultat = $db->query($requete);
-
 
779
        if (DB::isError($resultat)) {
-
 
780
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
781
        }
-
 
782
    }
-
 
783
    
-
 
784
    // Gestion des sites externes
-
 
785
    if ($id_type_site == '103') {
-
 
786
        // Requete d'insertion des relations dans gen_site_relation
-
 
787
        $requete =  'INSERT INTO gen_site_relation '.
-
 
788
                    'SET gsr_id_site_01 = '.$id_site.', '.
-
 
789
                    'gsr_id_site_02 = '.$id_site.', '.
-
 
790
                    'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
-
 
791
                    'gsr_ordre = NULL ';
-
 
792
        $resultat = $db->query($requete);
-
 
793
        if (DB::isError($resultat)) {
-
 
794
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
-
 
795
        }
-
 
796
    }
-
 
797
    
791
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
798
    $message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
792
    return $message;
799
    return $message;
793
}
800
}
Line 794... Line 801...
794
 
801
 
Line 1157... Line 1164...
1157
}
1164
}
Line 1158... Line 1165...
1158
 
1165
 
1159
// +- Fin du code source  --------------------------------------------------------------------------------+
1166
// +- Fin du code source  --------------------------------------------------------------------------------+
1160
/*
1167
/*
-
 
1168
* $Log: not supported by cvs2svn $
-
 
1169
* Revision 1.15  2005/01/04 19:52:50  alex
-
 
1170
* correction de bug de copie de répertoire récursif de PEAR.
1161
* $Log: not supported by cvs2svn $
1171
*
1162
* Revision 1.14  2004/12/03 19:22:53  jpm
1172
* Revision 1.14  2004/12/03 19:22:53  jpm
1163
* Gestion des types de sites externes gérés par Papyrus.
1173
* Gestion des types de sites externes gérés par Papyrus.
1164
*
1174
*
1165
* Revision 1.13  2004/12/03 16:37:34  jpm
1175
* Revision 1.13  2004/12/03 16:37:34  jpm