Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 1032 → Rev 1033

/trunk/papyrus/bibliotheque/fonctions/pap_menu.fonct.php
19,7 → 19,7
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: pap_menu.fonct.php,v 1.26 2006-03-02 10:49:49 ddelon Exp $
// CVS : $Id: pap_menu.fonct.php,v 1.27 2006-10-16 15:50:10 ddelon Exp $
/**
* Bibliothèque de fonction sur le rendu.
*
32,7 → 32,7
//Autres auteurs :
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.26 $ $Date: 2006-03-02 10:49:49 $
*@version $Revision: 1.27 $ $Date: 2006-10-16 15:50:10 $
// +------------------------------------------------------------------------------------------------------+
*/
 
688,8 → 688,247
}
return $aso_site_menus;
}
 
 
// Code menu --> Identifiant
// Identifiant menu --> Identifiant version originale
// Identifiant menu --> Identifiant version par défaut
// Identifiant menu --> Contenu
// Identifiant menu --> Contenu version originale
// Identifiant menu --> Contenu version par défaut
 
// Identifiant menu --> Identifiant version originale
 
/** Fonction GEN_rechercheMenuIdentifiant() - Recherche code menu à partir de l'identifiant d'un site
*
*
* @param object objet Pear de connection à la base de données.
*/
 
function GEN_rechercheMenuIdentifiant($db, $id_menu) {
$requete = 'SELECT gm_code_num '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu.' ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
 
$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
return $ligne->gm_code_num;
}
 
/** Fonction GEN_rechercheMenuCode() - Recherche identifiant à partir du code menu d'un site et en fonction de la langue
*
*
* @param object objet Pear de connection à la base de données.
* @param code menu
* @return identifiant menu
*/
 
function GEN_rechercheMenuCode($db, $code_menu) {
 
// Si identifiant existe pour la langue choisie : retour identifiant
// Si identifiant n'existe pas : retour identifiant de la langue par defaut :
// Recherche de l'identifiant par defaut
// Recherche de l'identifiant de la langue du site
// Recherche de l'identifiant par defaut
$id_langue = $GLOBALS['_GEN_commun']['i18n'];
if (isset($id_langue) && ($id_langue!='')) {
$langue_test=$id_langue;
} else {
$langue_test=GEN_I18N_ID_DEFAUT;
}
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_menu.' '.
'AND gm_ce_i18n = "'.$langue_test.'" ';
$resultat = $db->query($requete);
 
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ( $resultat->numRows() > 0 ) {
$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
return $ligne->gm_id_menu;
}
else {
// Recherche defaut :
 
$requete = 'SELECT gm_id_menu, gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_menu.' ';
'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
$resultat = $db->query($requete);
 
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
if ( $resultat->numRows() > 0 ) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($langue_test!=GEN_I18N_ID_DEFAUT) {
return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu);
}
else {
return $ligne->gm_id_menu;
}
}
}
 
 
}
 
/* Fonction GEN_rechercheContenu
*
*/
function GEN_rechercheContenu($db,$id_menu,$type_fetch=DB_FETCHMODE_OBJECT) {
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
// Rien trouvé ? : Pas encore de contenu
// Recherche identifiant par défaut
if ( $resultat->numRows() == 0 ) {
 
$id_menu_defaut=GEN_rechercheMenuIdentifiantVersionParDefaut($db,$id_menu);
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu_defaut.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ( $resultat->numRows() == 0 ) {
// Toujours rien ?
// Tentative recherche dans la langue du site par defaut
$id_menu_origine=GEN_rechercheMenuIdentifiantVersionOriginale($db,$id_menu);
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu_origine.' '.
'AND gmc_ce_type_contenu in (1,2) '.
'AND gmc_bool_dernier = 1';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
}
$ligne_contenu = $resultat->fetchRow($type_fetch);
 
return $ligne_contenu;
 
}
 
/** Fonction GEN_rechercheMenuIdentifiantVersionOriginale() - Recherche identifiant de la version orginale d'un menu
*
*
* @param object objet Pear de connection à la base de données.
* @param identifiant menu
* @return identifiant menu
*/
 
function GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu) {
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = ' . $id_menu .' '.
'AND gmr_id_valeur = 2 '; // 2 = "avoir traduction"
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
if ($resultat->numRows() > 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->gmr_id_menu_01;
}
else {
return $id_menu;
}
}
 
/** Fonction GEN_rechercheMenuIdentifiantVersionParDefaut() - Recherche identifiant par defaut d'un menu
*
*
* @param object objet Pear de connection à la base de données.
* @param identifiant menu
* @return identifiant menu
*/
 
 
function GEN_rechercheMenuIdentifiantVersionParDefaut($db, $id_menu) {
 
$identifiantVersionOrginale=GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = ' . $identifiantVersionOrginale .' '.
'AND gmr_id_valeur = 105 '; // 105
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
if ($resultat->numRows() > 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->gmr_id_menu_02;
}
else {
return $identifiantVersionOrginale;
}
 
}
 
 
 
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.26 2006/03/02 10:49:49 ddelon
* Fusion branche multilinguisme dans branche principale
*
* Revision 1.25.2.1 2005/12/20 14:40:24 ddelon
* Fusion Head vers Livraison
*