web-dev-qa-db-fra.com

Comment le menu principal de l'administrateur affiche-t-il le texte des éléments de menu?

J'ai dû changer le texte d'un élément de menu Administrateur et j'ai constaté que certains éléments de menu étaient associés à title, d'autres à alias. On utilisait une chaîne de langue dans la colonne title, et ça marche, mais quand j'ai essayé, ça ne fonctionnait pas.

Quelqu'un pourrait-il expliquer comment le menu de l'administrateur considère ces deux colonnes et où la chaîne Language devrait exister? J'ai essayé les endroits évidents, mais pas de chance - existe-t-il une convention de nommage?

5
Al Knight

Le menu admin est un module administrateur. Il utilise des constantes de langue pour ses éléments de menu. Pour voir quelles constantes de langue il utilise pour chacun de ses éléments de menu, vous pouvez vérifier le code du module dans le dossier de modèles du module/administrator/modules/mod_menu/tmpl /

Par exemple, vous verrez des constantes comme:

MOD_MENU_CONFIGURATION
MOD_MENU_CONTROL_PANEL
MOD_MENU_CLEAR_CACHE
MOD_MENU_COM_USERS_USERS

Vous pouvez créer un remplacement de langue pour l'administrateur, comme ci-dessous: pour l'anglais, créez un fichier nommé:

en-GB.override.ini

Ajoutez-le dans le dossier de remplacement de langue pour l'administrateur:

/ administrateur/langue/substitue

Vous pouvez maintenant placer vos remplacements à votre guise dans ce fichier, par exemple:

MOD_MENU_CONFIGURATION = "Paramètres"

Cela remplacera le titre de l'élément de menu Configuration globale de "Configuration globale" à "Paramètres".

Concernant les éléments du menu Composants: Vous devez vérifier dans l'administrateur les fichiers de langue sys.ini du dossier de votre langue pour le composant que vous souhaitez créer le remplacement. Pour trouver sa constante. Par exemple. Pour le composant Contacts (com_contact), vérifiez dans le fichier fr-FR.com_contact.sys.ini. Vous verrez alors CONSTANT: COM_CONTACT = "Contacts".

Vous pouvez ensuite utiliser CONSTANT dans le fichier de substitution de langue que vous avez créé précédemment et donner le nom de votre choix.

Mise à jour 1

En guise d’approche alternative, vous pouvez utiliser un Extension pour créer votre menu Admin personnalisé avec vos liens personnalisés. J'utilise beaucoup le Gestionnaire de menus de l'administrateur (téléchargement gratuit et payant) par pages et éléments.

Mise à jour 2

Pour bien comprendre le fonctionnement du menu admin avec le menu Composants, vous devez également étudier la fonction getComponents à l'intérieur du fichier d'assistance du module. Vous pouvez y voir qu'il vérifie quelques conditions afin de créer la liste finale du sous-menu Composants.

Partie du code du fichier d'assistance (~ ligne 250):

if (!empty($component->element))
{
    // Load the core file then
    // Load extension-local file.
    $lang->load($component->element . '.sys', JPATH_BASE, null, false, true)
||  $lang->load($component->element . '.sys', JPATH_ADMINISTRATOR . '/components/' . $component->element, null, false, true);
}

$component->text = $lang->hasKey($component->title) ? JText::_($component->title) : $component->alias;

J'espère que cela t'aides.

2
FFrewin