Advertisement
tutosfaciles48

FeedEk 3.0

Mar 9th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. * FeedEk jQuery RSS/ATOM Feed Plugin v3.0 with YQL API
  3. * http://jquery-plugins.net/FeedEk/FeedEk.html  https://github.com/enginkizil/FeedEk
  4. * Author : Engin KIZIL http://www.enginkizil.com  
  5. */
  6.  
  7. (function ($) {
  8.     $.fn.FeedEk = function (opt) {
  9.         var def = $.extend({
  10.             MaxCount: 5,
  11.             ShowDesc: true,
  12.             ShowPubDate: true,
  13.             DescCharacterLimit: 0,
  14.             TitleLinkTarget: "_blank",
  15.             DateFormat: "",
  16.             DateFormatLang:"en"
  17.         }, opt);
  18.        
  19.         var id = $(this).attr("id"), i, s = "", dt;
  20.         $("#" + id).empty();
  21.         if (def.FeedUrl == undefined) return;      
  22.         $("#" + id).append('<img src="loader.gif" />');
  23.  
  24.         var YQLstr = 'SELECT channel.item FROM feednormalizer WHERE output="rss_2.0" AND url ="' + def.FeedUrl + '" LIMIT ' + def.MaxCount;
  25.  
  26.         $.ajax({
  27.             url: "https://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent(YQLstr) + "&format=json&diagnostics=false&callback=?",
  28.             dataType: "json",
  29.             success: function (data) {
  30.                 $("#" + id).empty();
  31.                 if (!(data.query.results.rss instanceof Array)) {
  32.                     data.query.results.rss = [data.query.results.rss];
  33.                 }
  34.                 $.each(data.query.results.rss, function (e, itm) {
  35.                     s += '<li><div class="itemTitle"><a href="' + itm.channel.item.link + '" target="' + def.TitleLinkTarget + '" >' + itm.channel.item.title + '</a></div>';
  36.                    
  37.                     if (def.ShowPubDate){
  38.                         dt = new Date(itm.channel.item.pubDate);
  39.                         s += '<div class="itemDate">';
  40.                         if ($.trim(def.DateFormat).length > 0) {
  41.                             try {
  42.                                 moment.lang(def.DateFormatLang);
  43.                                 s += moment(dt).format(def.DateFormat);
  44.                             }
  45.                             catch (e){s += dt.toLocaleDateString();}                            
  46.                         }
  47.                         else {
  48.                             s += dt.toLocaleDateString();
  49.                         }
  50.                         s += '</div>';
  51.                     }
  52.                     if (def.ShowDesc) {
  53.                         s += '<div class="itemContent">';
  54.                          if (def.DescCharacterLimit > 0 && itm.channel.item.description.length > def.DescCharacterLimit) {
  55.                             s += itm.channel.item.description.substring(0, def.DescCharacterLimit) + '...';
  56.                         }
  57.                         else {
  58.                             s += itm.channel.item.description;
  59.                          }
  60.                          s += '</div>';
  61.                     }
  62.                 });
  63.                 $("#" + id).append('<ul class="feedEkList">' + s + '</ul>');
  64.             }
  65.         });
  66.     };
  67. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement