Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 104 → Rev 124

/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.3 2004-10-25 14:16:21 jpm Exp $
// CVS : $Id: pap_menu.fonct.php,v 1.4 2004-11-04 12:23:50 jpm Exp $
/**
* Bibliothèque de fonction sur le rendu.
*
33,7 → 33,7
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2004-10-25 14:16:21 $
*@version $Revision: 1.4 $ $Date: 2004-11-04 12:23:50 $
// +------------------------------------------------------------------------------------------------------+
*/
 
81,6 → 81,38
return $prof;
}
 
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
*
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
*
* @param integer identifiant du menu.
* @return boolean renvoi l'id du dernier menu frère sinon faux.
*/
function GEN_donnerDernierFreres($id_menu)
{
// Initialisation des variables.
global $db;
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 <> '.$id_menu.' '.
'ORDER BY gmr_ordre DESC';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($resultat->numRows() > 0) {
return $ligne->gmr_id_menu_01;
} else {
return false;
}
}
 
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
*
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
157,8 → 189,7
$resultat->free();
if ($ligne->gmr_id_menu_02 == 0) {
return false;
}
elseif ($ligne->gmr_id_menu_02 == $id_menu_1) {
} else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
return true;
} else {
return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
165,6 → 196,50
}
}
 
/** Fonction GEN_etreFils() - Renvoie vrai si le premier argument (identifiant de menu) est un fils du second.
*
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
* la fonction avec l'identifiant du père trouvé pour l'argument 1. Ainsi de suite jusqu'a
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
* Si les variable sont null nous retournons false.
* C'est une fonction récursive.
*
* @param integer identifiant d'un menu numéro 1.
* @param integer identifiant d'un menu numéro 2.
* @return boolean vrai si le menu numéro 1 est fils du second.
*/
function GEN_etreFils($id_menu_1, $id_menu_2)
{
//Test erreur
if (is_null($id_menu_1) || is_null($id_menu_2)) {
return false;
}
// Initialisation des variables.
global $db;
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu_2.' '.
'AND gmr_id_valeur = 1 ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
if ($ligne->gmr_id_menu_01 == 0) {
echo "faux";
return false;
} else if ($ligne->gmr_id_menu_01 == $id_menu_1) {
echo "vrai";
return true;
} else {
return GEN_etreFils($id_menu_1, $ligne->gmr_id_menu_01);
}
}
 
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
*
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
257,7 → 332,7
 
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
*
* Par défaut recherch une relation de type père.
* Par défaut recherche une relation de type père.
* Ancien nom : getMenuRelation().
*
* @param mixed Une instance de la classse PEAR_DB
290,6 → 365,42
return $info_menu_relation;
}
 
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
*
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
* été attribué à un menu ou pas!
*
* @param mixed Une instance de la classse PEAR_DB
* @param string le type du code (int ou string).
* @param mixed le code numérique ou alphanumérique.
* @return mixed retourne l'identifiant du menu possédant le code sinon false.
*/
function GEN_verifierPresenceCodeMenu($db, $type, $code)
{
// Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
$requete = 'SELECT gm_id_menu '.
'FROM gen_menu ';
// Complément de requête en fonction du type de code
if ($type == 'int') {
$requete .= 'WHERE gm_code_num = '.$code;
} else {
$requete .= 'WHERE gm_code_alpha = "'.$code.'"';
}
$nombre_reponse = $db->affectedRows($requete);
if (DB::isError($nombre_reponse)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $nombre_reponse->getMessage(), $requete) );
}
if ($nombre_reponse == 1) {
$id = $db->getOne($requete);
if (DB::isError($id)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $id->getMessage(), $requete) );
}
return $id;
} else {
return false;
}
}
 
// +------------------------------------------------------------------------------------------------------+
// A NORMALISER !!!
// +------------------------------------------------------------------------------------------------------+
370,6 → 481,9
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.3 2004/10/25 14:16:21 jpm
* Suppression de code commenté.
*
* Revision 1.2 2004/10/21 18:15:21 jpm
* Ajout de gestion d'erreur aux fonctions.
*