StandartEdit: различия между версиями
V0yager (обсуждение | вклад) Нет описания правки |
V0yager (обсуждение | вклад) Нет описания правки |
||
Строка 18: | Строка 18: | ||
'''/<ПАПКА [[ПЛАГИН|ПЛАГИНА]]>/views/seedit/<имя объекта>.tpl''' | '''/<ПАПКА [[ПЛАГИН|ПЛАГИНА]]>/views/seedit/<имя объекта>.tpl''' | ||
перед отрисовкой формы вызывает метод segetdata<Имя объекта(первая буква большая)> в случае если этот метод определён в контроллере | |||
или принимает данные для редактирования(в случае отправки запроса методом POST). | или принимает данные для редактирования(в случае отправки запроса методом POST). |
Версия от 22:08, 9 февраля 2013
StandartEdit это схема редактирования стандартных объектов
Например создаём страницу с таблицей, сожеращей определённые элементы, стандартная ситуация, не так ли? для редактиорования каждого элемента создаём кнопку "Редактировать" и в качестве действия
onclick="stEdit(<имя объекта>,<ID объекта>,<контроллер(если не текущий)>, <плагин(если не текущий)>)"
функция JS вызовет текущий плагин, контроллер с экшном seeditobject
- Необходима активация транспорта переменных в среду JavaScript
так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка прав доступа для корректной работы нам необходимо добавить ресурс, выглядящий следующим образом
<текущий плагин>/<текущий контроллер>/seedit<имя объекта>
Экшн steditobject, находящийся в CmsBaseController в свою очередь возвращает форму редактирования элемента, которую он берёт из папки
/<ПАПКА ПЛАГИНА>/views/seedit/<имя объекта>.tpl
перед отрисовкой формы вызывает метод segetdata<Имя объекта(первая буква большая)> в случае если этот метод определён в контроллере
или принимает данные для редактирования(в случае отправки запроса методом POST).
При сохранение данных об объекте вызываются по очереди методы текущего контроллера и его модели 'seedit<Имя объекта>'(seeditOrg) в случае если они определены. методу модели в качестве аргумента передаётся массив с параметрами запроса