Template:Nankai/jflickrfeedJS

/*

  • Copyright (C) 2009 Joel Sutherland
  • Licenced under the MIT license
  • http://www.newmediacampaigns.com/page/jquery-flickr-plugin
  • Available tags for templates:
  • title, link, date_taken, description, published, author, author_id, tags, image*
  • /

(function($) { $.fn.jflickrfeed = function(settings, callback) { settings = $.extend(true, { flickrbase: 'http://api.flickr.com/services/feeds/', feedapi: 'photos_public.gne', limit: 20, qstrings: { lang: 'en-us', format: 'json', jsoncallback: '?' }, cleanDescription: true, useTemplate: true, itemTemplate: , itemCallback: function(){} }, settings);

var url = settings.flickrbase + settings.feedapi + '?'; var first = true;

for(var key in settings.qstrings){ if(!first) url += '&'; url += key + '=' + settings.qstrings[key]; first = false; }

return $(this).each(function(){ var $container = $(this); var container = this; $.getJSON(url, function(data){ $.each(data.items, function(i,item){ if(i < settings.limit){

// Clean out the Flickr Description if(settings.cleanDescription){

var regex = /

(.*?)<\/p>/g; var input = item.description; if(regex.test(input)) { item.description = input.match(regex)[2] if(item.description!=undefined) item.description = item.description.replace('<p>',).replace('

',);

} }

// Add Image Sizes // http://www.flickr.com/services/api/misc.urls.html item['image_s'] = item.media.m.replace('_m', '_s'); item['image_t'] = item.media.m.replace('_m', '_t'); item['image_m'] = item.media.m.replace('_m', '_m'); item['image'] = item.media.m.replace('_m', ); item['image_b'] = item.media.m.replace('_m', '_b'); delete item.media;

// Use Template if(settings.useTemplate){ var template = settings.itemTemplate; for(var key in item){ var rgx = new RegExp('Template:' + key + '', 'g'); template = template.replace(rgx, item[key]); } $container.append(template) }

//itemCallback settings.itemCallback.call(container, item); } }); if($.isFunction(callback)){ callback.call(container, data); } }); }); } })(jQuery);