Произвольные поля при добавления объекта на страницу

Произвольные поля при добавления объекта на страницу

На странице каталога в режиме “edit-in-place” есть кнопка "Добавить", которая добавляет объект каталога. В параметрах создания объекта есть только название объекта и его цена. Как ввести в эту форму для создания объекта дополнительные параметры, такие как описание, цвет, тип данных, используемый шаблон, поле H1 и т.д.

Оказалось, что это довольна нетривиальная задача. Ниже приведен путь ее решения:

Надо использовать файлы, находящиеся в архиве “addobject.rar”. “formadd.tpl” - надо положить в папку “tpls/data/reflection/” и настроить верстку. Два других файла (“permissions.custom.php” и “__custom.php”) в папку “classes/modules/data/”.

В шаблоне “tpls/catalog/default.tpl”, в блоке “objects_block”, необходимо поставить макрос:

%data formadd(%id%, 'formadd')%” - он в итоге отобразит форму для добавления товара.

В файле “__custom.php”, в методе “formadd()”, необходимо изменить строку:

$arr_users = array('14', '27675')” - т.е. добавить в массив все id пользователей, которые будут добавлять объекты каталога с клиентской части сайта.

$tpl_id = 34;”//34-номер шаблона, с которым должны добавляться страницы.

if(!$object_type_id = umiHierarchy::getInstance()->getDominantTypeId($id)) $object_type_id = 838;” //838-id шаблона данных

“if(!$object_type_id = umiHierarchy::getInstance()->getDominantTypeId($id)) return "838";” //838-id шаблона данных

Необходимо так же шаблоне, который отвечает за вывод страницы каталога (имя_catalog_view.tpl), создать блок который отрабатывается когда в разделе нет еще объектов:

$FORMS['objects_block_empty'] = <<<END

%data formadd(%id%, 'formadd')%

END;