Содержание

Пишем сайты в два экшена

by shuler

Я написал два экшена, которые запарился писать каждый раз в новом проекте. Под проектом понимается как-нибудь простенький сайт.

Примеры

Пример №1. Нужно получить 2 последние новости на главной странице

<action name="GetLastNews"><path>GetObjectList</path>
     <parameters>
        <request>
             <param name="gol_UsePages">"false"</param>
             <param name="gol_Class">"News"</param>
             <param name="gol_Objects">"news"</param>
             <param name="gol_PageSize">2</param>
        </request>
    </parameters>
</action>

Пример №2. Нужно сделать постраничный вывод новостей с обработкой номера страницы

<action name="GetNews">
     <path>GetObjectList</path>
     <parameters>
        <request>
             <param name="gol_UsePages">"true"</param>
             <param name="gol_Class">"News"</param>
             <param name="gol_Objects">"news"</param>
             <param name="gol_PageSize">5</param>
        </request>
    </parameters>
    <redirects>
        <redirect name="outOfRange" path="/news/" />
    </redirects>
</action>

Пример №3. Получить новость по ее Id в урле. Помимо новости — все ее листы. Сделать редирект, если новости нет

<action name="GetNewsItem">
     <path>GetObjectItem</path>
     <parameters>
        <request>
             <param name="goi_Search">array('newsId' => Page::$RequestData[1])</param>
             <param name="goi_Options">array(OPTION_WITH_LISTS => true)</param>
             <param name="goi_Class">"News"</param>
             <param name="goi_Object">"newsItem"</param>
        </request>
    </parameters>
    <redirects>
        <redirect name="empty" path="/news/" />
    </redirects>
</action>

GetObjectList

Описание параметров

Описание редиректов

Описание возвращаемых данных (только в случае значения gol_UsePages = «true»)

GetObjectItem

Описание параметров

Описание редиректов

Общие замечания

  1. Редиректы описывать необязательно. При его отсутствии в параметрах action просто ничего не вернет.
  2. Строковые параметры надо передавать в кавычках.
  3. Обязательными параметрами для GetObjectItem являются goi_Class и goi_Object.
  4. Обязательными параметрами для GetObjectList являются gol_Class и gol_Objects.
  5. При выставленном gol_UsePages «true» параметр gol_PageSize обязателен.