StandartEdit: различия между версиями

Материал из GLENN CMS WIKI
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 2: Строка 2:


Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли?
Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли?
для редактиорования каждого элемента создаём кнопку "Редактировать" и в качестве действия


'''onclick="stEdit(<имя объекта>,<ID объекта>,<контроллер(если не текущий)>, <плагин(если не текущий)>)"'''
Для редактирования каждого элемента создаём кнопку "Редактировать" и в качестве действия


функция JS вызовет текущий [[плагин]], [[контроллер]] с [[экшн|экшном]] seeditobject
'''onclick="stEdit(<имя объекта>,<ID объекта>,<контроллер(если не текущий)>, <плагин(если не текущий)>)"'''


* Необходима активация [[Транспорт переменных в среду JavaScript|транспорта переменных в среду JavaScript]]
функция JS вызовет переданный [[плагин]], [[контроллер]](если параметры не переданы будут вызваны текущий плагин и контроллер) с [[экшн|экшном]] seeditobject
 
* Необходима активация [[Транспорт переменных в среду JavaScript|транспорта переменных в среду JavaScript]]


так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка [[права доступа|прав доступа]]
так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка [[права доступа|прав доступа]]
для корректной работы нам необходимо добавить [[ресурс контроля прав|ресурс]], выглядящий следующим образом
для корректной работы нам необходимо добавить [[ресурс контроля прав|ресурс]], выглядящий следующим образом


'''<текущий [[плагин]]>/<текущий [[контроллер]]>/seedit<имя объекта>'''
Ресурс для контроля прав '''<текущий [[плагин]]>/<текущий [[контроллер]]>/seedit<имя объекта>'''


Экшн steditobject, находящийся в [[CmsBaseController]] в свою очередь возвращает форму редактирования элемента, которую он берёт из папки  
Экшн steditobject, находящийся в [[CmsBaseController]] в свою очередь возвращает форму редактирования элемента, которую он берёт из папки  
Шаблон редактирования объекта
'''/<ПАПКА [[ПЛАГИН|ПЛАГИНА]]>/views/seedit/<имя объекта>.tpl'''


'''/<ПАПКА [[ПЛАГИН|ПЛАГИНА]]>/views/seedit/<имя объекта>.tpl'''
перед отрисовкой формы вызывает метод '''segetdata<Имя объекта(первая буква большая)>''' сначала модели, затем контроллера, в случае если они определены
 
перед отрисовкой формы вызывает метод segetdata<Имя объекта(первая буква большая)> сначала модели, затем контроллера, в случае если они определены
При вызове метода модели, данные, возвращённые методом помещаются в массив $data, доступный в шаблоне редактирования объекта
При вызове метода модели, данные, возвращённые методом помещаются в массив $data, доступный в шаблоне редактирования объекта



Версия от 14:26, 10 февраля 2013

StandartEdit это схема редактирования стандартных объектов.

Например создаём страницу с таблицей, содеращей определённые элементы, стандартная ситуация, не так ли?

Для редактирования каждого элемента создаём кнопку "Редактировать" и в качестве действия

onclick="stEdit(<имя объекта>,<ID объекта>,<контроллер(если не текущий)>, <плагин(если не текущий)>)"

функция JS вызовет переданный плагин, контроллер(если параметры не переданы будут вызваны текущий плагин и контроллер) с экшном seeditobject

* Необходима активация транспорта переменных в среду JavaScript

так как при редактировании у нас вызывается один и тот же экшн то в схему внедрена дополнительная проверка прав доступа для корректной работы нам необходимо добавить ресурс, выглядящий следующим образом

Ресурс для контроля прав <текущий плагин>/<текущий контроллер>/seedit<имя объекта>

Экшн steditobject, находящийся в CmsBaseController в свою очередь возвращает форму редактирования элемента, которую он берёт из папки

Шаблон редактирования объекта
/<ПАПКА ПЛАГИНА>/views/seedit/<имя объекта>.tpl

перед отрисовкой формы вызывает метод segetdata<Имя объекта(первая буква большая)> сначала модели, затем контроллера, в случае если они определены При вызове метода модели, данные, возвращённые методом помещаются в массив $data, доступный в шаблоне редактирования объекта

или принимает данные для редактирования(в случае отправки запроса методом POST).

При сохранение данных об объекте вызываются по очереди методы текущего контроллера и его модели 'seedit<Имя объекта>'(seeditOrg) в случае если они определены. методу модели в качестве аргумента передаётся массив с параметрами запроса