jquery + flickr
by alessandro_pezzato
HTML
<script src="http://lokeshdhakar.com/projects/lightbox2/js/lightbox.js"></script>
<div id="gallery"></div>
JavaScript
(function($) {
$.fn.flickrSet = function(options) {
var photoSet = this;
var $photoSet = $(this);
var defaults = {
'photoset_id': null,
'api_key': null
}
var settings = $.extend(defaults, options);
if (settings.api_key === null || settings.photoset_id === null) {
alert('You must pass an API key and a Flickr setID');
return;
}
var $photos = [];
var onFlickrData = function(data) {
var photos = data.photoset.photo;
for (var i in photos) {
var photo = photos[i];
var $img = $('<img/>');
var urlBase = 'http://farm' + photo.farm + '.' + 'static.flickr.com/' + photo.server + '/' + photo.id + '_' + photo.secret;
var thumbnail = urlBase +'_q.jpg';
var medium = urlBase +'_c.jpg';
$img.attr('src', thumbnail);
var $a = $('<a/>');
$a.attr('href', medium);
$a.attr('rel', 'lightbox');
$img.appendTo($a);
$a.appendTo($photoSet);
}
//Lightbox.init();
}
var onError = function(jqXHR, textStatus, errorThrown) {
//console.log(jqXHR, textStatus, errorThrown);
}
$.ajax({
url: 'http://api.flickr.com/services/rest/',
dataType: 'json',
data: {
'format': 'json',
'method': 'flickr.photosets.getPhotos',
'photoset_id': settings.photoset_id,
'api_key': settings.api_key,
'nojsoncallback':'1'
},
success: onFlickrData,
error: onError
});
}
$(function() {
$('#gallery').flickrSet({
'api_key': '217340df794bd648c54987527ff08a38',
'photoset_id': '72157629704275893'
});
});
})(jQuery)