Класс
JForm позволяет создавать форму из нескольких файлов.
Подгрузка дополнительных форм в общем виде происходит так
foreach ($items as $item)
{
// Add the params fields to the form.
JForm::addFormPath(JPATH_ADMINISTRATOR .'/components/'.$item->element.'/models/forms/');
$form->loadFile('myforms', false);
}
Мне это понадобилось для того, чтобы дополнить поле 'params'.
Все вроде хорошо, но одна беда.
Получается или "рабочий вариант" или "красивая структура данных" на выходе. Но совместить одно с другим ни как не получается.
Планируется подгружать данные из нескольких компонентов.
Чтобы избежать возможные коллизии с одноименными полями в разных компонентах хочу сгруппировать их по имени компонента.
В общем виде данные должны выглядеть примерно так.
{"component_1":{"param_1":"val_1", "param_2":"val_2"},
"component_2":{"param_1":"val_1", "param_2":"val_2"}}
Это тоже хорошо получается. Есть два варианта.
1) указав составное имя группы
<form>
<fields name="params.component_1">
<fieldset name="component_1">
<field name="param_1" type="text" label="param_1" />
<field name="param_2" type="text" label="param_2" />
</fieldset>
</fields>
</form>
2) вложив дополнительную группу
<form>
<fields name="params">
<fields name="component_1">
<fieldset name="component_1">
<field name="param_1" type="text" label="param_1" />
<field name="param_2" type="text" label="param_2" />
</fieldset>
</fields>
</fields>
</form>
В базе, при этом, все выглядит прекрассно. И пользуется хорошо.
Однако, обратно на форму данные упорно не хотят загружаться.Может у кого-то есть соображения на эту тему?