Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 1301 → Rev 1302

/tags/v5.7-duchartre-2014-04-14/modules/popup_contact/PopupContact.php
New file
0,0 → 1,108
<?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));
}
}
?>