Парсим любой фид там, где хотим

В blogger для отображения чужих или своих фидов используется виджет "каналы", с помощью которого можно завести в блоге колонку комментариев или чужих новостей. Но виджет работает только на уровне шаблона и вставить в статью или на отдельную страницу его проблематично.
Альтернатива и более удобный и настраиваемый - это гаджет для rss из коллекции гаджетов гугла. Он гибкий, лёгкий, замечательно работает, но несёт в себе неискоренимую кнопку "добавить на страницу" и родительскую ссылку.


Сторонние виджеты существуют, но в них те же или ещё хуже косяки - ссылки, реклама, ограничения и т.п.
Между тем есть очень простой и надёжный способ красиво парсить любой фид, используя одну маленькую хитрость... Не забываем, что в блоге должна быть подключена библиотека jQuery.

Сначала покажем демку, а то не всякий въедет в смысл происходящего:





На демке, как можно догадаться, парсятся фиды этого блога.

Пробуем сделать.
Для начала нужно получить ключ Api у гугла. Берём здесь.

Затем мутим с подключением фидов. Выглядит это так:
<div id="feeds">
<a class="feed" href="http://blogger.omg-linux.ru/feeds/comments/default">Последние комментарии</a> 
<a class="feed" href="http://blogger.omg-linux.ru/feeds/posts/default/-/jquery">Последние статьи</a> 
</div>

+ сами скрипты, куда нужно подставить полученный API ключ:
<!-- include Google Feed API --> 
<script type="text/javascript" src="http://www.google.com/jsapi?key=ВАШ_API_ключ"></script> 

<!-- include this plugin --> 
<script type="text/javascript" src="http://jquery.malsup.com/gfeed/jquery.gfeed.js"></script> 

<script type="text/javascript"> 
    // when the DOM is ready, convert the feed anchors into feed content 
    $(document).ready(function() { 
        $('a.feed').gFeed( { target: '#feeds', tabs: true } ); 
    }); 
</script>

Сам скрипт http://jquery.malsup.com/gfeed/jquery.gfeed.js для надёжности лучше захостить в своём надёжном месте.

Дополнительные опции:
$(document).ready(function() { 
    $('a.feed').gFeed( { max: 3 } ); 
});
max 3 - ограничит кол-во передаваемых постов с одного фида до трёх.

Остальные параметры:
target
jQuery селектор, спомощью которого подключаем блок фидов на странице.
title
Подставляем определённый заголовок фидам вместо дефолтовых (пример смотри в следующем пояснении).
url
Фиды можно указывать непосредственно в скрипте, минуя анкоры (пример заголовка и фида):
$(document).ready(function() { 
    // add a feed manually 
    $('#alistapart').gFeed({  
        url: 'http://blogger.omg-linux.ru/feeds/comments/default', 
        title: 'Blogger is not for nubs & teapots' 
    });     
});
max
Количество отображаемых записей в ленте. По дефолту (если не указывать параметр) - 5.
tabs
Отображать фиды в виде табов.

Официальная страничка.

Комментариев нет:

Отправка комментария