Subversion Repositories Applications.papyrus

Rev

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

Rev 754 Rev 1033
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: pap_menu.fonct.php,v 1.26 2006-03-02 10:49:49 ddelon Exp $
22
// CVS : $Id: pap_menu.fonct.php,v 1.27 2006-10-16 15:50:10 ddelon Exp $
23
/**
23
/**
24
* Bibliothèque de fonction sur le rendu.
24
* Bibliothèque de fonction sur le rendu.
25
*
25
*
26
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
26
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
27
*
27
*
Line 30... Line 30...
30
//Auteur original :
30
//Auteur original :
31
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
31
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
//Autres auteurs :
32
//Autres auteurs :
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
34
*@copyright     Tela-Botanica 2000-2004
34
*@copyright     Tela-Botanica 2000-2004
35
*@version       $Revision: 1.26 $ $Date: 2006-03-02 10:49:49 $
35
*@version       $Revision: 1.27 $ $Date: 2006-10-16 15:50:10 $
36
// +------------------------------------------------------------------------------------------------------+
36
// +------------------------------------------------------------------------------------------------------+
37
*/
37
*/
Line 38... Line 38...
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
Line 686... Line 686...
686
            $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
686
            $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
687
        }
687
        }
688
    }
688
    }
689
    return $aso_site_menus;
689
    return $aso_site_menus;
690
}
690
}
-
 
691
 
-
 
692
 
-
 
693
// Code menu --> Identifiant
-
 
694
// Identifiant menu --> Identifiant version originale
-
 
695
// Identifiant menu --> Identifiant version par défaut
-
 
696
// Identifiant menu --> Contenu 
-
 
697
// Identifiant menu --> Contenu version originale
-
 
698
// Identifiant menu --> Contenu version par défaut
-
 
699
 
-
 
700
// Identifiant menu --> Identifiant version originale
-
 
701
 
-
 
702
/** Fonction GEN_rechercheMenuIdentifiant() - Recherche code menu à partir de l'identifiant d'un site
-
 
703
*
-
 
704
*
-
 
705
* @param  object objet Pear de connection à la base de données.
-
 
706
*/
-
 
707
 
-
 
708
function GEN_rechercheMenuIdentifiant($db, $id_menu) {
-
 
709
	
-
 
710
	
-
 
711
		$requete =  'SELECT  gm_code_num   '.
-
 
712
        	        'FROM gen_menu  '.
-
 
713
            	    'WHERE gm_id_menu =  '.$id_menu.' ';
-
 
714
		$resultat = $db->query($requete);
-
 
715
		
-
 
716
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
717
 
-
 
718
 
-
 
719
		$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
-
 
720
		
-
 
721
		return $ligne->gm_code_num;
-
 
722
		
-
 
723
}
-
 
724
 
-
 
725
/** Fonction GEN_rechercheMenuCode() - Recherche identifiant à partir du code menu d'un site et en fonction de la langue
-
 
726
*
-
 
727
*
-
 
728
* @param  object objet Pear de connection à la base de données.
-
 
729
* @param  code menu
-
 
730
* @return identifiant menu
-
 
731
*/
-
 
732
 
-
 
