====== Пишем сайты в два экшена ====== //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 обязателен.