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. |
* |