×
Create a new article
Write your page title here:
We currently have 3,185 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,185Articles

    Flickr Extension

    Revision as of 22:07, 22 June 2006 by imported>mutante (PHP syntax highlighting in wiki)

    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:

    <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

    <highlightSyntax> <?php

    1. Flickr > Mediawiki MashUp Test (Web 2.3)
    2. mutante from http://s23.org/wiki
    3. inspired by "iX" magazine issue July 2006, p.62 article "Bildergeflimmer"
    4. greets: cosmea,took,DrOwl,Kunda,Finn,hundfred,kdoz... and all of S23

    $wgExtensionFunctions[] = "wfFlickrExtension";

    1. extension hook callback function from mediawiki

    function wfFlickrExtension() { global $wgParser; $wgParser->setHook( "flickr", "renderFlickr" );

      }
    

    function renderFlickr( $input, $argv ) { global $wgOutputEncoding;


    1. How many pictures to show , upper limit 10, if not good,set default to 3
    2. 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; }

    1. What is the tag

    $input = mysql_escape_string($input);

    1. 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 Flickr API key here>"); $f->enableCache("fs","./flickr_cache");


    1. get the X most interesting pictures for tag "flower"

    $photos_interesting = $f->photos_search(array("tags"=>"$tag", "sort"=>"interestingness-desc","per_page"=>$limit));

    1. output a table with the pictures

    $output="

    <t$

    if (is_array ($photos_interesting['photo']) && count($photos_interesting['photo'])>0) { foreach ($photos_interesting['photo'] as $photo) {

    $output.="";

    }

    $output.="
    The $limit most interesting photos from Flickr for the tag '$tag'
    <img border='0' alt='$photo[title]' " . " src=". $f->buildPhotoURL($photo, "Square") . ">

    ";

    } else { $output="Flickr Extension: no images found for tag $input"; } return $output;

           }
    

    ?> </highlightSyntax>

    Cookies help us deliver our services. By using our services, you agree to our use of cookies.