J'ai un composant qui crée des pages de contenu pour des entités personnalisées.
J'ai un xml qui permet de définir ces pages comme des éléments de menu de ce type d'entité.
J'ai 1 module que je veux toujours afficher sur les éléments de menu de ce type.
J'ai 1 module que je ne veux jamais afficher sur les éléments de menu de ce type.
Maintenant, j'essaie de comprendre comment éviter à mon client la tâche ardue d'aller consulter le gestionnaire de modules pour définir et désélectionner les affectations de module chaque fois qu'ils créent un nouvel élément de menu.
Existe-t-il un moyen de définir par programme les affectations de module au moment de la création du menu? J'ai compris où et comment les assignations sont stockées dans la base de données, mais je n'arrive pas à trouver un événement auquel un plugin doit être associé lors de la création d'un menu.
Des indices ou des indices sur la façon d'aborder cela?
Ce serait peut-être une bonne idée de fusionner les 2 modules en un seul module dynamique. Ensuite, dans ce module, vous pouvez vérifier avec JInput pour le type de contenu/la vue en cours et afficher conditionnellement les données souhaitées de l'intérieur du fichier. module.
Si le type de contenu est de cet élément de menu, affichez les données du premier module, sinon, affichez les données du deuxième module.
En prolongeant l'idée de FFrewin, pourriez-vous créer dans votre modèle des positions de module dynamiques qui n'apparaissent que lorsque les conditions appropriées sont remplies et affecter les modules en conséquence? c'est-à-dire le faire au niveau du modèle plutôt qu'au niveau du module afin que les modules tiers puissent rester intacts.
Une autre suggestion serait de créer un troisième module sur mesure qui charge les autres modules par programmation, au lieu de les affecter via le gestionnaire de modules.
Alternativement, la méthode la plus rapide serait d’ajouter simplement un fichier CSS à la vue de votre composant qui affiche/masque les modules avec CSS. Je ne crois pas que le contenu caché soit vraiment un problème majeur de référencement, cela rend la page un peu plus lourde.