====== Шаг6. Создание RSS-feed новостной ленты ====== RSS - неотъемлемая часть любого часто обновляемого проекта. В данном документе мы покажем, как можно создать RSS-feed при помощи Limb и MACRO. Допустим, что нам необходимо сделать RSS-feed для последних новостей нашего туториала. Создадим контроллер **RssController.class.php**, который будет делать вот что: * получать последние новости, * сортировать их по дате последней модификации, * выставлять необходимые заголовки для RSS-ленты, * передавать обработанные данные в MACRO шаблон, где будет формироваться XML. Вот его исходный код: array('date' => 'DESC', 'title' => 'ASC'), 'limit' => 5 ); $this->news = lmbActiveRecord::find('News', $params); $this->response->addHeader('Content-type: application/xml'); } } Выборка последних новостей уже не должна вызывать у вас никаких затруднений, в данном случае мы просто сортируем сразу по двум параметрам. А вот строка добавления заголовка уже интереснее. Вы уже знакомы с объектом [[limb3:ru:packages:net:lmb_http_request|запроса lmbHttpRequest]] (доступным через $this->request в контроллере и шаблоне), аналогично можно работать и с объектом [[limb3:ru:packages:net:lmb_http_response|ответа lmbHttpResponse]]. Здесь через метод addHeader добавляется HTTP-заголовок, необходимый для интерпретации отдаваемого сервером вывода как XML-документа. Добавим шаблон template/rss/display.phtml. Вот он: YourDomain.com last news en Last 5 news from our site {{route_url/}} {{list using="$#news" as="$item"}} {{list:item}} g{$item->id} {$item->title} {{route_url params="controller:news,action:detail,id:{$item->id}"/}} {$item->annotation} date));?> {{/list:item}} {{/list}} Отметим несколько деталей: MACRO корректно обрабатывает xml-заголовок при включенных [[http://www.php.net/manual/en/ini.core.php#ini.short-open-tag|short tags]], вызывающих конфликты в обычных php-скриптах. {{route_url/}} Тег [[limb3:ru:packages:macro:tags:lmb_request_tags:lmb_route_url_tag| {{route_url/}}]] вызванный без параметров, возвращает абсолютную ссылку на текущую страницу. date));?> PHP-вставка выводит дату новости в нужном для RSS-формате. В качестве финального штриха добавим ссылку на рсс-ленту в заголовок всех страниц нашего туториала, изменив шаблон template/page.phtml. Limb3 tutorial {{slot id="page_placeholder"/}} Все! RSS-лента готова! Спасибо, что дошли наш туториал до конца. Надеемся, что вам было интересно и познавательно. ===== Далее ===== * [[.step7|Шаг7. Рекомендации по дальнейшему изучению]]