web-dev-qa-db-fra.com

Afficher dynamiquement l'élément de menu du composant personnalisé dans le menu, en fonction des autorisations de l'utilisateur

Je développe un composant de stockage en nuage pour joomla, où les utilisateurs (revendeurs) peuvent créer des sous-utilisateurs dans leur répertoire.
J'ai implémenté tout ce qui était nécessaire pour le composant et créé 2 vues principales:

  1. Cloud - où toute la magie se produit.

  2. Paramètres - où un utilisateur (s'il peut can_manage_subcontainers - un paramètre stocké dans une base de données) peut créer des sous-utilisateurs pour son répertoire.

Ils fonctionnent bien tous les deux et sont affichés dans le menu, MAIS :

  1. Je souhaite toujours afficher l'élément de menu Cloud.

  2. Affichez l'élément de menu Paramètres uniquement si l'utilisateur est connecté et autorisé à créer de nouveaux sous-utilisateurs, et que je souhaite le créer à partir de mon composant - pour qu'il soit indépendant du modèle/de la version.

Je peux le faire facilement si j'ajoute un script pour masquer/afficher le deuxième élément de menu après la connexion de l'utilisateur et sa permission, mais je ne le souhaite pas.

J'ai vérifié pour un crochet de menu pour joomla mais rien.

J'ai la dernière version de joomla et le composant que j'ai créé est intégré au framework joomla du côté de l'administrateur (créé à l'aide de fonctions Joomla) et à l'interface frontale (partie du site du composant) réalisée en php en tant que MVC.

Désolé pour mon mauvais anglais, j'espère que vous comprenez ce que je veux. Merci!

1
rechim

Attachez les autorisations à l'élément de menu. Pour une démonstration simple, définissez "accès" dans l'élément de menu sur "Enregistré" ou "Spécial" et vous ne le verrez que si vous tombez dans l'une de ces catégories. Si vous avez besoin d'un contrôle plus précis, créez un groupe d'accès et seuls les utilisateurs de ce groupe d'accès pourront le voir.

Vous auriez probablement pu utiliser les paramètres d'autorisation de joomla pour contrôler la capacité can_manage_subcontainers en premier lieu, ce qui aurait moins de composant manuel car vous pourriez définir les mêmes autorisations sur l'élément de menu que pour les sous-conteneurs.

Mais, dans l’état actuel des choses, il s’agit d’un ensemble qui n’est utilisé qu’une fois par utilisateur et qui n’oublie rien. Il n’est donc pas difficile de le gérer manuellement.

1
Arlen