Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 1191 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Affiche un formulaire de contact d'utilisateur.
 *
 * @category    php 5.2
 * @package             eFlore-consultation
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @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));
        }
}
?>