view->headScript() ->appendFile('/themes/default/scripts/geolocalisation.js', 'text/javascript'); $this->view->headLink() ->appendStylesheet('/themes/default/styles/geolocalisation.css', 'all'); } /**********************************************************************************/ /* Liste des établissements */ /**********************************************************************************/ /** * Genere une sorte d'iframe pour la page liste des etablissements. */ public function iframeAction() { $listeEtablissement = $this->getRequest()->getParam('listeEtablissement'); $this->view->assign('listeEtablissement', $listeEtablissement); } /** * Fonction complémentaire de iframe. */ public function geolistejavascriptAction() { $valeur = array(); $listeEtablissement = $this->getRequest()->getParam('listeEtablissement'); $geoLocalisation = new geoLocalisationLib($listeEtablissement, $valeur); $this->view->assign('geoInformations', $valeur); } /**********************************************************************************/ /* Photo sur fiche identité */ /**********************************************************************************/ /** * Netoye l'adresse des espace et des arrondissement pour paris etc... exemple "PARIS 16" devient "Paris" * @param unknown_type $ville */ private function cleanAdress($ville) { $ville = ' '.trim(preg_replace('/([0-9]|ARRONDISSEMENT|_)/i', ' ', $ville)).' '; $ville = trim(strtr($ville, array(' EME ' => '', ' ER ' => ''))); return (ucwords(strtolower($ville))); } /** * Affiche la bonne photo celon si deisponnible chez Mappy sinon ont interoge google. */ public function geophotoAction() { self::initMappy(); $infos = $this->getRequest()->getParam('infos'); $ville = self::cleanAdress($infos->Ville); if (in_array($ville, $this->mappyVille)) { $source = 'mappy'; $token = self::mappyPhoto(); $this->view->assign('token', $token); $this->view->assign('AdresseNum',$infos->AdresseNum); $this->view->assign('AdresseRue', $infos->AdresseRue); $this->view->assign('AdresseVille', $infos->Ville); } else { $source = 'google'; self::googlePhoto(); } $this->view->assign('source', $source); } /**********************************************************************************/ /* Mappy sur fiche identité */ /**********************************************************************************/ public function setMappyLogin($login) { $this->mappyLogin['login'] = $login; } public function setMappyPassword($password) { $this->mappyLogin['password'] = $password; } /** * Initialisation des villes disponnible chez mappy */ private function initMappy() { self::setMappyLogin('scoresdecisions'); self::setMappyPassword('g1nq3iKv'); $this->mappyVille = array( 'Bordeaux', 'Caen' , 'Cannes', 'Grenoble', 'La Baule', 'Lille', 'Lyon', 'Marseille', 'Montpellier', 'Nancy', 'Nantes', 'Nice', 'Rennes', 'Strasbourg', 'Toulouse', 'Asnières-sur-Seine', 'Boulogne-Billancourt', 'Courbevoie', 'Issy-les-Moulineaux', 'Levallois-Perret', 'Montrouge', 'Nanterre', 'Neuilly-sur-Seine', 'Rueil-Malmaison', 'Sèvres', 'Versailles', 'Paris' ); } /** * Génère le toker pour mappy. */ private function getToken() { $ACCESSOR_URL = 'http://axe.mappy.com/1v1/'; $timestamp = time(); $hash = md5($this->mappyLogin['login']."@".$this->mappyLogin['password']."@".$timestamp); $preToken = $this->mappyLogin['login']."@".$timestamp."@".$hash; $urlGetToken = $ACCESSOR_URL . 'token/generate.aspx?auth=' . urlencode($preToken) . '&ip=' . urlencode($_SERVER["REMOTE_ADDR"]); $fh = @fopen($urlGetToken, 'rb'); if ($fh == false) return false; $token = ''; while (!feof($fh))$token .= fread($fh, 8192); fclose($fh); return ($token); } /** * Apelle le token */ public function mappyPhoto() { if(!($token = self::getToken())) { echo 'Impossible de recuperer le Token !'; } return($token); } /**********************************************************************************/ /* Google sur fiche identité */ /**********************************************************************************/ /** * Genere le code pour l'image google. */ public function googlePhoto() { $googleKey = geoLocalisationLib::getGoogleKey($_SERVER['SERVER_NAME']); $adress = array(); $request = $this->getRequest(); $info = $request->getParam('infos'); $google_map = 'http://maps.google.fr/maps?f=q&hl=fr&geocode=&q='. $info->AdresseNum.',+'. urlencode($info->AdresseVoie).'+'. urlencode(htmlspecialchars_decode($info->AdresseRue, ENT_QUOTES)). ',+'.$info->CP.'+'. urlencode($info->Ville); $this->view->assign('infos', $info); $this->view->assign('google_map_link', $google_map); $this->view->assign('googleKey', $googleKey); } }