Utiliser ses albums photos picasa sur son site perso

Soyez le premier à donner votre avis sur cette source.

Vue 15 734 fois - Téléchargée 630 fois

Description

Permet d'aller rechercher ses albums photos pour les afficher sur son site.
Permet de récupérer la liste des albums, la liste des photos, les url (google) des photos et des miniatures.

Source / Exemple :


Classe Picassa : 
/**

  • Fonction permettant d'utiliser l'album photo de Picassa
  • @author Ryo Sensei
  • @version 1.0
  • /
class Picassa { var $client; /**
  • Permet d'afficher une photo en grand, et les miniatures en dessous pour la navigation
  • @param unknown_type $photoId
  • /
function showPhoto($photoId,$album){ ?> <div style="width:90%;margin-left:auto;margin-right:auto;margin-top:20px;text-align:center;border:1px solid blue;"> <img src="<?echo$photoId?>?imgmax=512"> </div> <div style="width:90%;margin-left:auto;margin-right:auto;margin-top:2px;text-align:center;border:1px solid red;"> <table style="width:100%;"><tr> <? $list = $this->getPhotos($album); foreach($list as $k=>$photo){ if($photo["url"] == $photoId){ $key = $k; } } if(($key-1)<0)$key=1; for($i=$key-2;$i<=$key+2;$i++){ if(!isset($list[$i]))continue; echo "<td><center><a href=?page=book&album=$album&photo=".$list[$i]["url"]."> <img src=".$list[$i]["thumbnail"]."> </a></center></td>"; } ?> </tr></table> </div> <? } /**
  • Constructor
*
  • @param unknown_type $client
  • @return Picassa
  • /
function Picassa($client){ $this->client = $client; } /**
  • Retourne dans un tableau la liste des albums
*
  • @param unknown_type $client
  • @return array=>array(
  • [text] => titre de l'album
  • [thumbnail] => image de l'album
  • [albumId] => identifiant de l'album
  • )
  • /
function getListAlbums($admin = false){ $client = $this->client; $gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0"); try { $userFeed = $gp->getUserFeed("default"); foreach ($userFeed as $userEntry) { if(!$admin && $userEntry->gphotoAccess->text == "private")continue; //print_r($userEntry); $list[] = array("text"=>$userEntry->title->text, "thumbnail"=>$userEntry->mediaGroup->thumbnail[0]->url, "albumId"=>$userEntry->gphotoName->text); } } catch (Exception $e) { echo "Error: " . $e->getMessage() . "<br />\n"; } return $list; } /**
  • Fonction permettant de récupérer la liste des photos d'un album
*
  • @param unknown_type $album titre de l'album (identifiant)
  • @param unknown_type $client
  • @return array (
  • array(
  • [url] => url de la photo (version original)
  • [titre] => titre de la photo (nom)
  • [thumbnail] => miniature de la photo
  • )
  • )
  • /
function getPhotos($album){ $client = $this->client; $album = str_replace("_"," ",$album); $gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0"); $query = $gp->newAlbumQuery(); $query->setUser("default"); $query->setAlbumName($album); $albumFeed = $gp->getAlbumFeed($query); foreach ($albumFeed as $albumEntry) { //print_r($albumEntry);die; //$photo["url"] = $albumEntry->mediaGroup->content[0]->url; $mediaContentArray = $albumEntry->getMediaGroup()->getContent(); $photo["url"] = $mediaContentArray[0]->getUrl(); $photo["titre"] = $albumEntry->title->text; $photo["thumbnail"] = $albumEntry->mediaGroup->thumbnail[0]->url; $list[] = $photo; } return $list; } function randomPhoto(){ $gp = new Zend_Gdata_Photos($this->client, "Google-DevelopersGuide-1.0"); $query = $gp->newUserQuery(); // indicate the user's feed to retrieve $query->setUser("default"); // set to only return photos // the default kind value for a user feed is to include only albums $query->setKind("photo"); $query->setMaxResults("1"); try { // we're passing null for the username, as we want to send // additional query parameters generated by the UserQuery class $userFeed = $gp->getUserFeed(null, $query); // because we specified 'photo' for the kind, only PhotoEntry objects // will be contained in the UserFeed foreach ($userFeed as $photoEntry) { echo "<img src=\"".$photoEntry->mediaGroup->thumbnail[2]->url."\" width=100%>"; } } catch (Zend_Gdata_App_HttpException $e) { echo "Error: " . $e->getMessage() . "<br >\n"; if ($e->getResponse() != null) { echo "Body: <br />\n" . $e->getResponse()->getBody() . "<br />\n"; } // In new versions of Zend Framework, you also have the option // to print out the request that was made. As the request // includes Auth credentials, it's not advised to print out // this data unless doing debugging // echo "Request: <br />\n" . $e->getRequest() . "<br />\n"; } catch (Zend_Gdata_App_Exception $e) { echo "Error: " . $e->getMessage() . "<br />\n"; } } } Classe d'init : function init(){ require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata_Photos'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); Zend_Loader::loadClass('Zend_Gdata_AuthSub'); include $PATH."config.php"; $serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($username, $pass, $serviceName); return $client; } Fichier de config : $username = "[id]"; $pass = "[pass]";

Conclusion :


Exemple ici : www.Sarl-varlet.com?page=book

Besoin de Zend pour fonctionner : dispo ici : http://framework.zend.com/download

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

RyoSensei
Messages postés
8
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
29 décembre 2008

Heuu... si j'ai le temps un jour je coderais une bonne classe avec php5 itou itou... mais ça c'est une vieille class. (posté en 2008...)
SkwaX
Messages postés
1
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
17 juin 2010

J'ai une parse error. J'arrive pas à la trouver ...
glamirand
Messages postés
1
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
19 avril 2009

Bonjour,
Je suis actuellement entrain d'étudier la question de la galerie photo sur mon site perso. Je suis allé voir l'exemple cité, c'est exactement ce qu'il me faut mais je ne comprends pas à quoi sert ce fameux ZEND. Est-il possible de l'utiliser avec mon hébergement chez free?
J'ai actuellement l'erreur "unexpected $end" sans doute du au manque de Zend.
Merci de m'aider!
Gaël
LeFauve42
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

Juste une petite question :
Est-ce que cette utilisation des galeries Picasa ne viole pas les CGU ?
bj33
Messages postés
145
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
1 mai 2012

salut

l'idée est sympà.quelques remarques cependant, ce n'est pas franchement portable, zend framework, php 4...je ne pensait pas que l'on puisse utiliser zend framework avec php 4, j'ai au moins appris quelque chose.

et çà, hô que c'est laid;))

echo "<td><center><a href=?

quant à :



c'est y pas mieux comme çà?



je sais la dtd est transitionnelle mais bon, c'est du xhtml autant le faire à fond.non?
en indiquant les width et height des images çà éviterait au navigateur d'avoir à faire le calcul lui même, on gagne quelques millisecondes à chaque chargement d'images.

il serait peut être temps de coder "moderne" ;)) il est en effet impossible de tester sans php 4 ou alors en corrigeant le code, rien d'insurmontable toutefois mais bon.quant au xhtml, pj27, il est loin d'être propre...

un programme récupérant des albums picasa se doit aussi de gérer les résolutions les plus diverses, ce n'est le cas.imagine une photo taille réelle de 1280x1024...tiens, je vais tester.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.