Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 1089 → Rev 1090

/trunk/papyrus/applettes/vous_etes_ici/vous_etes_ici.php
1,91 → 1,91
<?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.10 2006-04-28 12:41:49 florian 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.10 $ $Date: 2006-04-28 12:41:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
<?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.11 2006-12-01 16:33:40 florian 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.11 $ $Date: 2006-12-01 16:33:40 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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';
$_GEN_commun['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction'];
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI';
 
// +------------------------------------------------------------------------------------------------------+
// | 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 =& $GLOBALS['_GEN_commun']['pear_db'];
$vei_numero = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_VEI_']['nom_fonction']];
if (isset( $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
(empty($menu_courant_id)) ? $menu_courant_id = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu : '';
}
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction'];
$GLOBALS['_GEN_commun']['info_applette_balise'] = '<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(VOUS_ETES_ICI) -->';
 
// +------------------------------------------------------------------------------------------------------+
// | 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
98,34 → 98,34
// 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 = $GLOBALS['_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'];
}
// 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']);
140,56 → 140,59
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
// 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();
$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
// Ce n'est pas le menu racine : nous continuons
$vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
$vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a> >>> '."\n";
$vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false);
$vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a> >>> '."\n";
$vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false);
} else {
// C'est le menu racine : nous nous arrêtons
// C'est le menu racine : nous nous arrêtons
$vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
$vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n";
}
$vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n";
}
// Retour du VEI après la recherche récursive des liens
if ($premier_appel) {
$tab_vei = explode(' >>> ', $vei);
// 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 = '';
$retour = '';
for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
if ($i == 0) {
// Supprime le lien pour le nom du menu courant
// 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 {
} else {
$retour .= $tab_vei[$i];
}
// Ajout du séparateur
$retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
// Ajout du séparateur
$retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
}
// Retour de la chaine de liens et de textes du VEI
return $retour;
}
return $vei;
}
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
// 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.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
*
223,14 → 226,14
* 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 ----------------------------------------------------------------------------------------+
*/
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>