* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org) * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version $Id$ */ class PopupContact extends aControleur { private $conteneur = null; private $imagesApi = null; private $utilisateur = null; private $appUrls = null; private $id_destinataire = ''; private $id_image = ''; private $urlWsCelTpl = ''; private $urlWsAnnuaireUtilisateurTpl = ''; public function initialiser() { $this->capturerParametres(); $this->conteneur = new Conteneur(); $this->imagesApi = $this->conteneur->getApiImages(); $this->utilisateur = $this->conteneur->getUtilisateur(); $this->appUrls = $this->conteneur->getAppUrls(); $this->urlWsAnnuaireUtilisateurTpl = $this->conteneur->getParametre('baseUrlServicesAnnuaireTpl'); $this->urlWsCelTpl = $this->conteneur->getParametre('baseUrlServicesCelTpl'); } private function capturerParametres() { if (isset($_GET['id_destinataire'])) { $this->id_destinataire = $_GET['id_destinataire']; } if (isset($_GET['id_img'])) { $this->id_image = $_GET['id_img']; } } public function executerActionParDefaut() { $this->executerForm(); } public function executerForm() { if ($this->utilisateur->etreIdentifie()) { $this->afficherFormContact(); } else { $this->afficherFormIdentification(); } } private function afficherFormContact() { $this->setSortie(self::META_TITRE, 'Contactez un membre du réseau'); $entete = array(); $entete['formType'] = 'contact'; $entete['urlWsMessageCel'] = sprintf($this->urlWsCelTpl, 'celMessage/image'); $entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur'); $this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete)); $infos = array(); // cas d'une obs saisie par une personne non inscrite // le message doit être envoyé au cel qui fournira le courriel de l'auteur if(trim($this->id_destinataire) == "") { $infos['idDestinataire'] = $this->id_image; $infos['typeEnvoi'] = 'non-inscrit'; } else { $infos['idDestinataire'] = $this->id_destinataire; $infos['typeEnvoi'] = 'inscrit'; } $infos['idImage'] = $this->id_image; $infos['utilisateurCourriel'] = $this->utilisateur->getCourriel(); $infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image); $this->imagesApi->setProjet('cel'); // prêt à passer à API_DEL // TODO: voir pourquoi la forme service:del:images/#id_image ne fonctionne pas // et s'il est vraiment utile d'appeler DEL ici $imageInfos = $this->imagesApi->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image); $idObs = $imageInfos['observation.id']; $nomSci = $imageInfos['determination.nom_sci']; $date = $imageInfos['date']; $lieu = $imageInfos['station.libelle']; $infos['sujet'] = "Observation #$idObs de $nomSci"; $infos['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de $nomSci du $date au lieu $lieu"; $this->setSortie(self::RENDU_CORPS, $this->getVue('form_contact', $infos)); } private function afficherFormIdentification() { $this->setSortie(self::META_TITRE, 'Identification'); $entete = array(); $entete['formType'] = 'identification'; $entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur'); $this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete)); $infos = array(); $infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image); $this->setSortie(self::RENDU_CORPS, $this->getVue('form_identification', $infos)); } } ?>