Создание RSS-канала в Symfony - PullRequest
       32

Создание RSS-канала в Symfony

0 голосов
/ 25 ноября 2010

Я пытаюсь создать RSS-канал в Symfony.

Я добавил следующий маршрут:

rss_every_content:
  url:    /rss/all
  param: { module: content, action: index, sf_format: rss }
  requirements:
    sf_method: [get]

И я создал файл с именем indexSuccess.rss.php в модуле / content / templates /:

test message

Но когда я захожу на url mysite / rss, я получаю только пустую страницу!Нет контента вообще, даже панель отладки ... Помогите!Что происходит?

Ответы [ 3 ]

3 голосов
/ 03 июня 2011

По умолчанию формат RSS не поддерживается приложением Symfony, но вы можете добавить эти строки в свой factories.yml:

all: 
  request:
    param:
      formats:
        rss: application/rss+xml

Все запросы с $sf_format = rss будут отвечать MimeType application/rss+xml

3 голосов
/ 25 ноября 2010

У меня была такая же проблема, как и у вас.Я заметил, что sf_format: xml с indexSuccess.xml.php, кажется, работает, пока вы задаете тег XML XML вверху, например:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">

<channel>
    <title>RSS Example</title>
    <description>This is an example of an RSS feed</description>
    <link>http://www.domain.com/link.htm</link>
    <lastBuildDate>Mon, 28 Aug 2006 11:12:55 -0400 </lastBuildDate>
    <pubDate>Tue, 29 Aug 2006 09:00:00 -0400</pubDate>

    <item>
        <title>Item Example</title>
        <description>This is an example of an Item</description>
        <link>http://www.domain.com/link.htm</link>
        <guid isPermaLink="false">1102345</guid>
        <pubDate>Tue, 29 Aug 2006 09:00:00 -0400</pubDate>
    </item>

</channel>
</rss>

From http://www.rss -tools.com / rss-example.htm

Это хак, но я не вижу, как еще это сделать.

0 голосов
/ 15 сентября 2017
Controller Method
//------------------------latest 10 RSS FEED----------------------------------
    public function generateRssFeedsAction()
    {
     $em = $this->getDoctrine()->getManager();
     $newsObj = $em->getRepository('CrossOverAppUserBundle:News')->findlatestNewArticle($page_number=1, $limit=10);
     $response = new Response($this->renderView('CrossOverAppUserBundle:News:rss_feed.xml.twig',array('news'=>$newsObj)));
     $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
     return $response;
    }

Twig Templete 
{% autoescape %}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        {% for entry in news %}
            <article_id>{{ entry.id }}</article_id>
            <article_name>{{ entry.newsTitle }}</article_name>
            <description>{{ entry.newDescription }}</description>
            <article_createdby>{{ entry.user.firstName }}</article_createdby>
            <article_createdat>{{ entry.createdAt|date("d-m-Y H:i:s") }}</article_createdat>
             <article_image><img src="{{ asset(entry.WebPath) }}" width="50" height="50"/></article_image>

        {% endfor %}
    </url>
</urlset>
{% endautoescape %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...