====== Пишем сайты в два экшена ======
//by shuler//
Я написал два экшена, которые запарился писать каждый раз в новом проекте. Под проектом понимается как-нибудь простенький сайт.
* {{:eaze:samples:getobjectlist.phps|GetObjectList.php}} — получение списка объектов по опредленным условиям.
* {{:eaze:samples:getobjectitem.phps|GetObjectItem.php}} — получение одного объекта по условиям.
===== Примеры =====
==== Пример №1. Нужно получить 2 последние новости на главной странице ====
GetObjectList
"false"
"News"
"news"
2
==== Пример №2. Нужно сделать постраничный вывод новостей с обработкой номера страницы ====
GetObjectList
"true"
"News"
"news"
5
==== Пример №3. Получить новость по ее Id в урле. Помимо новости — все ее листы. Сделать редирект, если новости нет ====
GetObjectItem
array('newsId' => Page::$RequestData[1])
array(OPTION_WITH_LISTS => true)
"News"
"newsItem"
===== GetObjectList=====
=== Описание параметров ====
* gol_Search — массив поиска, который подставляется в Factory::Get().
* В этом массиве не нужно указывать параметры «page» и «pageSize», они будут описаны ниже.
* В этом массиве можно получить доступ к данным урла. Пример: array('url' => Page::$RequestData[0])
* В этом массиве можно получить доступ к данным классов Request, Response и Session. Пример: array('statusId' => Request::getString('statusId'))
* gol_Options — массив опций, который подставляется в Factory::Get().
* В этом массиве не нужно указывать значение для опции OPTION_WITHOUT_PAGES, она управляется автоматически. Пример: array(OPTION_WITH_LISTS => true)
* gol_UsePages — задает режим работы экшена. Если задано «true», то выборка будет осуществляться постранично с учетом размера страницы.
* gol_PageSize — кол-во объектов на одну страницу. Параметр может использоваться для любых значений параметра gol_UsePages.
* gol_Class — название класса объекта. Если вы хотите использовать NewsFatory, надо поставить значение 'News';
* gol_Objects — имя переменной для полученных данных в шаблоне
=== Описание редиректов ===
* outOfRange — редирект для случая, когда экшену передана недоступная для выборки страница.
=== Описание возвращаемых данных (только в случае значения gol_UsePages = «true») ===
* __pageNumber — номер текущей страницы
* __pageCount — кол-во возможных страниц для заданных параметров
* __objectsCount — кол-во объектов для заданных параметров
===== GetObjectItem =====
==== Описание параметров ====
* goi_Search — аналогично gol_Search
* goi_Options — аналогично gol_Options
* goi_Class — аналогично gol_Class
* goi_Object — аналогично gol_Objects
==== Описание редиректов ====
* empty — редирект для случая, когда объект не найден.
===== Общие замечания =====
- Редиректы описывать необязательно. При его отсутствии в параметрах action просто ничего не вернет.
- Строковые параметры надо передавать в кавычках.
- Обязательными параметрами для GetObjectItem являются goi_Class и goi_Object.
- Обязательными параметрами для GetObjectList являются gol_Class и gol_Objects.
- При выставленном gol_UsePages «true» параметр gol_PageSize обязателен.