//Autres auteurs : *@author Aucun *@copyright Tela-Botanica 2000-2004 *@version $Revision: 1.12 $ $Date: 2006-12-12 13:53:54 $ // +------------------------------------------------------------------------------------------------------+ */ // +------------------------------------------------------------------------------------------------------+ // | 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'; $GLOBALS['_VEI_']['nom_fonction'] = 'afficherVousEtesIci'; $GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction']; $GLOBALS['_GEN_commun']['info_applette_balise'] = '(?:|'. '\{\{[Vv]ousEtesIci\s*\}\})'; // +------------------------------------------------------------------------------------------------------+ // | CORPS du PROGRAMME | // +------------------------------------------------------------------------------------------------------+ // +------------------------------------------------------------------------------------------------------+ // | LISTE de FONCTIONS | // +------------------------------------------------------------------------------------------------------+ /** Fonction afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu. * * Affiche la suite des menus visité, sous forme de lien, pour arriver * au menu courant visioné par l'utilisateur. * Necessite : * - Constantes et variable de Papyrus. * - Pear Net_URL * - Pear DB * * @param array tableau d'éventuel arguments présent dans la balise transmis à la fonction. * @param array tableau global de Papyrus. * @param int identifiant du menu courant qui représentent la fin du "vous êtes ici". * @param boolean indique que nous avons à faire au premier appel de cette fonction récursive. * @return string une liste de listes XHTML représentant le plan du site. */ function afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_courant_id = '', $premier_appel = true) { // Initialisation de variable. $objet_pear_db =& $_GEN_commun['pear_db']; $vei_numero = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_VEI_']['nom_fonction']]; if (isset($_GEN_commun['info_menu']->gm_id_menu)) { (empty($menu_courant_id)) ? $menu_courant_id = $_GEN_commun['info_menu']->gm_id_menu : ''; } $vei = ''; // Gestion des erreurs if (empty($menu_courant_id)) { if (isset($GLOBALS['_VEI_']['usurpation'])) { $vei = $GLOBALS['_VEI_']['usurpation']; } return $vei; } // Début contruction du vei $menu_pere_id = GEN_lireIdentifiantMenuPere($menu_courant_id, $objet_pear_db); // Récupération des infos sur sur l'entrée du menu à afficher // GEN_I18N_ID_DEFAUT; $id_langue = $_GEN_commun['i18n']; if (isset($id_langue) && ($id_langue!='')) { $langue_test=$id_langue; } else { $langue_test = GEN_I18N_ID_DEFAUT; } $requete_traduction = 'SELECT gmr_id_menu_02, gm_ce_i18n '. 'FROM gen_menu_relation, gen_menu '. 'WHERE '.$menu_courant_id.' = gmr_id_menu_01 ' . 'AND gmr_id_menu_02 = gm_id_menu '. 'AND gmr_id_valeur = 2 '.// 2 = "avoir traduction" 'AND gm_ce_i18n = "'.$langue_test.'" '; $resultat_traduction = $objet_pear_db->query($requete_traduction); (DB::isError($resultat_traduction)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)) : ''; if ($resultat_traduction->numRows() > 0) { $ligne_resultat_traduction=$resultat_traduction->fetchRow(DB_FETCHMODE_ASSOC); $menu_courant_id=$ligne_resultat_traduction['gmr_id_menu_02']; } $menu_info = GEN_lireInfoMenu($objet_pear_db, $menu_courant_id, DB_FETCHMODE_ASSOC); // 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.'" ';; } // Création de l'url du menu courant $une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); $une_url->setId($menu_courant_id); $menu_url = $une_url->getURL(); if ($menu_pere_id != 0) { // Ce n'est pas le menu racine : nous continuons $vei .= ''.$menu_nom.' >>> '."\n"; $vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false); } else { // C'est le menu racine : nous nous arrêtons $vei .= ''.$menu_nom.''."\n"; } // Retour du VEI après la recherche récursive des liens if ($premier_appel) { $tab_vei = explode(' >>> ', $vei); // Récupération des liens pour les inverser et créer le VEI $retour = ''; for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) { if ($i == 0) { // Supprime le lien pour le nom du menu courant $tab_txt_capture=''; preg_match("/>(.*)<\/a>/", $tab_vei[$i], $tab_txt_capture); $retour .= $tab_txt_capture[1]; } else { $retour .= $tab_vei[$i]; } // Ajout du séparateur $retour .= ($i != 0) ? "\n".' > '."\n" : '' ; } // Retour de la chaine de liens et de textes du VEI return $retour; } return $vei; } // +------------------------------------------------------------------------------------------------------+ // | PIED du PROGRAMME | // +------------------------------------------------------------------------------------------------------+ /* +--Fin du code ----------------------------------------------------------------------------------------+ * * $Log: not supported by cvs2svn $ * Revision 1.11 2006/12/01 16:33:40 florian * Amélioration de la gestion des applettes et compatibilité avec le nouveau mode de gestion de l'inclusion des applettes. * * Revision 1.10 2006/04/28 12:41:49 florian * corrections erreurs chemin * * Revision 1.9 2006/03/02 10:49:49 ddelon * Fusion branche multilinguisme dans branche principale * * Revision 1.8.2.1 2006/02/28 14:02:10 ddelon * Finition multilinguisme * * Revision 1.8 2005/09/26 20:18:27 ddelon * Appli projet : php5 et generalisation * * Revision 1.7 2005/09/23 14:21:18 florian * compatibilité XHTML * * Revision 1.6 2005/04/14 16:38:02 jpm * Ajout de la gestion des URL avec la classe Pap_URL de Papyrus. * * Revision 1.5 2004/12/06 19:39:57 jpm * Gestion de l'usurpation de VEI. * * Revision 1.4 2004/11/10 19:41:27 jpm * Correction bogue quand pas de menu par défaut. * * Revision 1.3 2004/09/23 17:57:19 jpm * La page active n'est pas afficher sous forme de lien mais sous forme de texte. * * Revision 1.2 2004/07/06 17:07:21 jpm * Modification de la documentation pour une mailleur analyse par PhpDocumentor. * * Revision 1.1 2004/06/15 15:06:25 jpm * Changement de nom et d'arborescence de Genesia en Papyrus. * * Revision 1.4 2004/05/05 14:33:19 jpm * Gestion de l'indication de langue dans l'url. * Utile que si on veut forcer la langue. * * Revision 1.2 2004/05/05 06:44:33 jpm * Complément des commentaires indiquant les paquetages nécessaire à l'applette. * * Revision 1.1 2004/05/05 06:39:18 jpm * Transformation en applette de la fonction générant le "vous êtes ici". * * * +-- Fin du code ----------------------------------------------------------------------------------------+ */ ?>