web-dev-qa-db-ja.com

モジュールマネージャーでテンプレートの位置がカスタム位置になるのはなぜですか?

テンプレートでモジュールの位置を作成し、XMLファイルで宣言しました。モジュールマネージャーでモジュール位置の1つを選択してモジュールを保存すると、モジュール位置選択フィールドにカスタム位置として表示されます。

更新:

フレームワークを使用していません。ただカジュアルなjoomlaテンプレート。モジュールの位置はXMLとテンプレートのブロックファイルで定義されるため(カスタム位置とは見なされません)、モジュールマネージャーのモジュール位置フィルターに通常表示されます。

ただし、モジュールを保存すると、フィルターの[カスタム位置]グループにも追加され、同じモジュール位置で終了します。1つはmytemplate位置の下に、もう1つはカスタム位置の下に存在します。

それは物事を少し混乱させます。

アップデート2

これは、protostarテンプレートでも、おそらく他のテンプレートでもデフォルトで発生していることに気づきました。モジュールを位置に割り当てた後、この位置はカスタムモジュール位置でも使用可能になります。これは他の人にも当てはまりますか?

1
FFrewin
  1. 私は思います <optgroup>ラベルを「カスタム位置」から「すでに使用済み」または「選択された位置」などに変更する必要があります。これを行うには、ファイルを作成または開きます

    /administrator/language/overrides/en-GB.override.ini
    

    次の行を追加します:

    COM_MODULES_CUSTOM_POSITION="Already Used"
    
  2. また、この行をコメント化することでoptgroupを取り除くための汚い方法があります

    $templateGroups[$customGroupText] = ModulesHelper::createOptionGroup($customGroupText, $customPositions);
    

    /administrator/components/com_modules/helpers/html/modules.php
    

    テンプレートのXMLファイルで一意の位置名を選択します。

1
Farahmand

また、テンプレートシステムの言語ファイルで名前を付けて、モジュールの位置を定義してみてください。

en-GB.tpl_yourtemplatename.sys.ini

このように各位置に名前を付けます。この例では、モジュールの位置はヘッダー、バナー、ブレッドクラムで、yourtemplatenameはyour template nameです。

TPL_YOURTEMPLATENAME_POSITION_HEADER="Header"
TPL_YOURTEMPLATENAME_BANNER="Banner"
TPL_YOURTEMPLATENAME_BREADCRUMBS="Breadcrumbs" 
1
Seth Warburton