Если на сайте есть новости, сайт должен иметь RSS канал. 😉
RSS канал это конечно же сугубо личное дело, но все же.

Реализуем RSS при помощи хелпера feed::
Создаем контроллер News, экшн rss, а в него пишем:

//Устанавливаем заголовок RSS канала
$info = array(
            'title' => 'Новости',
            'language' => 'ru',
            'description' => 'Новости от Mysite',
            'link' => 'http::/mysite.com/news/rss',
            'pubDate' => time());

//Выбираем все категории новостей нашего сайта, с флагом show=1
$newscategories = ORM::factory('newscategory')->where('show', '=', 1)
            ->find_all();

        $items = array();

        //Перебираем наши новости и загоняем их в массив
        foreach ($newscategories as $newscategory)
        {
            $newss = $newscategory->news
                    ->where('show', '=', 1)
                    ->find_all();
            foreach ($newss as $news)
            {
                $url = $siteurl.'/news/'.$newscategory->url.'/'.$news->url.'.html';
                $items[] = array(
                    'title' => $news->title,
                    'link' => $url,
                    'guid' => $url,
                    'description' => $news->short_description,
                    'pubDate' => $news->date
                );
            }
        }

        //Перед выводом не забудем установить правильный хедер для xml
        header('Content-Type: text/xml');

        //выводим нашу RSS ленту
        echo feed::create($info, $items);

Вот такой нужный хелпер feed имеется в Kohana.

2 thoughts on “Делаем RSS канал новостей в Kohana 3.2

  1. Поставил, не работает !

    /application/classes/Controller
    сюда добавил папку News, обязательно с большой буквы ?
    в этот фаил я добавил фаил Rss.php и в него вставил код тот что выше.

    Не совсем понял, куда вписывать категории из которых будет брать новости.
    Приведите пример пожалуйста.

    Reply

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required