web-dev-qa-db-fra.com

Noms d'élément de menu dynamique

Je souhaite créer un élément de menu qui changera de façon dynamique son nom, en fonction de la personne qui la visualise et de son accès.

Pour le rendre plus spécifique, j'ai créé une application dans Fabrik.
Il y a cours et membres suivent ces cours.

Il y a aussi Modérateurs de cours, qui ne peut voir que les membres des cours qu’il modère.

J'ai un élément de menu pour afficher la liste des membres pour chaque cours. Maintenant, il s'appelle "Membres du cours". Mais comme chaque modérateur n'affiche que les membres de son cours, j'aimerais que l'élément de menu affiche le nom du cours, par exemple. "Membres de yoga".

En guise d’information supplémentaire, il existe également des groupes d’utilisateurs correspondants pour chaque cours, et les modérateurs font également partie de ces groupes.

À un moment donné dans le passé, je pensais avoir trouvé un plugin qui permettait d'utiliser des espaces réservés dans le nom des éléments de menu ... mais je ne le trouve pas et je ne suis pas sûr que cela puisse fonctionner dans mon scénario.

Quelqu'un a-t-il fait quelque chose comme ça? Des plugins ou d'autres idées s'il vous plaît ...

3
FFrewin

Vous devez créer un remplacement mod_menu et ajouter le code à la personnalisation en ajoutant ces éléments de menu spéciaux.

Certains modèles permettent d'inclure une position de module dans un élément de menu (par exemple, login) pour inclure mod_login. Mais dans votre cas, vous devez injecter tout un ensemble d’articles. Il est préférable de créer une personnalisation de mod_menu.

2
Anibal

J'ai obtenu quelque chose comme cela en utilisant NoNumbers Advanced Module Manager.

Cela vous permettra d'utiliser PHP pour "obtenir l'ID utilisateur connecté" et afficher uniquement les modules de menu appropriés pour cet utilisateur. AMM dispose d'un bloc PHP qui est ce que j'ai utilisé.

Malheureusement, cela nécessitait un menu pour chaque utilisateur, il s'agissait donc d'une solution de contournement maladroite et peu évolutive.

Je pense que le plug-in que vous recherchez pourrait également provenir de NoNumbers, appelé Snippets, mais vous aurez peut-être plus de chance dans ce cas avec ReReplacer.

1
BodgeIT

La méthode que j'ai utilisée auparavant consiste à utiliser un système de menus permettant d'insérer des modules (par exemple, RokNavMen ), puis d'utiliser Regular Labs Sourcerer dans le module pour interroger la base de données. et affichez les éléments de menu appropriés.

Ce n'est peut-être pas la méthode la plus efficace mais semble fonctionner correctement et est assez facile à faire.

La tâche la plus longue consistait à attribuer aux éléments de menu un style identique à celui du menu.

Dans ce cas particulier, le tour-opérateur n'a qu'à mettre à jour les visites et le menu est construit de manière dynamique en fonction des entrées saisies.

Vous pouvez voir le résultat final avec le module "Visites à la journée" qui extrait toutes les visites à la journée actives de la base de données et crée les liens. Il existe des modules similaires pour les voyages d'une nuit et les visites prolongées, etc.

Dynamic menu using RokNavMenu and modules

1
Neil Robertson

Je l'ai fait de plusieurs manières. La façon la plus simple que j'ai trouvée, qui ne comportait aucun code, consistait à utiliser les autorisations Joomla intégrées. Tant que vous avez différents groupes d'utilisateurs pour chaque classe, vous pouvez créer un élément de menu différent pour chaque type appelé Membres Yoga, Membres Kick Boxing, etc. appartenant au groupe d'utilisateurs de la classe de yoga, uniquement voir l'élément de menu Membres du yoga.

Cela ne fonctionne pas si la situation pour laquelle vous avez besoin des éléments de menu dynamiques ne peut pas utiliser ces groupes d'utilisateurs, mais cela devrait fonctionner pour quelque chose comme une appartenance à des classes.

0
Nick Dzitars