Произвольные поля при добавления объекта на страницу
На странице каталога в режиме “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;”