HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-84-generic #84-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 5 22:36:38 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //old_home_backup/crescentelectronics.co.uk/public_html/flickr/js/jflickrfeed.js
/*
 * (C) 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>(.*?)<\/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('</p>', '');
							}
						}
						// 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('{{' + 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);