J'ai créé la position de mes modules dans mon modèle et l'ai également déclarée dans le fichier XML. Désormais, dans le gestionnaire de modules, lorsque je sélectionne l’une de mes positions de module et que je sauvegarde le module, il apparaît ensuite sous forme de position personnalisée dans le champ de sélection Positions de module.
Je n'utilise aucun cadre. Juste un modèle joomla occasionnel. Les positions de module sont définies dans le XML et dans les fichiers de bloc du modèle (elles ne doivent donc pas être considérées comme des positions personnalisées) et sont affichées normalement dans le filtre Position de module dans Module Manager.
Mais après avoir sauvegardé un module, il l'ajoutera également dans le groupe Positions personnalisées du filtre, se terminant par la même position de module existante deux fois, 1 sous les positions mytemplate et 1 sous les positions personnalisées.
Cela rend les choses un peu déroutantes.
Je viens de me rendre compte que cela se produit également par défaut, même avec le modèle Protostar, et probablement avec d'autres modèles. Après avoir affecté un module à une position, cette position devient également disponible dans les Positions de module personnalisées. N'est-ce pas le cas aussi pour quelqu'un d'autre?
Je pense que l’étiquette <optgroup>
Devrait être changée de "Position personnalisée" à "Déjà utilisé" ou "Positions sélectionnées" ou quelque chose comme ça. Pour ce faire, créez ou ouvrez le fichier
/administrator/language/overrides/en-GB.override.ini
et ajoutez cette ligne:
COM_MODULES_CUSTOM_POSITION="Already Used"
Aussi, il y a un mauvais moyen de se débarrasser du optgroup
en commentant cette ligne
$templateGroups[$customGroupText] = ModulesHelper::createOptionGroup($customGroupText, $customPositions);
dans
/administrator/components/com_modules/helpers/html/modules.php
et choisissez des noms de position uniques dans le fichier XML de votre modèle.
Essayez également de définir les positions de vos modules en les nommant dans le fichier de langue du système de gabarit, par exemple;
en-GB.tpl_yourtemplatename.sys.ini
Nommez chaque position de la manière suivante: dans cet exemple, les positions de module sont l’en-tête, la bannière et le fil d’ariane et yourtemplatename est le nom de votre modèle;
TPL_YOURTEMPLATENAME_POSITION_HEADER="Header"
TPL_YOURTEMPLATENAME_BANNER="Banner"
TPL_YOURTEMPLATENAME_BREADCRUMBS="Breadcrumbs"