In meinem System-Plugin verwende ich Folgendes, um die XML-Datei mit Standardoptionen für Vorlagen zu laden
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);
}
}
funktioniert gut
Jetzt in templateDetails.xml standardmäßig habe ich die Gruppe der Parameterfelder leer
...
<config>
<fields name="params">
</fields>
</config>
...
funktioniert auch gut und zeigt die Standardparameter aus meiner XML-Datei an.
Jetzt möchte ich Benutzern die Option geben, den vorhandenen Standardparameter zu überschreiben, indem sie ihn einfach in die Datei templateDetails.xml einfügen.
Beispiel Protostar Standard Ich habe den Wert für templateBackgroundColor von F4F6F7 in FF6600 geändert
<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>
Dies funktioniert auch, aber das Feld befindet sich in der falschen Position, jetzt befindet es sich als erstes Feld oben und es war das zweite.
Gemäß der Methode loadFile () und load () sollte das Feld genau an seiner Stelle überschrieben werden.
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
Was fehlt mir hier? Wurde das Laden kurz vor der Vorlage xml ausgelöst?
Jede Hilfe wird geschätzt.