web-dev-qa-db-ja.com

Administratorのメインメニューにはどのようにメニュー項目のテキストが表示されますか?

管理者メニュー項目のテキストを変更する必要があり、一部のメニュー項目がtitleであり、他の項目はaliasを使用していることがわかりました。 1つはtitle列で言語文字列を使用し、それは機能しましたが、私が試したところ、機能しませんでした。

管理者メニューがこれらの2つの列をどのように考慮するか、および言語文字列が存在する場所を誰かが説明できますか?明らかな場所を試しましたが、うまくいきませんでした-命名規則はありますか?

5
Al Knight

管理メニューは管理者モジュールです。メニュー項目には言語定数を使用します。各メニュー項目に使用する言語定数を確認するには、モジュールのテンプレートフォルダー/ administrator/modules/mod_menu/tmpl /にあるモジュールのコードを確認できます。

たとえば、次のような定数が表示されます。

MOD_MENU_CONFIGURATION
MOD_MENU_CONTROL_PANEL
MOD_MENU_CLEAR_CACHE
MOD_MENU_COM_USERS_USERS

以下のように、管理者用の言語オーバーライドを作成できます。英語の場合、次の名前のファイルを作成します。

en-GB.override.ini

管理者の言語オーバーライドフォルダに追加します。

/ administrator/language/overrides

これで、このファイルに必要に応じてオーバーライドを配置できます。例:

MOD_MENU_CONFIGURATION = "設定"

これにより、[グローバル構成]メニュー項目のタイトルが[グローバル構成]から[設定]に上書きされます。

コンポーネントメニュー項目について:オーバーライドを作成するコンポーネントの言語のフォルダーsys.ini言語ファイルを管理者に確認する必要があります。その定数を見つける。例えば。連絡先コンポーネント(com_contact)については、en-GB.com_contact.sys.iniをチェックインすると、その定数が表示されます:COM_CONTACT = "Contacts"。

次に、前に作成した言語オーバーライドファイルでCONSTANTを使用して、目的の名前を付けることができます。

アップデート1

別の方法として、 Extension を使用して、カスタムリンクを持つカスタム管理メニューを作成できます。私はページとアイテムごとに Admin Menu Manager (無料と有料のダウンロード)をたくさん使用しています。

アップデート2

管理メニューがコンポーネントメニューでどのように機能するかを完全に理解するには、モジュールのヘルパーファイル内のgetComponents関数も調べる必要があります。最終的なコンポーネントサブメニューリストを作成するために、いくつかの条件をチェックしていることがわかります。

ヘルパーファイルのコードの一部(〜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;

お役に立てれば。

2
FFrewin