Я нахожусь на компоненте, где я хочу, чтобы пользователь добавил свои собственные поля в качестве параметров для другой записи.
Например, у меня есть представление Product (администратор / компоненты / com_myproducts / views / product / ... ). Это представление получит название, псевдоним и описание своей формы (администратор / компоненты / com_myproducts / models / forms / product. xml). Форма xml - это stati c, но я хочу, чтобы пользователи сами добавляли атрибуты продукта.
Поэтому я добавляю еще одно представление Атрибуты, где пользователи могут добавлять записи с именем и типом поля .
Теперь я хочу, чтобы эти атрибуты были добавлены в форму продукта. Таким образом, это в основном выборка атрибутов из базы данных, загрузка формы XML, добавление атрибутов к XML и подача измененного XML в объект JForm для возврата его в модели Product getForm ().
В модели Product это будет выглядеть примерно так:
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm(
'com_myproducts.product',
'product',
array(
'control' => 'jform',
'load_data' => $loadData
)
);
$xml = $form->getXML();
$attributes = $this->getAttributes();
$newForm = Helper::manipulateFormXML($xml, $attributes);
/*
* load manipulated xml into form
* don't know what to do here
*/
...
if (empty($form)) {
return false;
}
return $form;
}
Как я могу обновить форму с измененным xml или мне следует подойти к этому по-другому?