web-dev-qa-db-fra.com

Comment détecter si l'utilisateur est sur un menu spécifique?

J'assigne un module php sur différents menus de mon site Web Joomla, mais je souhaite que le module affiche différentes données lorsqu'il est chargé sur différentes pages de menus.

Exemple: Il existe un menu parent Accueil et trois sous-menus, Sous-menu1, Sous-menu2 et Sous-men.

Lorsque l'utilisateur navigue sur sous-menu1 page, le module doit charger "Bienvenue à sous-menu1" et lorsque l'utilisateur est activé sous-menu2 page , le module devrait charger "Welcome to sub-menu2" et ainsi de suite. J'ai environ 200 pages de sous-menu sur mon site Web Joomla et je ne veux pas leur attribuer 200 modules php individuels. Je suppose que cela nécessiterait un condition IF/ELSE mais existe-t-il un identifiant spécifique attribué aux menus Joomla? Si oui, comment puis-je récupérer les données (( ID de menu ) lors du chargement du module et utiliser la condition IF/ELSE?

P.S J'ai déjà importé le Joomla CMS (Joomla 3.4.8) en utilisant ceci:

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/' ));  
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$app = JFactory::getApplication('site');

Une aide serait appréciée!

1
saibbyweb

Vous pouvez utiliser ce qui suit pour afficher le message souhaité:

$app   = JFactory::getApplication(); exist
$menu  = $app->getMenu();
$title = $menu->getActive()->title;

echo 'Welcome to ' . $title;
3
Lodder

Utilisez l'entrée donnée à l'application qui contrôle en définitive quelle page est affichée et par conséquent quel sous-menu est affiché

Ce n'est peut-être pas la manière "Joomla" de faire les choses. Joomla est relativement nouveau, utilisez quand même le:

JFactory::getApplication()->input

La documentation d'objet sur cet objet JInput est disponible sur le site de document Joomla, mais en cas de doute, il existe des outils de débogage php standard tels que

var_dump($var)
0
kyle