StandartEdit: различия между версиями
V0yager (обсуждение | вклад) Нет описания правки |
V0yager (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
StandartEdit это схема редактирования стандартных объектов. | StandartEdit это схема редактирования стандартных объектов. | ||
===Форма редактирования=== | |||
Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли? | Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли? | ||
Строка 17: | Строка 19: | ||
* Для работы, необходима активация [[Транспорт переменных в среду JavaScript|транспорта переменных в среду JavaScript]] | * Для работы, необходима активация [[Транспорт переменных в среду JavaScript|транспорта переменных в среду JavaScript]] | ||
Экшн steditobject, находящийся в [[CmsBaseController]] в свою очередь возвращает форму редактирования элемента, которую он берёт из папки | Экшн steditobject, находящийся в [[CmsBaseController]] в свою очередь возвращает форму редактирования элемента, которую он берёт из папки | ||
Строка 35: | Строка 33: | ||
или принимает данные для редактирования(в случае отправки запроса методом POST). | или принимает данные для редактирования(в случае отправки запроса методом POST). | ||
===Контроль прав=== | |||
Так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка [[права доступа|прав доступа]] | |||
для корректной работы нам необходимо добавить [[ресурс контроля прав|ресурс]], выглядящий следующим образом | |||
Ресурс для контроля прав '''<текущий [[плагин]]>/<текущий [[контроллер]]>/seedit<имя объекта>''' | |||
===Сохранение данных=== | |||
При сохранение данных об объекте вызываются по очереди методы текущего [[контроллер|контроллера]] и его [[модель|модели]] 'seedit<Имя объекта>'(seeditOrg) в случае если они определены. | При сохранение данных об объекте вызываются по очереди методы текущего [[контроллер|контроллера]] и его [[модель|модели]] 'seedit<Имя объекта>'(seeditOrg) в случае если они определены. | ||
методу модели в качестве аргумента передаётся массив с [[параметры запроса|параметрами запроса]] | методу модели в качестве аргумента передаётся массив с [[параметры запроса|параметрами запроса]] | ||
===Завершение=== | |||
По завершении вызывается метод управляющего контроллера '''sefinish<Имя объекта>''' | По завершении вызывается метод управляющего контроллера '''sefinish<Имя объекта>''' |
Версия от 14:25, 11 февраля 2013
StandartEdit это схема редактирования стандартных объектов.
Форма редактирования
Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли?
Для редактирования каждого элемента создаём кнопку "Редактировать" и в качестве действия указываем:
onclick="seEdit(<имя объекта>,<ID объекта>,<контроллер>, <плагин>)" Параметры: <имя объекта>: Любое название объекта состоящее из латинских букв без пробелов пример: org <ID объекта>: ID объекта - целое число. Также можно передать объект с несколькими параметрами пример: {'id': 2, 'parent': 4} <контроллер>: (ОПЦИОНАЛЬНО) если передан этот параметр то метод редактирования будет вызван в переданном, контроллере <плагин>: (ОПЦИОНАЛЬНО) если передан этот параметр то метод редактирования будет вызван в переданном, контроллере
функция JS вызовет переданный плагин, контроллер(если параметры не переданы будут вызваны текущий плагин и контроллер) с экшном seeditobject
- Для работы, необходима активация транспорта переменных в среду JavaScript
Экшн steditobject, находящийся в CmsBaseController в свою очередь возвращает форму редактирования элемента, которую он берёт из папки
Шаблон редактирования объекта /<ПАПКА ПЛАГИНА>/views/seedit/<имя объекта>.tpl
Перед отрисовкой формы вызывает метод segetdata<Имя объекта(первая буква большая)> сначала модели, затем контроллера, в случае если они определены При вызове метода модели, данные, возвращённые методом помещаются в массив $data, доступный в шаблоне редактирования объекта. Первым аргументом передаётся массив с параметрами, содержащий элементы запроса и переменные
object - тип объекта objectid - его ID (второй аргумент js функции seEdit)
или принимает данные для редактирования(в случае отправки запроса методом POST).
Контроль прав
Так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка прав доступа для корректной работы нам необходимо добавить ресурс, выглядящий следующим образом
Ресурс для контроля прав <текущий плагин>/<текущий контроллер>/seedit<имя объекта>
Сохранение данных
При сохранение данных об объекте вызываются по очереди методы текущего контроллера и его модели 'seedit<Имя объекта>'(seeditOrg) в случае если они определены. методу модели в качестве аргумента передаётся массив с параметрами запроса
Завершение
По завершении вызывается метод управляющего контроллера sefinish<Имя объекта>