Subversion Repositories Applications.papyrus

Rev

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

Rev 410 Rev 422
Line 19... Line 19...
19
// |                                                                                                      |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: adme_menu_commun.fonct.php,v 1.17 2005-07-08 22:01:25 ddelon Exp $
24
// CVS : $Id: adme_menu_commun.fonct.php,v 1.18 2005-07-18 16:14:32 ddelon Exp $
25
/**
25
/**
26
* Application de gestion des menus communs
26
* Application de gestion des menus communs
27
*
27
*
28
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus communs.
28
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus communs.
29
* Par menus communs, nous entendons tous les menus devant paraitre sur l'ensemble des pages de plusieurs site,
29
* Par menus communs, nous entendons tous les menus devant paraitre sur l'ensemble des pages de plusieurs site,
Line 36... Line 36...
36
//Autres auteurs :
36
//Autres auteurs :
37
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
37
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
38
*@author        David Delon <david.delon@clapas.net>
38
*@author        David Delon <david.delon@clapas.net>
39
*@author        Laurent COUDOUNEAU <lc@gsite.org>
39
*@author        Laurent COUDOUNEAU <lc@gsite.org>
40
*@copyright     Tela-Botanica 2000-2004
40
*@copyright     Tela-Botanica 2000-2004
41
*@version       $Revision: 1.17 $ $Date: 2005-07-08 22:01:25 $
41
*@version       $Revision: 1.18 $ $Date: 2005-07-18 16:14:32 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
Line 53... Line 53...
53
 
53
 
54
 
54
 
55
// +------------------------------------------------------------------------------------------------------+
55
// +------------------------------------------------------------------------------------------------------+
56
// |                                           LISTE de FONCTIONS                                         |
56
// |                                           LISTE de FONCTIONS                                         |
57
// +------------------------------------------------------------------------------------------------------+
57
// +------------------------------------------------------------------------------------------------------+
58
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml
58
/** Fonction ADME_afficherListeMenuCommun () - Affiche un arbre de menu en xhtml
59
*
59
*
60
* Elle forme l'arbre des menus communs à administrer.
60
* Elle forme l'arbre des menus communs à administrer.
61
* Ancien nom : deployer_menu().
61
* Ancien nom : deployer_menu().
Line 224... Line 224...
224
    $url->removeQueryString('adme_action');
224
    $url->removeQueryString('adme_action');
225
    $url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_DESCENDRE);
225
    $url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_DESCENDRE);
226
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE.'">'.
226
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE.'">'.
227
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_COMMUN_DESCENDRE_ALT.'" />'.
227
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_COMMUN_DESCENDRE_ALT.'" />'.
228
                        '</a>&nbsp;'."\n";
228
                        '</a>&nbsp;'."\n";
-
 
229
                        
-
 
230
    $url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_DIMINUER);
-
 
231
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DIMINUER_TITLE.'">'.
-
 
232
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_COMMUN_DIMINUER_ALT.'" />'.
-
 
233
                        '</a>&nbsp;'."\n";
-
 
234
    $url->removeQueryString('adme_action');
-
 
235
    $url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_AUGMENTER);
-
 
236
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE.'">'.
-
 
237
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_COMMUN_AUGMENTER_ALT.'" />'.
-
 
238
                        '</a>&nbsp;'."\n";
-
 
239
    
-
 
240
                        
229
    $url->removeQueryString('adme_action');
241
    $url->removeQueryString('adme_action');
230
    $url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_SUPPRIMER);
242
    $url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_SUPPRIMER);
231
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'.
243
    $xhtml_action .=    '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_SUPPRIMER_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'.
232
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT.'" />'.
244
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_COMMUN_SUPPRIMER_ALT.'" />'.
233
                        '</a>&nbsp;'."\n";
245
                        '</a>&nbsp;'."\n";
Line 804... Line 816...
804
    
816
    
805
    $resultat = $db->query($requete);
817
    $resultat = $db->query($requete);
806
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
818
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
Line -... Line 819...
-
 
819
}
-
 
820
 
-
 
821
function ADME_indenterMenuCommun($db, $adme_site_id, $adme_menu_id, $bln_diminuer) {
-
 
822
 
-
 
823
    //-------------------------------------------------------------------------------------------------------------------
-
 
824
    // Récupération d'information sur le site de ce menu.
-
 
825
    $objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
-
 
826
    
-
 
827
    if ($objet_site == false) {
-
 
828
        die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'.
-
 
829
            'Id du site : '. $adme_site_id .'<br />'.
-
 
830
            'Ligne n° : '. __LINE__ .'<br />'.
-
 
831
            'Fichier n° : '. __FILE__ .'<br />');
-
 
832
    }
-
 
833
    
-
 
834
    //-------------------------------------------------------------------------------------------------------------------
-
 
835
    // Récupération d'informations sur les relations du menu courant.
-
 
836
    $ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1');
-
 
837
    if ($ligne_menu_courant_relation == false) {
-
 
838
        die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'.
-
 
839
            'Identifiant menu : '. $adme_menu_id .'<br />'.
-
 
840
            'Identifiant valeur relation : 1 <br />'.
-
 
841
            'Ligne n° : '. __LINE__ .'<br />'.
-
 
842
            'Fichier n° : '. __FILE__ .'<br />');
-
 
843
    }
-
 
844
    
-
 
845
    
-
 
846
    	
-
 
847
    //-------------------------------------------------------------------------------------------------------------------
-
 
848
    // Récupération de l'identifiant du menu pére
-
 
849
     
-
 
850
    $id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
-
 
851
    if ($id_pere === false) {
-
 
852
        die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'.
-
 
853
            'Identifiant menu fils : '. $adme_menu_id .'<br />'.
-
 
854
            'Ligne n° : '. __LINE__ .'<br />'.
-
 
855
            'Fichier n° : '. __FILE__ .'<br />');
-
 
856
    }
-
 
857
	    
-
 
858
	if ($bln_diminuer) {
-
 
859
	    
-
 
860
	    // Diminution d'un niveau 
-
 
861
	    
-
 
862
	    if ($id_pere) {
-
 
863
	    	
-
 
864
			 // Récupération de l'identifiant du menu grand pére, sera le nouveau pere
-
 
865
			  
-
 
866
		    $id_grand_pere = GEN_lireIdentifiantMenuPere($id_pere);
-
 
867
		    
-
 
868
		    if ($id_grand_pere === false) {
-
 
869
		        die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'.
-
 
870
		            'Identifiant menu fils : '. $adme_menu_id .'<br />'.
-
 
871
		            'Ligne n° : '. __LINE__ .'<br />'.
-
 
872
		            'Fichier n° : '. __FILE__ .'<br />');
-
 
873
		    }
-
 
874
		    
-
 
875
		    // Récupération d'informations sur les relations du menu pere
-
 
876
		    
-
 
877
		    $ligne_menu_pere_relation = GEN_lireInfoMenuRelation($db, $id_pere, '1');
-
 
878
		    
-
 
879
	    	if ($ligne_menu_pere_relation == false) {
-
 
880
		        die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'.
-
 
881
		            'Identifiant menu : '. $adme_menu_id .'<br />'.
-
 
882
		            'Identifiant valeur relation : 1 <br />'.
-
 
883
		            'Ligne n° : '. __LINE__ .'<br />'.
-
 
884
		            'Fichier n° : '. __FILE__ .'<br />');
-
 
885
		    }
-
 
886
	    
-
 
887
			    	
-
 
888
		    //-------------------------------------------------------------------------------------------------------------------
-
 
889
		    // Recherche d'information sur le menu suivant le menu pere
-
 
890
		    //-------------------------------------------------------------------------------------------------------------------
-
 
891
		    
-
 
892
		    $requete =  'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
-
 
893
	                'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
894
	                'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
-
 
895
	                'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
-
 
896
	                'AND gm_ce_site = 0 '.// les menus communs ne sont pas liés à un site!
-
 
897
	                'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun""
-
 
898
	                'AND GMR01.gmr_id_menu_02 = '.$id_grand_pere.' '.
-
 
899
	                'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
-
 
900
				    'AND GMR01.gmr_ordre > '.$ligne_menu_pere_relation->gmr_ordre.' '.
-
 
901
				    'ORDER BY GMR01.gmr_ordre DESC';
-
 
902
	        
-
 
903
		    
-
 
904
		    $resultat_menu = $db->query($requete);
-
 
905
		    
-
 
906
		    (DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
-
 
907
		    
-
 
908
		    $ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
-
 
909
		    $resultat_menu->free();
-
 
910
		    
-
 
911
		    //-------------------------------------------------------------------------------------------------------------------
-
 
912
		    // Si la requete ne retourne rien nous ne faisons rien. 
-
 
913
		    if (! $ligne_menu) {
-
 
914
		        $no=$ligne_menu_pere_relation->gmr_ordre+1;
-
 
915
		    }
-
 
916
		    else {
-
 
917
		    	$no=$ligne_menu->nouvel_ordre+1;
-
 
918
		    }
-
 
919
		    
-
 
920
			// Mise à jour pere menu courant
-
 
921
		   	$requete =  'UPDATE gen_menu_relation SET '.
-
 
922
		                'gmr_id_menu_02 =  '.$id_grand_pere.' ,'.
-
 
923
		                'gmr_ordre = '.$no.' '.
-
 
924
		                'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
-
 
925
		                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
-
 
926
		    
-
 
927
			$resultat_update = $db->query($requete);
-
 
928
		    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
-
 
929
		    
-
 
930
		    
-
 
931
		    	    
-
 
932
	    }
-
 
933
	}	    
-
 
934
	else {
-
 
935
 
-
 
936
	    $requete =  'SELECT GMR01.gmr_id_menu_01 '.
-
 
937
	                'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
938
	                'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
-
 
939
	                'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
-
 
940
	                'AND gm_ce_site = 0 '.// les menus communs ne sont pas liés à un site!
-
 
941
	                'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
-
 
942
	                'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
-
 
943
	                'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père"
-
 
944
        			'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '.
-
 
945
                    'ORDER BY GMR01.gmr_ordre DESC';
-
 
946
    
-
 
947
	    $resultat_menu = $db->query($requete);
-
 
948
    	(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
-
 
949
 
-
 
950
	    $ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);			    	
-
 
951
	    $resultat_menu->free();
-
 
952
	    //-------------------------------------------------------------------------------------------------------------------
-
 
953
	    // Si la requete ne retourne rien nous ne faisons rien.
-
 
954
	    if (! $ligne_menu) {
-
 
955
	        return null;
-
 
956
	    }
-
 
957
    	
-
 
958
    	//----------------------------------------------------------------------------
-
 
959
		// Recherche dernier fils
-
 
960
		
-
 
961
		$requete =  'SELECT GMR01.gmr_ordre '.
-
 
962
                'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
963
                'WHERE GMR01.gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' '.
-
 
964
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
-
 
965
                'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
-
 
966
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
-
 
967
                'AND GMR02.gmr_id_valeur = 102 '.// 100 = menu type "commun"
-
 
968
                'ORDER BY GMR01.gmr_ordre DESC';
-
 
969
    
-
 
970
		$resultat = $db->query($requete);
-
 
971
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
972
 
-
 
973
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
974
		$no = $ligne->gmr_ordre + 1;
-
 
975
		$resultat->free();
-
 
976
 
-
 
977
	    
-
 
978
		// Mise à jour pere menu courant
-
 
979
	   	$requete =  'UPDATE gen_menu_relation SET '.
-
 
980
	                'gmr_id_menu_02 =  '.$ligne_menu->gmr_id_menu_01.' ,'.
-
 
981
	                'gmr_ordre = '.$no.' '.
-
 
982
	                'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
-
 
983
	                'AND gmr_id_valeur = 1';// 1 = relation menu "père"
-
 
984
	    
-
 
985
		$resultat_update = $db->query($requete);
-
 
986
	    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
-
 
987
 
-
 
988
    	
-
 
989
    }
-
 
990
}
-
 
991
 
807
}
992
 
808
 
993
 
809
/** Fonction ADME_supprimerMenuCommun() - Supprime un menu classique.
994
/** Fonction ADME_supprimerMenuCommun() - Supprime un menu commun.
810
*
995
*
811
* Supprime de la base de données de Génésia toutes les traces du menu classiques
996
* Supprime de la base de données de Génésia toutes les traces du menu commun
812
* passé en paramètre.
997
* passé en paramètre.
813
* Ancien nom : deleteUpper()
998
* Ancien nom : deleteUpper()
814
*
999
*
815
* @param  PEAR::DB l'objet Pear DB de connexion à la base de données.
1000
* @param  PEAR::DB l'objet Pear DB de connexion à la base de données.
816
* @param  integer   l'identifiant du menu à supprimer
1001
* @param  integer   l'identifiant du menu à supprimer
817
* @return void     le menu classique est supprimé de la base de données.
1002
* @return void     le menu commun est supprimé de la base de données.
818
*/
1003
*/
819
function ADME_supprimerMenuCommun($db, $id_menu_a_supprimer)
1004
function ADME_supprimerMenuCommun($db, $id_menu_a_supprimer)
820
{
1005
{
Line 888... Line 1073...
888
 
1073
 
889
 
1074
 
890
/* +--Fin du code ----------------------------------------------------------------------------------------+
1075
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
1076
*
-
 
1077
* $Log: not supported by cvs2svn $
-
 
1078
* Revision 1.17  2005/07/08 22:01:25  ddelon
891
*
1079
* Copyright
892
* $Log: not supported by cvs2svn $
1080
*
893
* Revision 1.16  2005/05/26 16:13:08  jpm
1081
* Revision 1.16  2005/05/26 16:13:08  jpm
894
* Correction taille éditeur: passage en text
1082
* Correction taille éditeur: passage en text
895
*
1083
*