begin process at 2012 02 15 22:27:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > UTILISER SES ALBUMS PHOTOS PICASA SUR SON SITE PERSO

UTILISER SES ALBUMS PHOTOS PICASA SUR SON SITE PERSO


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :php, picasa, google, album photo Niveau :Débutant Date de création :07/07/2008 Date de mise à jour :07/07/2008 12:29:18 Vu / téléchargé :13 038 / 470

Auteur : RyoSensei

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 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

  • 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]";
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


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 juillet 2008 12:29:18 :
Description de la fonction showPhoto

 Sources du même auteur

Source avec Zip UTILISER API GOOGLE MAPS POUR LA CORRECTION D'ADRESSE
Source avec Zip UTILISATION DU WEB SERVICE DE MAP24 POUR LA CORRECTION D'ADR...

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry

Commentaires et avis

Commentaire de pj27 le 07/07/2008 12:37:28 7/10

C'est pas trop mal fait, j'aime bien le système.
Source commentée, un Html propre, le PHP a l'air de l'être aussi... Bon boulot ;)

Commentaire de spoonisback le 08/07/2008 09:17:34

Je dis peut-être une bêtise ,mais je sais pas si ça se fais bien de mettre du HTML directement dans ta fonction (fonction ShowPhoto) avant le constructeur !!

Sinon j'ai parcouru rapidement ca n'as pas 'air mal...à tester !

Commentaire de RyoSensei le 08/07/2008 09:21:22

L'ordre de tes fonctions n'a pas d'importance il me semble.
C'est vrai que j'aurais pus épurer un peu, j'ai mis le code directement comme je l'ai utilisé pour moi, il faut je pense l'adapter pour les besoins personnels.
Je vais plus tard ajouter les fonctions pour ajouter ou supprimer les photos!
Merci

Commentaire de aKheNathOn le 08/07/2008 11:05:17

c'est bien, l'init aurais pû être une fonction de la classe en mode static, et dommage de passer par Zend car cela veut dire que ton code ne fonctionnera que si zend est déployé.

bonne continuation, akh

Commentaire de kotif le 08/07/2008 13:49:26

dsl c nul

Commentaire de RyoSensei le 08/07/2008 13:51:51

J'adore ces commentaires très constructifs...

Commentaire de bj33 le 14/07/2008 12:45:11

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 à :

<img src=".$list[$i]["thumbnail"].">

c'est y pas mieux comme çà?

<img src=".$list[$i]["thumbnail"]." alt="" />

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.

Commentaire de LeFauve42 le 28/07/2008 17:45:48

Juste une petite question :
Est-ce que cette utilisation des galeries Picasa ne viole pas les CGU ?

Commentaire de glamirand le 19/04/2009 19:16:48

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

Commentaire de SkwaX le 17/06/2010 09:25:43

J'ai une parse error. J'arrive pas à la trouver ...

Commentaire de RyoSensei le 17/06/2010 10:03:00

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...)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

php et google ... ? [ par michelvernet2 ] bonjour,pour éviter un PB de session avec aol, je force la session dans l'adresse, voir : www.nouveauxobjets.com . Pour ceux qui ont la google barre, referencement google et PHP [ par michelvernet2 ] bonjour,pour éviter un PB de session avec aol, je force la session dans l'adresse, voir : www.nouveauxobjets.com . Pour ceux qui ont la google barre, Aide sur API Google nxgooglemapsapi.php [ par koestel ] Bonjour,J'utilise la classe ''nxgooglemapsapi.php" pour mieux gèrer l'api google pour une applicationcela fonctionne mais j'aimerai pouvoir :Rajouter PHP et Google maps API [ par jofer1989 ] bonjour Je possède un site de chambres d'hôtes (1500 chambres répertoriées dans une BDD) et je voudrais mettre pour chacune d'elle une localisation G [Zend Framework] Google API Calendar [ par bibi21700 ] Bonjour à tous, je dois utiliser Zend Framework pour utiliser Google Calendar. Je suis pour le moment le tutorial [url=http://code.google.com/intl/fr/ [Zend Framework] Google API Calendar [ par bibi21700 ] Bonjour à tous, je dois utiliser Zend Framework pour utiliser Google Calendar. Je suis pour le moment le [url=http://code.google.com/intl/fr/apis/cale Les testes que google organise pour php ou autre language ? [ par babare77 ] Bonjour, j'ai entendu parlé des testes que google organise pour se tester dans un langage ! j'aimerai bien savoir quand ça se passe et comment m'inscr Php, listing de recherche google [ par goth666 ] Bonsoir, est-il possible de créer un .php qui ira chercher les liens des résultats trouvé par google?Je m'explique, je voudrais stocker des adresses t Google Maps API & PHP [ par begueradj ] Bonjour, Peut-on utiliser Google Maps plusieurs fois sur son site par une même clé ? formulaire php htlm / captcha [ par djbabou ] Bonjour, a tous J'ai développé un formulaire dans lequel j'ai intégrer un captcha image. Comme tous captcha normalement construit, après soumission d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,301 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales