Trong plugin hệ thống của tôi, tôi đang sử dụng sau để tải tệp xml tùy chọn mặc định cho các mẫu
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);
}
}
hoạt động tốt
bây giờ trong templateDetails.xml theo mặc định tôi sẽ có nhóm trường params trống
...
<config>
<fields name="params">
</fields>
</config>
...
cũng hoạt động tốt và nó hiển thị các thông số mặc định từ tệp xml của tôi.
Bây giờ tôi muốn cung cấp cho người dùng một tùy chọn để ghi đè tham số mặc định hiện có bằng cách thêm nó vào trong templateDetails.xml.
ví dụ mặc định protostar Tôi đã thay đổi giá trị templateBackgroundColor từ F4F6F7 thành 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>
Điều này cũng hoạt động, nhưng trường ở vị trí sai bây giờ nó được đặt là trường đầu tiên trên đầu và nó là thứ hai.
Theo phương thức loadFile () và load (), nó sẽ ghi đè trường ở vị trí chính xác của nó.
https://github.com/j Joomla / j Joomla-cm / /form/form.php#L727
Tôi đang thiếu gì ở đây? Đã tải lửa để sớm trước mẫu xml?
Bất kỳ trợ giúp được đánh giá cao.