Back-End

12 jun, 2014

Ler RSS de outros sites com Laravel + SimplePie

Publicidade

Olá! Neste artigo, mostrarei de forma simples como você pode exibir em seu site notícias em RSS. Escrevo este artigo, para exemplificar algo que fiz em meu site de trabalho, o Bill TEC, que está sendo desenvolvido com Laravel 4.1 e onde utilizo o WordPress. Neste blog, o RSS fica em: http://www.billjr.com.br/feed/

Agora, para integrar facilmente este conteúdo (no caso, os artigos) dentro do meu site de trabalho (ou seu projeto Laravel), faremos o seguinte:

Primeiro, vamos adicionar no arquivo composer.json o SimplePie, uma classe muito boa e completa para criar e ler RSS.

Adicione a seguinte linha:

"simplepie/simplepie": "dev-master"

Após isso, entre no terminal e use o comando:

composer update

Após a atualização/ instalação do simplepie, crie dentro da pasta /public uma pasta de nome cache, e dê permissão de escrita.

Agora, basta usar estes códigos em seu controller, ou até mesmo diretamente no arquivo routes, desta forma:

$feed = new SimplePie();
$feed->set_feed_url('http://billjr.com.br/feed/');
$feed->enable_order_by_date(true);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache');
$feed->init();

return View::make('inicio')->with('feed', $feed);

No caso, estarei renderizando a view início, passando a variável $feed, desta forma:

<h2>
    Blog <a href=”<?php echo $feed->get_permalink(); ?>” target=”_blank”>
    <?php echo $feed->get_title(); ?></a>
</h2>

<nav>
<?php
    $max = $feed->get_item_quantity();
    for ($x = 0; $x < $max; $x++):
        $item = $feed->get_item($x);
?>

<div class=”item”>
    <p class=”title”>
        <a href=”<?php echo $item->get_permalink(); ?>” target=”_blank”>
            <?php echo $item->get_title(); ?>
        </a>
        <small>Data: <?php echo $item->get_date(‘j F Y | g:i a’); ?></small>
    </p>
</div>

<?php endfor; ?>
</nav>

Com isso, você exibirá uma listagem de artigos RSS com nome do blog, título do artigo, link e data. Existem outras opções de exibição, e  a formatação fica a gosto de cada um.

Se quiser saber mais sobre a classe SimplePie, acesse o Wiki oficial com as informações de integração, geração e exibição de RSS: http://simplepie.org/wiki/reference/simplepie/start

Até o próximo artigo, pessoal!

Grande abraço!