Flickr Extension
From S23Wiki
This is a little Mediawiki Extension to include Flickr thumbnails. This example gets the X most interesting pictures (yes, Flickr really sorts like "sort"=>"interestingness-desc", by the users rating) for the tag you specify. You can use this to instantly put some related pictures on Wiki pages that dont have pictures yet. This is just a quick example, and can be heavily extended. Feel free to do so.
What you type:
<flickr limit=5>Fnord</flickr>
What you get:
| The 5 most interesting photos from Flickr for the tag 'Fnord' | ||||
![]() | ![]() | ![]() | ![]() | ![]() |
If you wish to just insert one photo, of your choice, then you require this Flickr extension : http://wiki.edsimpson.co.uk/index.php/Flickr_Extension (which requires no additional PEAR or phpFlickr libraries).
The <flickr>-tag surrounds a keyword/Flickr Tag and optionally you can use limit to change the amount of thumbnails being shown, the maximum for tag-length is 255 chars and the maximum for limit is 10.
This is possible due to using a) the Flickr API, b) phpFlickr, c) the Debian PHP-Pear packages and d) a nice article in the latest iX (german) magazine, issue July 2006, p. 62 called "Bildergeflimmer". We could call this a Flickr->Mediawiki Mashup (->same iX issue, p. 55). Mutante 20:56, 18 June 2006 (CEST)
[edit] Source
<?php
# Flickr > Mediawiki MashUp Test (Web 2.3)
# mutante from http://s23.org/wiki
# inspired by "iX" magazine issue July 2006, p.62 article "Bildergeflimmer"
# greets: cosmea,took,DrOwl,Kunda,Finn,hundfred,kdoz... and all of S23
$wgExtensionFunctions[] = "wfFlickrExtension";
# extension hook callback function from mediawiki
function wfFlickrExtension() {
global $wgParser;
$wgParser->setHook( "flickr", "renderFlickr" );
}
function renderFlickr( $input, $argv ) {
global $wgOutputEncoding;
# How many pictures to show , upper limit 10, if not good,set default to 3
# Make really sure the input is integer
if (is_numeric($argv["limit"]) && is_int(intval($argv["limit"])) && $argv["limit"]>0 && $argv["limit"] <11) {
$limit=intval($argv["limit"]);
} else {
$limit=3;
}
# What is the tag
$input = mysql_real_escape_string($input);
# If not too long, set Input Text as Tag
if (!is_string($input) || strlen($input)>255) {
$input="error";
} else {
$tag=$input;
}
require_once("./extensions/phpFlickr-2.0.0/phpFlickr.php");
$f = new phpFlickr("<your Flickr API key here>");
$f->enableCache("fs","./flickr_cache");
# get the X most interesting pictures for tag "flower"
$photos_interesting = $f->photos_search(array("tags"=>"$tag", "sort"=>"interestingness-desc","per_page"=>$limit));
# output a table with the pictures
$output="<table><tr><td colspan='$limit'>The $limit most interesting photos from Flickr for the tag <b>'$tag'</b></td></tr><tr>";
if (is_array ($photos_interesting['photo']) && count($photos_interesting['photo'])>0) {
foreach ($photos_interesting['photo'] as $photo) {
$output.="<td><a href=http://www.flickr.com/photos/$photo[owner]/$photo[id]><img border='0' alt='$photo[title]' " . " src=". $f->buildPhotoURL($photo, "Square") . "></a></td>";
}
$output.="</tr></table>";
} else {
$output="<i>Flickr Extension: no images found for tag <b>$input</b></i>";
}
return $output;
}
?>






