web-dev-qa-db-ja.com

デフォルトのモジュールレイアウトが管理者に受け入れられない(モジュールを追加する場合)

Joomla 3では、複数のレイアウト(tmplフォルダー内)があり、.xmlにデフォルトのレイアウトが選択されているすべてのモジュールに気づきました

例:

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="mylayout" />

管理にモジュールを追加するときに、[詳細設定]タブに移動して[代替レイアウト]をチェック/選択すると、最初のアルファベットが表示され、xmlで指定されたデフォルトではありません。

これは、デフォルトを定義する方法にいくつかの変更があるためですか?

それともバグに関連していますか?

5
jackJoe

modulelayout.phpファイルのコードを見ると、レイアウト名の前に_:を付ける必要があるようです。したがって、xmlフィールドは次のようになります。

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="_:mylayout" />

ファイルにselectオプションが設定されていることがわかります。

$groups['_']['items'][] = JHtml::_('select.option', '_:' . $value, $text);

これは、私が推測しているように、テンプレートにある(オーバーライドとして)正確に同じ名前のファイルと区別するために使用されています。これらは、次のコードに基づいて、テンプレート名で始まります。

$groups[$template->element]['items'][] = JHtml::_('select.option', $template->element . ':' . $value, $text);

これが実際に別の場所で文書化されているかどうかはわかりません。しかし、もっと楽しくするには、libraries/legacy/form/field/modulelayout.phpでコードを熟読してみてください。それはあまりにもクレイジーではありません。 :)

3
David Fritsch