Intégrer une galerie Flickr sur son site

le 28/09/2010 : Webdesign

Voici un script fait maison qui vous permet d’afficher simplement votre galerie Flickr sur n’importe quel site internet en PHP…

Ici pas besoin de Flash, ou d’installer des milliards de librairies ou de plug-ins… Juste quelques lignes de codes efficaces qui pourront pas exemples servir à afficher votre book de modèle ou de photographe…

La démo est visible sur notre site, dans le book photo aSeed

Pour cela vous devez juste régler quelques paramètres :

// le nombre d'images que vous souhaitez afficher
$imgNumber=70; 
// le fichier dans lequel vous allez stocker le flux XML afin de ne pas interroger Flickr à chaque affichage
$cacheFile = 'flickr_book.xml'; 
 // à demander ici http://www.flickr.com/services/apps/create/apply
$flickrApiKey = 'your_flickr_api_key';
//votre user_id sur flickr
$flickrUserId='your_flickr_id';
 // tag des images que vous souhaitez afficher
$flickrTag='porfolio';
 // le nombre d'image que vous souhaitez charger dans le flux (ici les 100 dernières)
$flickrImgToLoad = 100;
// si vous souhaitez rendre l'ordre d'affichage aléatoire
$randomize = true;

Vous pouvez télécharger ce script à l’adresse suivante : http://www.aseed.fr/flickr_display.php.txt

L’utilisation de ce script est gratuite mais nous apprécierions vivement que vous fassiez un lien vers notre site en retour :
Script by <a href="http://www.aseed.fr">aSeed webdesign et photographie Nice</a>

Évidement il s’agit d’une base de travail, à vous ensuite de personnaliser l’affichage avec quelques lignes de CSS et pourquoi pas de Javascript. Si vous rencontrez la moindre difficulté dans cette tâche, nous vous invitons à nous contacter pour obtenir un devis pour la personnalisation du script.

 
<?php
#author : Frederic Lefeuvre 
#website : http://www.aseed.fr
#using Flickr API http://api.flickr.com/
#date : 2010-09-08
#please link our website if you are using this script !

$imgNumber=70; // number of images you want to display
$cacheFile = 'cache_file.xml'; //must be writable by the server 
$flickrApiKey = 'your_key'; // your flick api key, you can get it here http://www.flickr.com/services/apps/create/apply
$flickrUserId='your_id'; // your flickr user id
$flickrTag='porfolio'; // the tagged images that you want to display
$flickrImgToLoad = 100; // the number of images you want to load from flickr
$randomize = true; // set it to true if you want randomize your gallery display
 
if($your_caching_condition){
	$url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=$flickrApiKey&user_id=$flickrUserId&tags=$flickrTag&per_page=$flickrImgToLoad&page=0";
	$file=file_get_contents($url);
	file_put_contents($cacheFile,$file);
}else{
	$file=file_get_contents($cacheFile);
}
 
//grabbing Flickr XML file
$xml = new SimpleXMLElement($file); 
$photos = $xml->photos->photo;
$i=0;
 
//parsing XML album
foreach($photos as $photo){
	//get photo attributes
	foreach($photo->attributes() as $a => $b){ 
		$p[$a]=$b;	
	}
	$i++;
	$img[$i]['url'] ='http://farm'.$p['farm'].'.static.flickr.com/'.$p['server'].'/'.$p['id'].'_'.$p['secret'].'.jpg';
	// if you prefer bigger size uncomment the line below
	//$img[$i]['url'] ='http://farm'.$p['farm'].'.static.flickr.com/'.$p['server'].'/'.$p['id'].'_'.$p['secret'].'_b.jpg';
	$img[$i]['square'] ='http://farm'.$p['farm'].'.static.flickr.com/'.$p['server'].'/'.$p['id'].'_'.$p['secret'].'_s.jpg';
	$img[$i]['title'] = $p['title'];
 
	// if necessary (depedning of you page encoding)
	$img[$i]['title'] = utf8_decode($img[$i]['title']);
}
 
//if we have images we print the gallery
if(count($img)){
	if($randomize) shuffle($img);
	?>
<div class="book">
<? php
for($i=0; $i<$imgNumber;$i++){
	?><a href="<?=$img[$i]['url']?>" onclick="return false;"><img src="<?=$img[$i]['square']?>" alt="<?=$img[$i]['title']?>" title="<?=$img[$i]['title']?>"></a><? 	
}
?>
</div>
<?php } ?>
Script by <a href="http://www.aseed.fr">aSeed &copy; webdesign et photographie Nice</a>
:, , ,

6 Comments for this entry

  • Transportverzekering

    Hello blogger. I like your blog about Intégrer une galerie Flickr sur son site – aSeed.

    I was wondering, i am planning to make a blog for myself. I want to use wordpress like you. Where did you get your template? If you post your answer here below,then i will read this in the next few day’s.

    Thanks Transportverzekering

  • Sartre

    Bonjour,

    je souhaite utiliser votre code…mais j’ai des erreurs php :(
    Par exemple :
    Notice: Undefined variable: your_caching_condition
    Une idée pour m’aider un peu ???

    merci :)

    • aSeed

      “your_caching_condition” est une variable à définir et qui correspond à votre condition de mise en cache des fichiers XML et images afin de ne pas avoir à les re-télécharger depuis Flickr à chaque fois.
      A vous de voir la condition qui vous convient le mieux ;)

      • alex

        bonjour, quel sont les conditions possible pour la mise en cache du fichier.

        autre chose je comprends pas le

        $photos = $xml->photos->photo;

        pourrais-tu m’en dire un peu plus sur les possibilité.

        Merci

      • alex

        “your_caching_condition” ???

        aurais-tu un exemple de condition a définir car je cherche mais j’ai aucune idée

2 Trackbacks / Pingbacks for this entry

Leave a Reply

A la recherche d'une info?

Utilisez ce formulaire pour rechercher sur le site: