私のシステムプラグインでは、テンプレートのデフォルトオプションxmlファイルをロードするために以下を使用しています
function onContentPrepareForm($form, $data) {
if (!($form instanceof JForm)){
$this->_subject->setError('JERROR_NOT_A_FORM');
}
// Template defaults
if ($form->getName() == 'com_templates.style') {
JForm::addFormPath('pathtofolder');
$form->loadFile('xmlfile', false, false , true);
}
}
正常に動作します
今ではデフォルトでtemplateDetails.xmlにあります私はparamsフィールドグループを空にします
...
<config>
<fields name="params">
</fields>
</config>
...
また、正常に動作し、xmlファイルのデフォルトのパラメーターを表示します。
ここで、templateDetails.xml内に追加するだけで、既存のデフォルトパラメータを上書きするオプションをユーザーに提供したいと思います。
例protostarのデフォルトtemplateBackgroundColorの値をF4F6F7からFF6600に変更しました
<config>
<fields name="params">
<fieldset name="advanced">
<field name="templateBackgroundColor" class="" type="color" default="#FF6600"
label="TPL_PROTOSTAR_BACKGROUND_COLOR_LABEL"
description="TPL_PROTOSTAR_BACKGROUND_COLOR_DESC" />
</fieldset>
</fields>
</config>
これも機能しますが、フィールドは間違った位置にあり、最初のフィールドとして上に配置され、2番目になりました。
loadFile()メソッドとload()メソッドによると、フィールドの正確な場所をオーバーライドする必要があります。
https://github.com/joomla/joomla-cms/blob/staging/libraries/joomla/form/form.php#L851 https://github.com/joomla/joomla-cms/blob/staging/libraries/joomla /form/form.php#L727
ここで何が欠けていますか?ロードはテンプレートxmlの直前に起動しましたか?
どんな助けでもありがたいです。