733
function GEN_rechercheMenuCode($db, $code_menu) {
-
 
734
 
-
 
735
// Si identifiant existe pour la langue choisie : retour identifiant
-
 
736
// Si identifiant n'existe pas : retour identifiant de la langue par defaut :
-
 
737
	  // Recherche de l'identifiant par defaut 
-
 
738
      // Recherche de l'identifiant de la langue du site
-
 
739
      // Recherche de l'identifiant par defaut 
-
 
740
	
-
 
741
	    $id_langue = $GLOBALS['_GEN_commun']['i18n'];
-
 
742
    
-
 
743
	    if (isset($id_langue) && ($id_langue!='')) {
-
 
744
			$langue_test=$id_langue;
-
 
745
		} else {
-
 
746
			$langue_test=GEN_I18N_ID_DEFAUT;
-
 
747
		}
-
 
748
	
-
 
749
		$requete =  'SELECT gm_id_menu, gm_code_num   '.
-
 
750
        	        'FROM gen_menu  '.
-
 
751
            	    'WHERE gm_code_num =  '.$code_menu.' '.
-
 
752
                	'AND gm_ce_i18n = "'.$langue_test.'" ';
-
 
753
		$resultat = $db->query($requete);
-
 
754
 
-
 
755
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
756
		
-
 
757
		if ( $resultat->numRows() > 0 ) {
-
 
758
			$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
-
 
759
			return $ligne->gm_id_menu;
-
 
760
		}
-
 
761
		else {
-
 
762
				// Recherche defaut :
-
 
763
 
-
 
764
				$requete =  'SELECT gm_id_menu, gm_code_num   '.
-
 
765
	               'FROM gen_menu  '.
-
 
766
	               'WHERE gm_code_num =  '.$code_menu.' ';
-
 
767
	               'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
-
 
768
	
-
 
769
				$resultat = $db->query($requete);
-
 
770
 
-
 
771
				(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
772
				
-
 
773
				if ( $resultat->numRows() > 0 ) {
-
 
774
					$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
775
					if ($langue_test!=GEN_I18N_ID_DEFAUT) {
-
 
776
						return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu);
-
 
777
						
-
 
778
					}
-
 
779
					else {
-
 
780
						return $ligne->gm_id_menu;
-
 
781
					}
-
 
782
					
-
 
783
				}
-
 
784
		}
-
 
785
 
-
 
786
 
-
 
787
}
-
 
788
 
-
 
789
/* Fonction GEN_rechercheContenu
-
 
790
 *
-
 
791
 */
-
 
792
 
-
 
793
 function GEN_rechercheContenu($db,$id_menu,$type_fetch=DB_FETCHMODE_OBJECT) {
-
 
794
 	
-
 
795
	$requete  =  'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
-
 
796
	               			'FROM gen_menu_contenu  '.
-
 
797
			                'WHERE gmc_ce_menu = '.$id_menu.' '.
-
 
798
	    		            'AND gmc_ce_type_contenu in (1,2) '.
-
 
799
	            		    'AND gmc_bool_dernier = 1';
-
 
800
	
-
 
801
	$resultat = $db->query($requete);
-
 
802
	
-
 
803
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
804
	
-
 
805
	
-
 
806
	// Rien trouvé ? : Pas encore de contenu 
-
 
807
	// Recherche identifiant par défaut 
-
 
808
	
-
 
809
	if ( $resultat->numRows() == 0 ) {
-
 
810
 
-
 
811
		$id_menu_defaut=GEN_rechercheMenuIdentifiantVersionParDefaut($db,$id_menu);
-
 
812
		
-
 
813
		$requete  =  'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
-
 
814
	               			'FROM gen_menu_contenu  '.
-
 
815
			                'WHERE gmc_ce_menu = '.$id_menu_defaut.' '.
-
 
816
	    		            'AND gmc_ce_type_contenu in (1,2) '.
-
 
817
	            		    'AND gmc_bool_dernier = 1';
-
 
818
	
-
 
819
		
-
 
820
		$resultat = $db->query($requete);
-
 
821
	
-
 
822
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
823
	
-
 
824
 
-
 
825
		if ( $resultat->numRows() == 0 ) {
-
 
826
			// Toujours rien ? 
-
 
827
			// Tentative recherche dans la langue du site par defaut 
-
 
828
		
-
 
829
			$id_menu_origine=GEN_rechercheMenuIdentifiantVersionOriginale($db,$id_menu);
-
 
830
		
-
 
831
			$requete  =  'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
-
 
832
	               			'FROM gen_menu_contenu  '.
-
 
833
			                'WHERE gmc_ce_menu = '.$id_menu_origine.' '.
-
 
834
	    		            'AND gmc_ce_type_contenu in (1,2) '.
-
 
835
	            		    'AND gmc_bool_dernier = 1';
-
 
836
	
-
 
837
		
-
 
838
			$resultat = $db->query($requete);
-
 
839
	
-
 
840
			(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
841
		
-
 
842
		}
-
 
843
		
-
 
844
	
-
 
845
			
-
 
846
	}
-
 
847
	
-
 
848
	$ligne_contenu = $resultat->fetchRow($type_fetch);
-
 
849
 
-
 
850
	return $ligne_contenu;	
-
 
851
 
-
 
852
 }
-
 
853
 
-
 
854
/** Fonction GEN_rechercheMenuIdentifiantVersionOriginale() - Recherche identifiant de la version orginale d'un menu
-
 
855
*
-
 
856
*
-
 
857
* @param  object objet Pear de connection à la base de données.
-
 
858
* @param  identifiant menu
-
 
859
* @return identifiant menu
-
 
860
*/
-
 
861
 
-
 
862
function GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu) {
-
 
863
	
-
 
864
	$requete  = 'SELECT gmr_id_menu_01 '.
-
 
865
				'FROM gen_menu_relation '.
-
 
866
				'WHERE gmr_id_menu_02  = ' . $id_menu .' '.
-
 
867
				'AND gmr_id_valeur = 2  '; // 2 = "avoir traduction"
-
 
868
				
-
 
869
	
-
 
870
	$resultat = $db->query($requete) ;
-
 
871
	  	
-
 
872
	if (DB::isError($resultat)) {
-
 
873
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
874
	}
-
 
875
	
-
 
876
		
-
 
877
	if ($resultat->numRows() > 0) {
-
 
878
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
879
		return $ligne->gmr_id_menu_01;
-
 
880
	}
-
 
881
	else {
-
 
882
		return $id_menu;
-
 
883
	}
-
 
884
	
-
 
885
}
-
 
