New file |
0,0 → 1,178 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU Lesser General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | Lesser General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU Lesser General Public | |
// | 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: vous_etes_ici.php,v 1.1 2004-06-15 15:06:25 jpm Exp $ |
/** |
* Applette : Vous Etes Ici |
* |
* Affiche les liens contenant la suite des menus visités pour arriver |
* au menu courant visioné par l'utilisateur. |
* Nécessite : |
* - Constantes et variable de Papyrus. |
* - Base de données de Papyrus |
* - Pear Net_URL |
* - Pear DB |
* - API Débogage 1.0 |
* |
*@package Applette |
*@subpackage Vous Etes Ici |
//Auteur original : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2004-06-15 15:06:25 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
$_GEN_commun['info_applette_nom_fonction'] = 'VEI_afficherVousEtesIci'; |
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI'; |
|
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
|
|
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
|
/** Fonction VEI_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 VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $id_menu_courant = '', $premier_appel = true) |
{ |
// Initialisation de variable. |
$objet_pear_db = $_GEN_commun['pear_db']; |
(empty($id_menu_courant)) ? $id_menu_courant = $_GEN_commun['info_menu']->gm_id_menu : ''; |
$url_id_type_site = GEN_URL_ID_TYPE_SITE; |
$url_id_type_menu = GEN_URL_ID_TYPE_MENU; |
$url_cle_site = GEN_URL_CLE_SITE; |
$url_cle_menu = GEN_URL_CLE_MENU; |
$i18n_url = '';// Evite d'écrire l'i18n dans l'url demandée. |
if (!empty($_GEN_commun['url_i18n'])) { |
// L'écriture de l'i18n dans les urls des menus est demandée. |
$i18n_url = $_GEN_commun['url_i18n']; |
$url_cle_i18n = GEN_URL_CLE_I18N; |
} |
|
|
$vei = ''; |
|
$requete = 'SELECT gm_id_menu, gm_ce_i18n, gm_code_num, gm_code_alpha, gm_nom, gmr_id_menu_02 '. |
'FROM gen_menu, gen_menu_relation '. |
'WHERE gm_id_menu = '.$id_menu_courant.' '. |
'AND gmr_id_menu_01 = gm_id_menu '. |
'AND gmr_id_valeur = 1 ';// 1 = avoir "père" |
|
$resultat = $objet_pear_db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$resultat->free(); |
|
// Création de l'url du menu courant |
$objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); |
$requete_site_code = 'SELECT gs_code_num, gs_code_alpha '. |
'FROM gen_menu, gen_site '. |
'WHERE gm_id_menu = '.$ligne->gm_id_menu.' '. |
'AND gm_ce_site = gs_id_site'; |
|
$resultat_site_code = $objet_pear_db->query($requete_site_code); |
if (DB::isError($resultat_site_code)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site_code->getMessage(), $requete_site_code)); |
} |
$ligne_site_code = $resultat_site_code->fetchRow(DB_FETCHMODE_OBJECT); |
if ($url_id_type_site == 'int') { |
$objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_num); |
} else { |
$objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_alpha); |
} |
if ($url_id_type_menu == 'int') { |
$objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_num); |
} else { |
$objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_alpha); |
} |
if (!empty($i18n_url)) { |
$objet_pear_url->addQueryString($url_cle_i18n, $i18n_url); |
} |
$url = $objet_pear_url->getURL(); |
|
if ($ligne->gmr_id_menu_02 != 0) {// C'est le menu racine! |
$vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a> >>> '; |
$vei .= VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $ligne->gmr_id_menu_02, false); |
} else { |
$vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a>'; |
} |
|
if ($premier_appel) { |
$tab_vei = explode(' >>> ', $vei); |
$retour = ''; |
for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) { |
$retour .= $tab_vei[$i]; |
$retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ; |
} |
return $retour; |
} |
|
return $vei; |
} |
|
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
|
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* 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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |