Difference between revisions of "Flickr Extension"

From s23
Jump to navigation Jump to search
imported>mutante
m
imported>mutante
m
Line 22: Line 22:
  
 
This is possible due to using a) the [http://www.flickr.com/services/api/ Flickr API],  b) [http://www.phpflickr.com/ phpFlickr], c) the Debian [http://packages.debian.org/unstable/web/php-pear 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]] [http://www.programmableweb.com/matrix Mashup] (->same iX issue, p. 55). [[User:mutante|mutante]] 20:56, 18 June 2006 (CEST)
 
This is possible due to using a) the [http://www.flickr.com/services/api/ Flickr API],  b) [http://www.phpflickr.com/ phpFlickr], c) the Debian [http://packages.debian.org/unstable/web/php-pear 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]] [http://www.programmableweb.com/matrix Mashup] (->same iX issue, p. 55). [[User:mutante|mutante]] 20:56, 18 June 2006 (CEST)
 +
 +
=== Source ===
 +
 +
<pre>
 +
<?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 to cosmea
 +
 +
$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 , limit < 10
 +
 +
if (is_numeric($argv["limit"]) && $argv["limit"]>=0 && $argv["limit"] <=11) {
 +
$limit=$argv["limit"];
 +
} else {
 +
$limit=3;
 +
}
 +
 +
# just in case
 +
$input = mysql_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("phpFlickr.php");
 +
 +
$f = new phpFlickr("<Your FlickrAPI key here>");
 +
$f->enableCache("fs","./flickr_cache");
 +
 +
# get the X most interesting pictures for this tag
 +
$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><$
 +
foreach ($photos_interesting['photo'] as $photo) {
 +
$output.="<td><img border='0' alt='$photo[title]' " . " src=". $f->buildPhotoURL($photo, "Square") . "></td>";
 +
}
 +
$output.="</tr></table>";
 +
 +
return $output;
 +
        }
 +
?>
 +
</pre>
 +
 +
As always, this is just a quick example, and can be heavily extended. Feel free to do so.
  
 
[[Category:Mediawiki Extensions]]
 
[[Category:Mediawiki Extensions]]

Revision as of 19:08, 18 June 2006

I have written this little Mediawiki Extension to include Flickr thumbnails, this gets the x most interesting (yes, Flickr really sorts like "sort"=>"interestingness-desc", by the users rating) for the tag you specify. You can use this to put some related pictures on Wiki pages that dont have pictures yet very quickly.

What you type:

<flickr>Leary</flickr>


What you get:

<flickr>Leary</flickr>

What you type:

<flickr limit=5>Fnord</flickr>


What you get:

<flickr limit=5>Fnord</flickr>

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)

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 to cosmea

$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 , limit < 10

if (is_numeric($argv["limit"]) && $argv["limit"]>=0 && $argv["limit"] <=11) {
$limit=$argv["limit"];
} else {
$limit=3;
}

# just in case
$input = mysql_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("phpFlickr.php");

$f = new phpFlickr("<Your FlickrAPI key here>");
$f->enableCache("fs","./flickr_cache");

# get the X most interesting pictures for this tag
$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><$
foreach ($photos_interesting['photo'] as $photo) {
$output.="<td><img border='0' alt='$photo[title]' " . " src=". $f->buildPhotoURL($photo, "Square") . "></td>";
}
$output.="</tr></table>";

return $output;
        }
?>

As always, this is just a quick example, and can be heavily extended. Feel free to do so.