×
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

    Difference between revisions of "Flickr Extension"

    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.

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