/trunk/metier/api_0.1/Images.php |
---|
59,13 → 59,14 |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
} |
return $images; |
return $this->formaterResultatImages($images); |
} |
public function getInfosImageParIdImage($id_image) { |
$tpl = Config::get('imagesPopupTpl'); |
$tpl = $this->obtenirSqueletteSelonApi('imagesPopup'); |
$url = $this->formaterUrl($tpl, array('id' => $id_image, 'referentiel' => Registre::get('parametres.referentiel'))); |
return $this->chargerDonnees($url); |
$image = $this->chargerDonnees($url); |
return $this->formaterResultatImages($image, true); |
} |
public function getInfosImages() { |
72,7 → 73,7 |
$url = $this->getUrlImages(); |
$donnees = $this->chargerDonnees($url); |
$images = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array(); |
return $images; |
return $this->formaterResultatImages($images); |
} |
public function getInfosImagesTaxons() { |
92,37 → 93,130 |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
} |
return $this->formaterResultatImages($images); |
} |
public function getInfosPremiereImageParIdsNoms($idsNoms) { |
$url = $this->getUrlPremiereImageParIdsNoms($idsNoms); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
return $this->formaterResultatImages($images); |
} |
public function getInfosImagesGalerieMobile($nn) { |
$url = $this->getUrlImagesGalerieMobile($nn); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
$this->formaterResultatImagesDel($images); |
return $images; |
} |
private function getUrlImagesParIdsNoms($idsNoms) { |
$tpl = Config::get('imagesResultatsDeterminationTpl'); |
$tpl = $this->obtenirSqueletteSelonApi('imagesResultatsDetermination'); |
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel')); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPremiereImageParIdsNoms($idsNoms) { |
$tpl = Config::get('imagesPremiereTpl'); |
private function getUrlPremiereImageParIdsNoms($idsNoms) { |
$tpl = $this->obtenirSqueletteSelonApi('imagesPremiere'); |
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel')); |
$url = $this->formaterUrl($tpl, $params); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
return $images; |
return $this->formaterUrl($tpl, $params); |
} |
private function getUrlImages() { |
$tpl = Config::get('imagesTpl'); |
private function getUrlImages($nn = false) { |
$tpl = $this->obtenirSqueletteSelonApi('images'); |
if ($this->getApi() == Eflore::API_EFLORE) { |
$params = array('projet' => $this->getProjet(), 'limite' => $this->limite, 'depart' => $this->depart, 'referentiel' => Registre::get('parametres.referentiel')); |
} |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlImagesTaxons($idsTaxons) { |
$tpl = Config::get('imagesTaxonsTpl'); |
$tpl = $this->obtenirSqueletteSelonApi('imagesTaxons'); |
$params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons, 'referentiel' => Registre::get('parametres.referentiel')); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlImagesGalerieMobile($nn) { |
$tpl = Config::get('delGalerieMobileTpl'); |
$params = array('nn' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
/** |
* Transforme les résultats issus des Webservices autres que eflore/cel afin de conserver un format homogène |
* @param mixed $images |
*/ |
private function formaterResultatImages($images, $seulementUne = false) { |
switch ($this->getApi()) { |
case Eflore::API_DEL: |
return $this->formaterResultatImagesDel($images, $seulementUne); |
break; |
default: |
return $images; |
} |
} |
private function formaterResultatImagesDel($images, $seulementUne = false) { |
if ($seulementUne) { |
return $this->formaterUnResultatImagesDel($images); |
} else { |
$retour = array(); |
foreach ($images as $idObsImage => $image) { |
$retour[$image['id_image']] = array_merge($images[$idObsImage], $this->formaterUnResultatImagesDel($image)); |
} |
return $retour; |
} |
} |
/** |
* Convertit un array venant d'un Webservice del vers le format retourné par eflore/cel |
* @param array $image |
* @return array |
*/ |
private function formaterUnResultatImagesDel(array $image) { |
//echo "FORMAT DEL: <pre>"; print_r($image); echo "</pre>"; |
$libelleAuteur = $image['observation']['auteur.prenom'].' '.$image['observation']['auteur.nom']; |
$codeReferentiel = substr($image['observation']['determination.referentiel'], 0, strpos($image['observation']['determination.referentiel'], ':')); |
$localiteLibelle = array($image['observation']['zone_geo'], |
$image['observation']['lieudit'], |
$image['observation']['station'], |
$image['observation']['milieu']); |
$retourImage = array( |
'date' => $image['observation']['date_observation'], |
'mime' => 'image/jpeg', |
'auteur.libelle' => $libelleAuteur, |
'auteur.id' => $image['observation']['auteur.id'], |
'binaire.href' => $image['binaire.href'], |
'observation.id' => $image['observation']['id_observation'], |
'determination.libelle' => $image['observation']['determination.ns'].'[Dét. : '.$libelleAuteur.']', |
'determination.nom_sci' => $image['observation']['determination.ns'], |
'determination.nom_sci.code' => $codeReferentiel.'.'.$image['observation']['determination.nn'], |
'station.commune' => $image['observation']['zone_geo'], |
'station.lieudit' => $image['observation']['lieudit'], |
'station.station' => $image['observation']['station'], |
'station.milieu' => $image['observation']['milieu'], |
'station.libelle' => $this->formaterLocalite($localiteLibelle) |
); |
//echo "FORMAT CEL: <pre>"; print_r($retourImage); echo "</pre>"; |
return $retourImage; |
} |
private function formaterLocalite($infosLocalite) { |
$localiteFmt = array(); |
foreach ($infosLocalite as $localite) { |
if($localite != '') { |
$localiteFmt[] = $localite; |
} |
} |
if (empty($localiteFmt)) { |
$localiteFmt[0] = 'localité inconnue'; |
} |
return implode(" > ", $localiteFmt); |
} |
} |
?> |
/trunk/metier/api_0.1/Eflore.php |
---|
17,9 → 17,12 |
const RANG_FAMILLE = 180; |
const RANG_GENRE = 220; |
const RANG_ESPECE = 290; |
const API_EFLORE = ''; |
const API_DEL = 'del'; |
private $entete = null; |
private $projet = null; |
private $api = null; |
public function __construct($projet = null) { |
$this->projet = Registre::get('parametres.referentiel'); |
26,8 → 29,18 |
if (!is_null($projet)) { |
$this->projet = $projet; |
} |
$this->api = self::API_EFLORE; |
} |
public function setApi($api) { |
$this->api = $api; |
return $this; |
} |
public function getApi() { |
return $this->api; |
} |
public function setProjet($projet) { |
$this->projet = $projet; |
} |
41,6 → 54,26 |
} |
/** |
* Récupère un squelette d'URL dans le fichier de configuration, en fonction de l'API spécifiée dans $this->api |
* |
* @param string $squelette squelette d'URL à chercher dans le fichier de config, sans le préfixe d'API |
* @param string $api forcer l'API, false par défaut pour utiliser l'API spécifié dans $this->api (utiliser les constantes) |
* @throws Exception si la clef générée n'est pas présente dans le fichier de configuration |
*/ |
protected function obtenirSqueletteSelonApi($squelette) { |
$api = $this->api; |
if ($api != '') { |
$squelette = ucfirst($squelette); |
} |
$clef = $api . $squelette . 'Tpl'; |
if (Config::existe($clef)) { |
return Config::get($clef); |
} else { |
throw new Exception("Squelette indisponible pour l'API spécifiée"); |
} |
} |
/** |
* Formate une url à partir d'un template contenant des paramètres à remplacer sous la forme {monParametre}. |
* Le tableau associatif de paramètres doit contenir en clé le paramêtre (monParametre) sans les accolades, |
* la valeur correspondante sera la valeur de remplacement. |
49,7 → 82,7 |
* |
* @param String $tpl le squelette d'url à formater. |
* @param Array $parametres le tableau de parametres (sans accolades pour les clés).*/ |
protected function formaterUrl($tpl, Array $parametres) { |
public function formaterUrl($tpl, Array $parametres) { |
$parametres = $this->ajouterParametreParDefaut($parametres); |
foreach($parametres as $key=> $value) { |
if(is_array($value)) { |
/trunk/popup.php |
---|
33,6 → 33,7 |
<!-- JavaScript --> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script> |
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/cookie/1.0/jquery.cookie.min.js"></script> |
<!-- @FIXME WTF?? si ajax.aspnetcdn.com tombe en rideau, on s'assied sur nos popups?? :-/ --> |
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> |
<script type="text/Javascript" src="presentations/scripts/eflore.js"></script> |
/trunk/configurations/config.defaut.ini |
---|
232,7 → 232,12 |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètres spécifiques à l'API 0.1 de DEL |
baseUrlApiDel = "http://{ref:domaine}/service:del:0.1/" |
delImagesTpl = "{ref:baseUrlApiDel}images?navigation.depart=0&navigation.limite=4&masque.nn={nn}&tri=votes&ordre=desc&protocole=3&format=CRS"; |
delImagesTpl = "{ref:baseUrlApiDel}images?navigation.depart={depart}&navigation.limite={limite}&masque.referentiel={referentiel}&format=CRS"; |
delImagesResultatsDeterminationTpl = "{ref:baseUrlApiDel}images?masque.nn={idsNoms}&referentiel={referentiel}&tri=votes&ordre=desc&protocole=3&navigation.limite=801&format=CS" |
delImagesPremiereTpl = "{ref:baseUrlApiDel}images?navigation.limite=1&masque.referentiel={referentiel}&masque.nn={idsNoms}&format=CS&tri=date_observation&ordre=asc" |
delImagesPopupTpl = "{ref:baseUrlApiDel}images/{id}?masque.referentiel={referentiel}&format=M" |
delImagesTaxonsTpl = "{ref:baseUrlApiDel}images?masque.referentiel={referentiel}&masque.nt={nntaxon}&navigation.limite=100" |
delGalerieMobileTpl = "{ref:baseUrlApiDel}images?navigation.depart=0&navigation.limite=4&masque.nn={nn}&tri=votes&ordre=desc&protocole=3&format=CRS"; |
; +------------------------------------------------------------------------------------------------------+ |
; Chemin vers outil de conversion pdf |
/trunk/modules/mobile/sources/Illustrations.php |
---|
29,6 → 29,8 |
$this->images = $this->conteneur->getApiImages(); |
$this->appUrls = $this->conteneur->getAppUrls(); |
$this->meta = $this->conteneur->getApiMetaDonnees(); |
$this->images->setApi(Images::API_DEL); |
} |
public function getDonnees() { |
43,26 → 45,12 |
} |
public function getPhotos() { |
$url_picto = $this->obtenirUrlPicto(); |
$obj = json_decode(file_get_contents($url_picto), true); |
$listePhotos = $obj['resultats']; |
//echo '<pre>'.print_r($obj, true).'</pre>'; |
$listePhotos = $this->images->getInfosImagesGalerieMobile($this->nomCourant->getNnr()); |
foreach($listePhotos as $index) { |
$this->formaterListePhotos($index); |
} |
} |
public function obtenirUrlPicto() { |
//TODO : passer les valeurs dans le fichier de config |
$url_picto = "http://www.tela-botanica.org/eflore/del/services/0.1/images?navigation.depart=0" |
."&navigation.limite=4&masque.nn=".$this->nomCourant->getNnr() |
."&tri=votes&ordre=desc&protocole=3&format=CRS"; |
return ($url_picto); |
} |
private function formaterListePhotos($images) { |
$infosImg['src'] = $images['binaire.href']; |
110,7 → 98,8 |
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique'); |
$this->images->setProjet($projet); |
$this->images->setNnTaxon($tax); |
$costeImg = $this->images->getInfosImagesTaxons(); |
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons(); |
$this->images->setApi(Eflore::API_DEL); |
if (count($costeImg) != 0) { |
$img['src'] = $costeImg[key($costeImg)]['binaire.href']; |
/trunk/modules/popup_galerie/PopupGalerie.php |
---|
50,7 → 50,7 |
public function executerFiche(){ |
$infos = array(); |
$this->images->setProjet('cel'); |
$urls = $this->images->getUrlsImagesParIdsNoms(array($this->num_nom)); |
$urls = $this->images->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms(array($this->num_nom)); |
$urls = $urls[Registre::get('parametres.referentiel').'.'.$this->num_nom]; |
$ids = array(); |
foreach($urls as $index => $url) { |
/trunk/modules/fiche/formateurs/Illustrations.php |
---|
66,7 → 66,7 |
$donnees = array(); |
$this->images->setProjet($source); |
$nnr = $this->nomCourant->getNnr(); |
$infos_image = $this->images->getUrlPremiereImageParIdsNoms(array($nnr)); |
$infos_image = $this->images->setApi(Eflore::API_EFLORE)->getInfosPremiereImageParIdsNoms(array($nnr)); |
if ($infos_image != array()) { |
$image = array_shift($infos_image); |
$donnees['imageUrl'] = $image['binaire.href']; |
79,7 → 79,7 |
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique'); |
$this->images->setProjet('coste'); |
$this->images->setNnTaxon($tax); |
$costeImg = $this->images->getInfosImagesTaxons(); |
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons(); |
foreach ($costeImg as $infos) { |
$coste['images'][] = $infos['binaire.href']; |
} |
97,7 → 97,7 |
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique'); |
$this->images->setProjet($projet); |
$this->images->setNnTaxon($tax); |
$costeImg = $this->images->getInfosImagesTaxons(); |
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons(); |
foreach ($costeImg as $infos) { |
$dessin['images'][] = $infos['binaire.href']; |
} |
114,6 → 114,11 |
$projets[] = Config::get($this->referentiel.'.baseImagesSupp'); |
foreach ($projets as $projet) { |
if ($projet != "") { |
if ($projet == "cel") { |
$this->images->setApi(Eflore::API_EFLORE); // prêt à passer à API_DEL |
} else { |
$this->images->setApi(Eflore::API_EFLORE); |
} |
$images = $this->initialiserPhotos($projet); |
$this->formaterListePhotos($projet, $images); |
$this->formaterMetaPhotos($projet); |
/trunk/modules/popup_contact/PopupContact.php |
---|
78,7 → 78,7 |
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image); |
$this->imagesApi->setProjet('cel'); |
$imageInfos = $this->imagesApi->getInfosImageParIdImage($this->id_image); |
$imageInfos = $this->imagesApi->setApi(Eflore::API_DEL)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL |
$idObs = $imageInfos['observation.id']; |
$nomSci = $imageInfos['determination.nom_sci']; |
$date = $imageInfos['date']; |
/trunk/modules/popup_illustrations/PopupIllustrations.php |
---|
39,7 → 39,7 |
public function executerFiche(){ |
$infos = array(); |
$this->images->setProjet('cel'); |
$img = $this->images->getInfosImageParIdImage($this->id_image); |
$img = $this->images->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL |
$infos['id'] = $this->id_image; |
$img['date'] = $this->formaterDateImg($img['date']); |
$infos['image'] = $img; |
/trunk/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php |
---|
50,7 → 50,7 |
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins')); |
$tax = implode(',', $this->infosPourTpl['taxons']); |
$this->imagesService->setNnTaxon($tax); |
$costeImg = $this->imagesService->getInfosImagesTaxons(); |
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons(); |
if (!empty($costeImg)) { |
foreach ($costeImg as $infos) { |
$num_taxon = $infos['num_taxonomique']; |
73,7 → 73,7 |
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") { |
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages')); |
$ids = $this->extraireIdDesNoms(); |
$urls = $this->imagesService->getUrlsImagesParIdsNoms($ids); |
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($ids); |
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesIds($urls); |
} |
} |
/trunk/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php |
---|
55,7 → 55,7 |
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins')); |
$tax = implode(',', $this->infosPourTpl['taxons']); |
$this->imagesService->setNnTaxon($tax); |
$costeImg = $this->imagesService->getInfosImagesTaxons(); |
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons(); |
if (!empty($costeImg)) { |
foreach ($costeImg as $infos) { |
$num_taxon = $infos['num_taxonomique']; |
79,7 → 79,7 |
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") { |
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages')); |
$nns = $this->extraireNnDesNoms(); |
$urls = $this->imagesService->getUrlsImagesParIdsNoms($nns); |
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($nns); |
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesUrls($urls); |
} |
} |