Как правильно настроить метод $ form-> loadFile?

В моем системном плагине я использую следующую команду для загрузки стандартных файлов 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 empty

...
    <config>
        <fields name="params">

        </fields>
    </config>
...

также отлично работает и отображает параметры по умолчанию из моего xml-файла.

Теперь я хочу дать пользователям возможность переопределить существующий параметр по умолчанию, просто добавив его внутри templateDetails.xml.

example protostar default I changed 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>

это также работает, но поле находится в неправильном положении теперь он расположен как первое поле сверху, и это было второе.

В соответствии с методом loadFile () и load () он должен переопределять это поле в точном месте.

https://github.com/joomla/joomla -cms /блоб /постановка /библиотеки /Joomla /форма /form.php # L851 https://github.com/joomla/joomla-cms/блоб /постановка /библиотеки /Joomla /форма /form.php # L727

Что мне здесь не хватает? Ускорен ли загрузка перед шаблоном xml?

Любая помощь приветствуется.

7 голосов | спросил Stefan 7 Mayam14 2014, 01:57:05

1 ответ


2

Нет, он не переопределяет поле на месте, оно переопределяет узел на месте.

В вашем случае вы объединяетесь узел: fieldset- > Название: расширенный   узел: поле- > название: templateBackgroundColor ...

в узел: fieldset- > Название: расширенный   узел: поле- > Название: templateColor ...   узел: поле- > Название: templateBackgroundColor ... ....

Порядок вашего узла fieldset: templateBackgroundColor Порядок исходного узла набора полей: templateColor, templateBackgroundColor

Сбив с толку, потому что из формулировки документов Joomla это подразумевает, что он объединяет поля «на месте», но он объединяет xml «на месте»

Лучший способ сохранить заказ - добавить в свой файл

В качестве альтернативы вы можете использовать большую часть api нижнего уровня api для управления XML. Я не рекомендую это, потому что API-интерфейс формы время от времени изменяется, чтобы исправить проблемы с документированной функциональностью и фактической функциональностью

ответил garyamort 15 J0000006Europe/Moscow 2014, 04:27:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132