886
		
-
 
887
 
-
 
888
/** Fonction GEN_rechercheMenuIdentifiantVersionParDefaut() - Recherche identifiant par defaut d'un menu
-
 
889
*
-
 
890
*
-
 
891
* @param  object objet Pear de connection à la base de données.
-
 
892
* @param  identifiant menu
-
 
893
* @return identifiant menu
-
 
894
*/
-
 
895
 
-
 
896
 
-
 
897
function GEN_rechercheMenuIdentifiantVersionParDefaut($db, $id_menu) {
-
 
898
 
-
 
899
	$identifiantVersionOrginale=GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
-
 
900
 
-
 
901
	$requete  = 'SELECT gmr_id_menu_02 '.
-
 
902
				'FROM gen_menu_relation '.
-
 
903
				'WHERE gmr_id_menu_01  = ' . $identifiantVersionOrginale .' '.
-
 
904
				'AND gmr_id_valeur = 105  '; // 105
-
 
905
	
-
 
906
	$resultat = $db->query($requete) ;
-
 
907
	  	
-
 
908
	if (DB::isError($resultat)) {
-
 
909
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
-
 
910
	}
-
 
911
		
-
 
912
	if ($resultat->numRows() > 0) {
-
 
913
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
914
		return $ligne->gmr_id_menu_02;
-
 
915
	}
-
 
916
	else {
-
 
917
		return $identifiantVersionOrginale;
-
 
918
	}
-
 
919
				
-
 
920
		
-
 
921
 
-
 
922
}
-
 
923
 
-
 
924
 
-
 
925
 
-
 
926
 
691
/* +--Fin du code ---------------------------------------------------------------------------------------+
927
/* +--Fin du code ---------------------------------------------------------------------------------------+
692
* $Log: not supported by cvs2svn $
928
* $Log: not supported by cvs2svn $
-
 
929
* Revision 1.26  2006/03/02 10:49:49  ddelon
-
 
930
* Fusion branche multilinguisme dans branche principale
-
 
931
*
693
* Revision 1.25.2.1  2005/12/20 14:40:24  ddelon
932
* Revision 1.25.2.1  2005/12/20 14:40:24  ddelon
694
* Fusion Head vers Livraison
933
* Fusion Head vers Livraison
695
*
934
*
696
* Revision 1.25  2005/11/08 17:43:46  ddelon
935
* Revision 1.25  2005/11/08 17:43:46  ddelon
697
* Bug Nouveaute ne s'affichant pas pour les menu communs
936
* Bug Nouveaute ne s'affichant pas pour les menu communs