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: menu.php,v 1.14 2005-03-02 11:02:33 jpm Exp $ |
// CVS : $Id: menu.php,v 1.15 2005-04-14 16:37:48 jpm Exp $ |
/** |
* Applette : menu |
* |
38,7 → 38,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.14 $ $Date: 2005-03-02 11:02:33 $ |
*@version $Revision: 1.15 $ $Date: 2005-04-14 16:37:48 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
45,11 → 45,12 |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// Inclusion de la bibliothèque defonction sur les menu : inutile car inclue par Papyrus |
require_once GEN_CHEMIN_BIBLIO.'pap_menu.fonct.php'; |
|
require_once 'papyrus/bibliotheque/fonctions/pap_menu.fonct.php'; |
$GLOBALS['_MENU_']['nom_fonction'] = 'afficherMenuNiveauMultiple'; |
$_GEN_commun['info_applette_nom_fonction'] = $GLOBALS['_MENU_']['nom_fonction']; |
$_GEN_commun['info_applette_balise'] = 'MENU_?(?:(|CLASSIQUE|COMMUN|DEROULANT)_([0-9]+)_([0-9]+)(|_ID_([0-9]+))|(UNIQUE)_([0-9]+))'; |
$_GEN_commun['info_applette_balise'] = 'MENU_?(?:(|CLASSIQUE|COMMUN|DEROULANT)_([0-9]+)_([0-9]+)(|_ID_([0-9]+))|(UNIQUE)_([0-9]+))(?:|_NUMID_([0-9]+))'; |
|
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
104,7 → 105,10 |
if (isset($tab_applette_arguments[8])) { |
$menu_depart = $tab_applette_arguments[8]; |
} |
|
// Gestion du numéro unique pour l'attribut id des li des menus |
if (isset($tab_applette_arguments[9])) { |
$num_menu = $tab_applette_arguments[9]; |
} |
// Gestion du type de menu |
switch ($menu_type) { |
case '' : |
183,7 → 187,7 |
// Gestion des menus uniques |
if ($menu_type == 'unique') { |
$retour .= afficherEntreeListeMenu( $objet_pear_db, $id_pere_menu_a_deployer, $i18n_url, |
$niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun); |
$niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun, $num_menu); |
// Dans le cas, d'un menu unique, on retourne directement le résultat ici. |
return $retour; |
} |
206,7 → 210,7 |
$corps .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))). |
'<li id="menu_'.$num_menu.'_'.$id_pere_menu_a_deployer.'" class="'.$classe.'">'."\n"; |
$corps .= afficherEntreeListeMenu( $objet_pear_db, $id_pere_menu_a_deployer, $i18n_url, |
$niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun); |
$niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun, $num_menu); |
} |
|
if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) { |
271,7 → 275,7 |
$corps .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 2))). |
'<li id="menu_'.$num_menu.'_'.$id_menu_inf.'" class="'.$classe.'">'."\n"; |
$corps .= afficherEntreeListeMenu( $objet_pear_db, $id_menu_inf, $i18n_url, $niveau_actuel, |
$ligne->gmr_ordre, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun); |
$ligne->gmr_ordre, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun, $num_menu); |
} |
// Pour chaque menu on regarde s'il y a des fils. Si oui, on les déploie. |
$requete_fils = 'SELECT gm_id_menu '. |
338,58 → 342,33 |
* @param integer ordre du menu dans le niveau. |
* @return string liste représentant le menu duHTML |
*/ |
function afficherEntreeListeMenu($db, $id_menu, $i18n_url, $niveau, $ordre, $position, $menu_type, $indent_origine = 12, $indent_pas = 4, $_GEN_commun) |
function afficherEntreeListeMenu($db, $menu_id, $i18n_url, $niveau, $ordre, $position, $menu_type, $indent_origine = 12, $indent_pas = 4, $_GEN_commun, $num_menu) |
{ |
// Préparation des noms des champs des codes pour le site et le menu |
$champs_code_site = (GEN_URL_ID_TYPE_SITE == 'int') ? 'gs_code_num' : 'gs_code_alpha'; |
$champs_code_menu = (GEN_URL_ID_TYPE_MENU == 'int') ? 'gm_code_num' : 'gm_code_alpha'; |
// Récupération des infos sur sur l'entrée du menu à afficher |
$menu_info = GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC); |
|
// Récupération du nom de l'entrée du menu à afficher |
$requete = 'SELECT '.$champs_code_menu.', '. |
'gm_nom, gm_description_resume, gm_raccourci_clavier, gm_ce_i18n, gm_ce_site '. |
'FROM gen_menu '. |
'WHERE gm_id_menu = '.$id_menu.' '; |
// Préparation d'une entrée dans la liste du menu |
$menu_nom = htmlentities($menu_info['gm_nom']); |
$menu_hreflang = htmlentities($menu_info['gm_ce_i18n']); |
$menu_accesskey = ''; |
$raccourci_txt = ''; |
if (($menu_accesskey = htmlentities($menu_info['gm_raccourci_clavier'])) != '') { |
$raccourci_txt = '(Raccourci : '.$menu_accesskey.' ).'; |
$menu_accesskey = 'accesskey="'.$menu_accesskey.'" '; |
} |
$menu_texte_title = ''; |
if (($menu_texte_title = htmlentities($menu_info['gm_description_resume'])) != '') { |
$menu_texte_title = 'title="'.$raccourci_txt.$menu_texte_title.'" ';; |
} |
|
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC); |
$resultat->free(); |
// Nous vérifions si nous avons à faire à un menu commun ou pas |
if ($ligne['gm_ce_site'] != 0) { |
// Récupération des infos sur le site |
$bln_url_site = false; |
$requete_site = 'SELECT '.$champs_code_site.' '. |
'FROM gen_site '. |
'WHERE gs_id_site = '.$ligne['gm_ce_site'].' '; |
|
$resultat_site = $db->query($requete_site); |
(DB::isError($resultat_site)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site->getMessage(), $requete_site)) : ''; |
|
$ligne_site = $resultat_site->fetchRow(DB_FETCHMODE_ASSOC); |
$resultat_site->free(); |
} else { |
// Menu commun |
$bln_url_site = true; |
$ligne_site[$champs_code_site] = $_GEN_commun['info_site']->$champs_code_site; |
} |
// Préparation d'une entrée dans la liste du menu |
$menu_nom = htmlentities($ligne['gm_nom']); |
$menu_texte_title = htmlentities($ligne['gm_description_resume']); |
// Préparation de l'url de l'entrée |
$objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); |
if ($bln_url_site) { |
$objet_pear_url->addQueryString(GEN_URL_CLE_SITE, $ligne_site[$champs_code_site]); |
} |
$objet_pear_url->addQueryString(GEN_URL_CLE_MENU, $ligne[$champs_code_menu]); |
if (!empty($i18n_url)) { |
$objet_pear_url->addQueryString(GEN_URL_CLE_I18N, $i18n_url); |
} |
$url = $objet_pear_url->getURL(); |
$une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); |
$une_url->setId($menu_id); |
|
//Création d'une entrée dans la liste du menu |
$espaces = str_repeat(' ', $indent_origine + ($indent_pas * ($position + 2))); |
$retour = $espaces.'<a href="'.$url.'" title="'.$menu_texte_title.'">'.$menu_nom.'</a>'."\n"; |
$retour = $espaces.'<a id="menu_lien_'.$num_menu.'_'.$menu_id.'" href="'.$une_url->getURL().'" '. |
'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n"; |
return $retour; |
} |
|
401,6 → 380,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.14 2005/03/02 11:02:33 jpm |
* Suppression des espaces avant l'ouverture de la balise php. |
* |
* Revision 1.13 2005/02/08 19:03:03 alex |
* ajout de la balise DEROULANT qui permet de faire un affichage des menus avec survol javascript. Il nécessite des styles particuliers. |
* |