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)