﻿<?xml version="1.0" encoding="UTF-8" ?>
<Module>
	<ModulePrefs title="PFlickr" height="245"  description="Affichage des images flickrs" title_url="www.tisseurdetoile.net"  licence="GPL" author_location="Grenoble France" />
	<UserPref name="apiflickr" datatype="string" default_value="" display_name="flickr api key :"></UserPref>
	<UserPref name="userid" datatype="string" default_value="76404730@N00" display_name="id flickr :"></UserPref>
	<UserPref name="groupeid" datatype="string" default_value="" display_name="id groupe flickr :"></UserPref>
	<UserPref name="affichage" datatype="enum" default_value="unique" display_name="affichage :">
		<EnumValue value="unique" display_value="Une image" />
		<EnumValue value="multiple" display_value="plusieurs vignettes" />
	</UserPref>
	<Content type="html">
	<![CDATA[
	<!-- Contenue html du module -->
	<script type="text/javascript">
/**	obimages
	objet d'information d'une image
	
var	niid		   int		   id de l'image
var	scowner		string		id flickr du propiétaire de l'image
var	nisecret	   int		   secret du chemin de l'image
var	sctitre		string		titre de l'image
var	boolean		bopublic	   l'image est elle public
var	niserveur	int		   numéro du serveur dans le path
*/
function obimages(){
	this.niid = "";
	this.scowner = "";
	this.nisecret = "";
	this.sctitre = "";
	this.bopublic = "";
	this.niserveur = "";
}

/**	paroursphoto
	récupere les informations de l'élément photo
	
param	lnnoeud		object		pointeur sur le noeud photo
param	lnphoto		objet		   pointeur sur les informations de la photo

return			   boolean		lecture des information correct
*/
function parcoursphoto (lnnoeud, lnphoto)
{
	if (null == lnnoeud)
		return false;

	for(var i = 0; i < lnnoeud.length; i++) {
		switch (lnnoeud[i].nodeName){
			case "id" :
				lnphoto.niid = lnnoeud[i].nodeValue;
			break;
			case "owner" :
				lnphoto.scowner = lnnoeud[i].nodeValue;
			break;
			case "secret" :
				lnphoto.nisecret = lnnoeud[i].nodeValue;			
			break;
			case "title" :
				lnphoto.sctitre = lnnoeud[i].nodeValue;	
			break;
			case "ispublic" :
				lnphoto.bopublic = lnnoeud[i].nodeValue;	
			break;
			case "server" :
				lnphoto.niserveur = lnnoeud[i].nodeValue;			
			break;
		}
	}
	
	return true;
}

/**	affichemessage
	affiche un message dans la boîte du module
	
	param	scmessage		string		le message à afficher
*/
function affichemessage(scmessage){
	var obj=_gel("divimg");
	
	obj.innerHTML = "<h3>" + scmessage + "</h3>";
}

/**	boerreur
	retourne si l'api renvoie que tout est ok
	
	param	lndom		object		liens sur le flux xml
*/
function boerreur(lndom){
	oberreur = lndom.getElementsByTagName('rsp')[0].attributes[0];

	if (oberreur.nodeName == "stat" )
		if (oberreur.nodeValue == "ok")
			return (false)
	
	return (true);
}

function traitexml(obxml){
	var obinfoimage =  new obimages();
	var schtml = "";

	if (boerreur(obxml)){
		affichemessage (" Un problème est survenue ");
		return (false);
	}

	var pref=new _IG_Prefs(__MODULE_ID__)
	var affichage = pref.getString("affichage");
	aritem = obxml.getElementsByTagName('photo');

	if ( affichage == "unique"){
		if (parcoursphoto ( aritem[0].attributes, obinfoimage )) {
			schtml += "<a href=\"http://www.flickr.com/photos/" + obinfoimage.scowner + "/" + obinfoimage.niid + "\">";
			schtml += "<img src=\"http://static.flickr.com/" + obinfoimage.niserveur + "/" + obinfoimage.niid + "_" + obinfoimage.nisecret + "_m.jpg\" alt=\"" + obinfoimage.sctitre +"\" />";
			schtml += "</a>";
		}
	}

	if ( affichage == "multiple"){
		for(var i = 0; i < aritem.length; i++) {
			if (parcoursphoto ( aritem[i].attributes, obinfoimage )) {
				schtml += "<a href=\"http://www.flickr.com/photos/" + obinfoimage.scowner + "/" + obinfoimage.niid + "\">";
				schtml += "<img src=\"http://static.flickr.com/" + obinfoimage.niserveur + "/" + obinfoimage.niid + "_" + obinfoimage.nisecret + "_s.jpg\" />" ;
				schtml += "</a>";
			}
		}
	}

	var obj=_gel("divimg");
	obj.innerHTML = schtml;
}

function init(){
	var ninbpage = 15;
		
	var pref=new _IG_Prefs(__MODULE_ID__);
	var userid = pref.getString("userid");
	var groupid = pref.getString("groupeid");
	var apiflickrkey = pref.getString("apiflickr");
	var affichage = pref.getString("affichage");

	if (apiflickrkey.length < 1){
		affichemessage (" Pas de clef api flickr ");
		return (false);
	}

	if (groupid.length > 0){
		var scgetapi = "http://api.flickr.com/services/rest/?method=flickr.groups.pools.getPhotos&api_key=" + apiflickrkey +"&group_id=" + groupid;
	} 
	else if (userid.length > 0){
		var scgetapi = "http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=" + apiflickrkey +"&user_id=" + userid;
	}
	else {
		affichemessage (" Aucun utilisateur ou group flickr choisi ! ");
		return (false);
	}
	
	if ( affichage == "unique")
		ninbpage = 1;
	
	scgetapi += "&per_page=" + ninbpage + "&page=1";
	
	_IG_FetchXmlContent(scgetapi, traitexml);
}
	
_IG_RegisterOnloadHandler(init);
</script>
	
	<div id="divimg" style="text-align:center;width:100%;height:100%;">
	<h3>Chargement !</h3>
	</div>
	<div id="Signature">Par le tisseurDetoile </div>
	
	
	<!-- Fin Contenue html du module -->
	
	]]>
	</Content> 
</Module>

