public function enregistreCommentaire() { $auth = new archiAuthentification(); $fieldsCommentaires = $this->getCommentairesFields(); $formulaire = new formGenerator(); if ($auth->estConnecte()) { unset($fieldsCommentaires['captcha']); } $error = $formulaire->getArrayFromPost($fieldsCommentaires); if (count($error) == 0) { $idUtilisateur = 0; if ($auth->estConnecte()) { $idUtilisateur = $auth->getIdUtilisateur(); // suite au SPAM mise en place d'un champ CommentaireValide 0/1 (by fabien 13/01/2012) $CommentaireValide = 1; $user = new archiUtilisateur(); $userInfos = $user->getArrayInfosFromUtilisateur($idUtilisateur); } else { $CommentaireValide = 0; } // enregistrement du nouveau commentaire //$req = "insert into commentaires (nom,prenom,email,commentaire,idEvenementGroupeAdresse,date,idUtilisateur) values (\"".addslashes(strip_tags($this->variablesPost['nom']))."\",\"".addslashes(strip_tags($this->variablesPost['prenom']))."\",\"".addslashes(strip_tags($this->variablesPost['email']))."\",\"".addslashes(strip_tags($this->variablesPost['commentaire']))."\",'".$this->variablesPost['idEvenementGroupeAdresse']."',now(),'".$idUtilisateur."')"; $nom = $auth->estConnecte() ? $userInfos["nom"] : $this->variablesPost['nom']; $prenom = $auth->estConnecte() ? $userInfos["prenom"] : $this->variablesPost['prenom']; $email = $auth->estConnecte() ? $user->getMailUtilisateur($idUtilisateur) : $this->variablesPost['email']; $uniqid = uniqid(null, true); $req = "INSERT INTO commentaires (nom, prenom, email, commentaire, idEvenementGroupeAdresse, date, idUtilisateur, CommentaireValide, uniqid) VALUES ('" . mysql_real_escape_string(strip_tags($nom)) . "', '" . mysql_real_escape_string(strip_tags($prenom)) . "', '" . mysql_real_escape_string(strip_tags($email)) . "', '" . mysql_real_escape_string(strip_tags($this->variablesPost['commentaire'])) . "', '" . mysql_real_escape_string($this->variablesPost['idEvenementGroupeAdresse']) . "', now(), '" . mysql_real_escape_string($idUtilisateur) . "'," . mysql_real_escape_string($CommentaireValide) . ", '" . mysql_real_escape_string($uniqid) . "')"; $res = $this->connexionBdd->requete($req); $idCommentaire = mysql_insert_id(); // retour a l'affichage de l'adresse $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesPost['idEvenementGroupeAdresse']); // ************************************************************************************************************************************************ // envoi d'un mail a tous les participants pour le groupe d'adresse // ************************************************************************************************************************************************ $mail = new mailObject(); $utilisateur = new archiUtilisateur(); $arrayUtilisateurs = $utilisateur->getParticipantsCommentaires($this->variablesPost['idEvenementGroupeAdresse']); $arrayCreatorAdresse = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); $arrayUtilisateurs = array_merge($arrayUtilisateurs, $arrayCreatorAdresse); $arrayUtilisateurs = array_unique($arrayUtilisateurs); $intituleAdresse = $this->getIntituleAdresseFrom($idAdresse, 'idAdresse'); foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) { if ($idUtilisateurAdresse != $auth->getIdUtilisateur()) { $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse); if ($infosUtilisateur['alerteCommentaires'] == '1' && $infosUtilisateur['compteActif'] == '1' && $infosUtilisateur['idProfil'] != '4') { $message = "Un utilisateur a ajouté un commentaire sur une adresse ou vous avez participé."; $message .= "Pour vous rendre sur l'adresse : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'])) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; $message .= $this->getMessageDesabonnerAlerteMail(); $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Ajout d\'un commentaire sur une adresse sur laquelle vous avez participé.', $message, true); } } } // ************************************************************************************************************************************************ // envoi d'un mail aux administrateur pour la moderation $message = "Merci d'avoir laissé un commentaire sur Archi-Strasbourg.<br>"; $message .= "Afin qu'il soit publié, merci de le valider en cliquant sur "; $message .= "<a href='" . $this->getUrlRacine() . "script/validateEmail.php?uniqid=" . urlencode($uniqid) . "'>ce lien</a>.<br>"; $message .= "<br/>Cordialement,</br>"; $mail = new mailObject(); $envoyeur['envoyeur'] = $mail->getSiteMail(); $envoyeur['replyTo'] = strip_tags($this->variablesPost['email']); $u = new archiUtilisateur(); if (!$CommentaireValide) { $mail->sendMail($envoyeur['envoyeur'], $this->variablesPost['email'], 'Votre commentaire sur Archi-Strasbourg', $message, true); } else { $message = "Un utilisateur a ajouté un commentaire sur archiV2 : <br>"; $message .= "nom ou pseudo : " . strip_tags($this->variablesPost['nom']) . "<br>"; $message .= "prenom : " . strip_tags($this->variablesPost['prenom']) . "<br>"; $message .= "email : " . strip_tags($this->variablesPost['email']) . "<br>"; $message .= "commentaire : " . stripslashes(strip_tags($this->variablesPost['commentaire'])) . "<br>"; $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'], 'archiIdAdresse' => $idAdresse)) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; $mail->sendMailToAdministrators($envoyeur, 'Un utilisateur a ajouté un commentaire', $message, " AND alerteCommentaires='1' ", true, true); // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere $arrayVilles = array(); $arrayVilles[] = $this->getIdVilleFrom($idAdresse, 'idAdresse'); $arrayVilles = array_unique($arrayVilles); $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteCommentaires='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($auth->getIdUtilisateur() != $idModerateur) { $mailModerateur = $u->getMailUtilisateur($idModerateur); $mail->sendMail($mail->getSiteMail(), $mailModerateur, 'Un utilisateur a ajouté un commentaire', $message, true); } } } } // remise a zero des variables en post sinon on va reafficher les infos $_POST['commentaire'] = ""; $_POST['email'] = ""; $_POST['nom'] = ""; $_POST['prenom'] = ""; $this->variablesGet['archiIdEvenementGroupeAdresse'] = $this->variablesPost['idEvenementGroupeAdresse']; $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresse']); $this->messages->addConfirmation("Commentaire enregistré !"); $this->messages->display(); header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresse']), false, false) . '#commentaireAdresse' . $idCommentaire); } else { $this->messages->addError("Il y a une erreur dans le formulaire."); $this->messages->display(); echo $this->getListeCommentaires($this->variablesPost['idEvenementGroupeAdresse']); echo $this->getFormulaireCommentaires($this->variablesPost['idEvenementGroupeAdresse'], $fieldsCommentaires); } }
private function getUserFormMail($idUtilisateur) { $infosArray = $this->getArrayInfosFromUtilisateur($idUtilisateur); $mail = new mailObject(); if ($infosArray['displayProfilContactForm'] == '1' && $infosArray['mail'] != '' && $mail->isMail($infosArray['mail'])) { $authentification = new archiAuthentification(); $mailUtilisateurConnecte = ""; if ($authentification->estConnecte()) { $idUtilisateurConnecte = $authentification->getIdUtilisateur(); $mailUtilisateurConnecte = $this->getMailUtilisateur($idUtilisateurConnecte); if (!$mail->isMail($mailUtilisateurConnecte)) { $mailUtilisateurConnecte = ""; } } $f = new formGenerator(); $bb = new bbCodeObject(); $configBoutonsBBCode = array('formName' => 'messagePrive', 'fieldName' => 'message', 'noUrlInterneButton' => true); $help = $this->getHelpMessages('helpEvenement'); foreach ($help as $index => $value) { $configBoutonsBBCode[$index] = $value; } $configBoutonsBBCode["msgQuote"] = "Selectionnez une partie de votre texte pour le mettre entre quotes"; $configBoutonsBBCode["msgUrlExterne"] = "Tapez une url commencant par http:// , et selectionnez la pour en faire un lien"; $arrayBBCode = $bb->getBoutonsMiseEnFormeTextArea($configBoutonsBBCode); if ($authentification->estConnecte()) { $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML'])); } else { $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML']), 'captcha' => array('type' => 'captcha', 'value' => '', 'htmlCode' => "", 'default' => '', 'libelle' => 'Vérification', 'error' => '', 'required' => true)); } if (isset($this->variablesPost['message'])) { $errors = $f->getArrayFromPost($configFieldsContact); $complementMsgVisiteAdresse = ""; if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') { // recuperation de l'intitule de l'adresse $adresse = new archiAdresse(); $idAdresseMessage = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']); $intituleAdresse = $adresse->getIntituleAdresseFrom($this->variablesGet['archiIdEvenementGroupeAdresseOrigine'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true, 'noQuartier' => true, 'noSousQuartier' => true, 'noVille' => true)); $complementMsgVisiteAdresse = " à visité l'adresse <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresseMessage, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'])) . "'>" . $intituleAdresse . "</a> et"; } if (count($errors) == 0) { // envoi du mail $contenu = "Bonjour, <br><br>"; $contenu .= "Un utilisateur d'archi-strasbourg (<a href=\"mailto:" . $this->variablesPost['mailEnvoyeur'] . "\">" . $this->variablesPost['mailEnvoyeur'] . "</a>){$complementMsgVisiteAdresse} vous envoie un message privé :<br><br>"; $contenu .= stripslashes($bb->convertToDisplay(array('text' => $this->variablesPost['message']))); $contenu .= ""; $contenu .= ""; if ($mail->sendMail($this->siteMail, $infosArray['mail'], "Un utilisateur d'archi-strasbourg vous envoie un message", $contenu, $writeMailToLogs = false, $this->variablesPost['mailEnvoyeur'])) { echo "<span style='color:red;'>Mail envoyé.</span>"; } } } $arrayUrlViensDeAdresse = array(); if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') { $arrayUrlViensDeAdresse = array('archiIdEvenementGroupeAdresseOrigine' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine']); } $configForm = array('formAction' => $this->creerUrl('', 'detailProfilPublique', array_merge($arrayUrlViensDeAdresse, array('archiIdUtilisateur' => $idUtilisateur))), 'fields' => $configFieldsContact, 'formName' => 'messagePrive', 'codeHtmlInFormAfterFields' => "Prévisualisation :" . $arrayBBCode['divAndJsAfterForm']); $html .= "<br><br><h2>Lui envoyer un message personnel :</h2>"; $html .= $f->afficherFromArray($configForm); } return $html; }
/** * Ajoute une source * * @return int ID de la nouvelle source * */ public function ajouter() { $newIdSource = 0; $formulaire = new formGenerator(); if (isset($this->variablesPost['submit'])) { $modeAffichage = ''; if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') { $modeAffichage = $this->variablesGet['modeAffichage']; } switch ($modeAffichage) { case 'nouveauDossier': case 'modifEvenement': $tabForm = array('nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'type' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeSource', 'primaryKey' => 'idTypeSource'))); break; default: $tabForm = array('nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nomNouveauType' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'type' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeSource', 'primaryKey' => 'idTypeSource'))); break; } $erreur = $formulaire->getArrayFromPost($tabForm); if (count($erreur) === 0) { $nom = mysql_escape_string($tabForm['nom']['value']); $description = ''; if (isset($tabForm['description']['value'])) { $description = mysql_escape_string(htmlspecialchars($tabForm['description']['value'])); } // // Récupération de l'id du type de source // c'est un nouveau type de source : if (isset($tabForm['nomNouveauType']['value']) && !empty($tabForm['nomNouveauType']['value'])) { // vérification si le type n'existe pas déjà $nomNouveauType = mysql_escape_string($tabForm['nomNouveauType']['value']); $sql = "SELECT idTypeSource FROM typeSource WHERE nom='" . $nomNouveauType . "' LIMIT 1"; $rep = $this->connexionBdd->requete($sql); if ($res = mysql_fetch_object($rep)) { // il existe $idTypeSource = $res->idTypeSource; } else { // il n'existe pas $sql = "INSERT INTO typeSource (nom) VALUES ('" . $nomNouveauType . "')"; $this->connexionBdd->requete($sql); $idTypeSource = mysql_insert_id(); } } else { if ($formulaire->estChiffre($tabForm['type']['value'])) { // Sinon, si le type est bien renseigné $idTypeSource = $tabForm['type']['value']; } else { // Sinon, rien ne va, on met une valeur par défaut $this->erreurs->ajouter(_("Ajout de source : type de source incorrect ! Utilisateur du choix par défaut = 1")); echo _("Erreur ajout source"); $idTypeSource = 1; } } $sql = "INSERT INTO source (nom, idTypeSource, description) VALUES \n ('" . $nom . "', " . $idTypeSource . ", '" . $description . "')"; $this->connexionBdd->requete($sql); $newIdSource = mysql_insert_id(); $mail = new mailObject(); $message = _("Une nouvelle source a été ajoutée :") . " <br>"; $message .= $nom . " : " . $description . "<br><br>"; $message .= "<a href='" . $this->creerUrl('', 'administrationAfficheModification', array('tableName' => 'source', 'idModification' => $newIdSource)) . "'>" . $this->creerUrl('', 'administrationAfficheModification', array('tableName' => 'source', 'idModification' => $newIdSource)) . "</a>"; $mail->sendMailToAdministrators($mail->getSiteMail(), "archi-strasbourg.org : " . _("un utilisateur ajouté une source"), $message, " and alerteMail='1' ", true); $u = new archiUtilisateur(); $u->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 9, 'criteres' => " and alerteMail='1' ")); } else { $this->erreurs->ajouter($tabForm); } } return $newIdSource; }
public function afficherFormulaireModification($id = 0, $type = '', $arrayListeIdImages = array()) { $html = ""; $utilisateur = new archiUtilisateur(); $authentification = new archiAuthentification(); //echo "afficherFormulaireModification : id=".$id." type=".$type; $arrayModifUrlParams = array(); echo "<script>\n\n function retirerPrisDepuis(idAdresseValue, identifiantUniqueRetour) {\n document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour).innerHTML='';\n\n if (idAdresseValue!=0)\n {\n selectField = document.getElementById('prisDepuis'+identifiantUniqueRetour);\n divField = document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour);\n for(i=0 ; i<selectField.options.length; i++ ) {\n if (selectField.options[i]!=null) {\n if (selectField.options[i].value==idAdresseValue)\n {\n indiceARetirer = i;\n }\n else\n {\n divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\"retirerPrisDepuis(\\''+selectField.options[i].value+'\\', '+identifiantUniqueRetour+')\">(-)</a><br>';\n }\n }\n }\n\n selectField.options[indiceARetirer]=null;\n }\n\n }\n\n\n function retirerVueSur(idAdresseValue, identifiantUniqueRetour) {\n document.getElementById('listeVueSurDiv'+identifiantUniqueRetour).innerHTML='';\n\n if (idAdresseValue!=0)\n {\n selectField = document.getElementById('vueSur'+identifiantUniqueRetour);\n divField = document.getElementById('listeVueSurDiv'+identifiantUniqueRetour);\n for(i=0 ; i<selectField.options.length; i++ ) {\n if (selectField.options[i]!=null) {\n if (selectField.options[i].value==idAdresseValue)\n {\n indiceARetirer = i;\n }\n else\n {\n divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\\\"retirerVueSur(\\''+selectField.options[i].value+'\\', '+identifiantUniqueRetour+')\\\">(-)</a><br>';\n }\n }\n }\n\n selectField.options[indiceARetirer]=null;\n }\n\n }\n </script>\n "; $t = new Template('modules/archi/templates/'); $t->set_filenames(array('imageFormModif' => 'imageFormulaire.tpl')); /****** ** Source - récupration **/ $sqlSource = 'SELECT idSource, nom, idTypeSource FROM source'; $tabSource = array(); if ($result = $this->connexionBdd->requete($sqlSource)) { while ($rep = mysql_fetch_object($result)) { $tabSource[$rep->idSource] = $rep->nom; } } switch ($type) { case 'adresse': break; case 'evenement': // recherche des images liées a l'evenement $arrayListeIdImages = array(); if (isset($this->variablesGet['archiIdEvenement']) && $this->variablesGet['archiIdEvenement'] != '0' && $this->variablesGet['archiIdEvenement'] != '') { $evenement = new archiEvenement(); $adresse = new archiAdresse(); // affichages des recapitulatifs en haut de la page ( adresse + titres des evenements) $idEvenementGroupeAdresse = $evenement->getParent($this->variablesGet['archiIdEvenement']); $idEvenementCourant = $this->variablesGet['archiIdEvenement']; if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { $person = new archiPersonne(); $infos = $person->getInfosPersonne($idPerson); $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>")); } else { $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse))); } $t->assign_vars(array("recapitulatifHistoriqueEvenements" => $evenement->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $idEvenementCourant))); $t->assign_vars(array("liensModifEvenements" => $evenement->afficherLiensModificationEvenement($idEvenementCourant))); $reqEvenement = "SELECT distinct idImage from _evenementImage WHERE idEvenement ='" . $this->variablesGet['archiIdEvenement'] . "' ORDER BY position"; $resEvenement = $this->connexionBdd->requete($reqEvenement); while ($fetchEvenement = mysql_fetch_assoc($resEvenement)) { $arrayListeIdImages[] = $fetchEvenement['idImage']; } } break; default: if (count($arrayListeIdImages) == 1) { $evenement = new archiEvenement(); $adresse = new archiAdresse(); if (isset($this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'] != '') { $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']; $arrayModifUrlParams = array('archiIdEvenementGroupeAdresseAffichageAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']); } else { $idEvenementImageUnique = $this->getArrayIdEvenementFromIdImage($arrayListeIdImages[0]); $idEvenementGroupeAdresse = $evenement->getParent($idEvenementImageUnique); } if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { $person = new archiPersonne(); $infos = $person->getInfosPersonne($idPerson); $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>")); } else { $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse))); } } break; } //echo "afficherFormulaireModification $type"; // cas ou le ne precise pas de idCourant ni de type de liaison ( la photo n'est ni liee a un evenement ni une adresse) // on modifie une liste d'images // ***************************************************************************************************************************************************************** if (count($arrayListeIdImages) > 0) { $t->assign_block_vars('isImages', array()); $listeIdImagesAModifier = implode("', '", $arrayListeIdImages); $requeteImages = "\n SELECT\n hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.nom as nom,\n hi1.dateUpload as dateUpload, hi1.dateCliche as dateCliche, hi1.description as description, hi1.tags as tags,\n hi1.idUtilisateur as idUtilisateur, u.nom as nomUtilisateur, u.prenom as prenomUtilisateur,\n hi1.idSource as idSource, hi1.isDateClicheEnviron as isDateClicheEnviron,\n hi1.numeroArchive as numeroArchive,\n if (_ai.idImage IS NULL, 0, 1) as isAdresseImage,\n if (_ei.idImage IS NULL, 0, 1) as isEvenementImage,\n\n _ai.seSitue as seSitue,\n _ai.prisDepuis as prisDepuis,\n _ai.etage as etage,\n _ai.hauteur as hauteur,\n _ai.idAdresse as idAdresse,\n _ei.idEvenement as idEvenement\n\n FROM historiqueImage hi2, historiqueImage hi1\n LEFT JOIN _evenementImage _ei ON _ei.idImage = hi1.idImage\n LEFT JOIN _adresseImage _ai ON _ai.idImage = hi1.idImage\n LEFT JOIN utilisateur u ON u.idUtilisateur = hi1.idUtilisateur\n\n WHERE hi2.idImage = hi1.idImage\n AND hi1.idImage IN ('" . $listeIdImagesAModifier . "')\n GROUP BY hi1.idImage, hi1.idHistoriqueImage\n HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\n "; $resImage = $this->connexionBdd->requete($requeteImages); $i = 0; $nomUtilisateur = ""; $prenomUtilisateur = ""; $listeId = array(); $adresseObject = new archiAdresse(); // ******************************************************************************************************************************************** // boucle sur les images // ******************************************************************************************************************************************** while ($fetch = mysql_fetch_array($resImage)) { if ($i == 0) { $nomUtilisateur = $fetch["nomUtilisateur"]; $prenomUtilisateur = $fetch["prenomUtilisateur"]; } $dateCliche = ""; if ($this->date->toFrench($fetch['dateCliche']) == '00/00/0000') { $dateCliche = ""; } else { $dateCliche = $this->date->toFrench($fetch['dateCliche']); } // *********************************************************** // GESTION AFFICHAGE ADRESSES CHAMPS MULTIPLES // gestion de l'affichage des adresses de chaque photo //$arrayGereAffichage = $this->gereAffichageAdresses($fetch['idHistoriqueImage'], $fetch['idImage'], 'modif'); // *********************************************************** //$nbAdressesAffichees = $arrayGereAffichage['nbAdressesAffichees']; $adresseObject = new archiAdresse(); $stringObject = new stringObject(); // adresses prisDepuis $reqPrisDepuis = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND prisDepuis='1'"; $resPrisDepuis = $this->connexionBdd->requete($reqPrisDepuis); $selectPrisDepuisHTML = ""; $divPrisDepuisHTML = ""; while ($fetchPrisDepuis = mysql_fetch_assoc($resPrisDepuis)) { if ($fetchPrisDepuis['idEvenementGroupeAdresse'] != '0') { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true)); } else { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idAdresse'], 'idAdresse'); } $selectPrisDepuisHTML .= "<option value='" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>"; $divPrisDepuisHTML .= $nomAdresse . "<a onclick=\"retirerPrisDepuis('" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "', " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>"; } // adresses vueSur $reqVueSur = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND vueSur='1'"; $resVueSur = $this->connexionBdd->requete($reqVueSur); $selectVueSurHTML = ""; $divVueSurHTML = ""; while ($fetchVueSur = mysql_fetch_assoc($resVueSur)) { if ($fetchVueSur['idEvenementGroupeAdresse'] != '0') { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true)); } else { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idAdresse'], 'idAdresse'); } $selectVueSurHTML .= "<option value='" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>"; $divVueSurHTML .= $nomAdresse . "<a onclick=\"retirerVueSur('" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "', " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>"; } // *********************************************************** // RECUPERATION DES SOURCES // on recupere le nom de la source // *********************************************************** $reqSource = "\n select s.idSource as idSource, s.nom as nom, ts.nom as nomTS , if (ts.nom<>'', concat('(', ts.nom, ')'), '')as nomTypeSource\n from source s\n left join typeSource ts ON ts.idTypeSource = s.idTypeSource\n where idSource = '" . $fetch['idSource'] . "'"; $resSource = $this->connexionBdd->requete($reqSource); $fetchSource = mysql_fetch_assoc($resSource); // *********************************************************** // *********************************************************** // recuperation des données POST, avec par defaut les valeurs de la base de données // *********************************************************** $checkIsDateClicheEnviron = 0; if ($fetch['isDateClicheEnviron'] == 1) { $checkIsDateClicheEnviron = 1; } $tabForm = array('nom_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['nom']), 'description_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['description']), 'dateUpload_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateUpload'])), 'dateCliche_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateCliche'])), 'isDateClicheEnviron_' . $fetch['idHistoriqueImage'] => array('type' => 'checkbox', 'required' => false, 'value' => '', 'default' => $checkIsDateClicheEnviron), 'source' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['idSource']), 'source' . $fetch['idHistoriqueImage'] . 'txt' => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetchSource['nom'] . ' ' . $fetchSource['nomTypeSource'] . ''), 'numeroArchive_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['numeroArchive'])); $formulaire = new formGenerator(); // appel de la fonction recuperant les valeurs du formulaire $errors = $formulaire->getArrayFromPost($tabForm); // *********************************************************** // *********************************************************** // assignation des champs de l'adresse // *********************************************************** $popupPrisDepuis = new calqueObject(array('idPopup' => 'popupPrisDepuis' . $fetch['idHistoriqueImage'])); $popupVueSur = new calqueObject(array('idPopup' => 'popupVueSur' . $fetch['idHistoriqueImage'])); $checkIsDateClicheEnviron = ''; if ($tabForm['isDateClicheEnviron_' . $fetch['idHistoriqueImage']]['value'] == '1') { $checkIsDateClicheEnviron = 'checked'; } $auteur = $this->getAuteur($fetch['idImage']); if (is_array($auteur)) { $nomUpload = $auteur["nom"]; $nomAuteur = ""; } else { $nomAuteur = $auteur; $nomUpload = ""; } $licence = $this->getLicence($fetch['idImage']); $idUtilisateur = $authentification->getIdUtilisateur(); $utilisateur = new ArchiUtilisateur(); if ($licence["id"] == 3 && !$utilisateur->isAuthorized('admin_licences', $idUtilisateur) && !$utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) { $selectLicenceHTML = "<span title='" . htmlspecialchars(_("Seul l'auteur peut changer la licence de cette image."), ENT_QUOTES) . "'>" . $licence["name"] . "</span>"; $enableAuthor = "disabled='disabled'"; } else { $enableAuthor = ""; $reqLicence = $this->connexionBdd->requete("SELECT * FROM licences"); $selectLicenceHTML = ""; while ($fetchLicence = mysql_fetch_assoc($reqLicence)) { if ($fetchLicence["id"] != 3 || $utilisateur->isAuthorized('admin_licences', $idUtilisateur) || $utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) { $selectLicenceHTML .= "<input type='radio' value='" . $fetchLicence["id"] . "' id='licence_" . $fetchLicence["id"] . "' name='licence_" . $fetch['idHistoriqueImage'] . "'"; if ($fetchLicence["id"] == $licence["id"]) { $selectLicenceHTML .= " checked='checked' "; } $selectLicenceHTML .= "/>"; $selectLicenceHTML .= "<label title='" . htmlspecialchars($fetchLicence["description"], ENT_QUOTES) . "' for='licence_" . $fetchLicence["id"] . "'>"; if (!empty($fetchLicence["link"])) { $selectLicenceHTML .= "<a href='" . $fetchLicence["link"] . "'>"; } $selectLicenceHTML .= $fetchLicence["name"]; if (!empty($fetchLicence["link"])) { $selectLicenceHTML .= "</a>"; } $selectLicenceHTML .= "</label>"; } } } $t->assign_block_vars('listePhotos', array('onClickPopupPrisDepuis' => "document.getElementById('" . $popupPrisDepuis->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupPrisDepuis->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupPrisDepuis->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')) . "';", 'popupPrisDepuis' => $popupPrisDepuis->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Pris Depuis')), 'selectPrisDepuis' => $selectPrisDepuisHTML, 'listePrisDepuisDiv' => $divPrisDepuisHTML, 'onClickPopupVueSur' => "document.getElementById('" . $popupVueSur->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupVueSur->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupVueSur->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')) . "';", 'popupVueSur' => $popupVueSur->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Vue Sur')), 'selectVueSur' => $selectVueSurHTML, 'listeVueSurDiv' => $divVueSurHTML, 'urlImage' => $this->getUrlImage("grand") . '/' . $fetch['dateUpload'] . '/' . $fetch['idHistoriqueImage'] . '.jpg', 'nom' => $tabForm['nom_' . $fetch['idHistoriqueImage']]['value'], 'description' => stripslashes($tabForm['description_' . $fetch['idHistoriqueImage']]['value']), 'idHistoriqueImage' => $fetch['idHistoriqueImage'], 'dateUpload' => $tabForm['dateUpload_' . $fetch['idHistoriqueImage']]['value'], 'dateCliche' => $tabForm['dateCliche_' . $fetch['idHistoriqueImage']]['value'], 'numeroArchive' => $tabForm['numeroArchive_' . $fetch['idHistoriqueImage']]['value'], 'checkIsDateClicheEnviron' => $checkIsDateClicheEnviron, 'idImage' => $fetch['idImage'], 'adresseUrl' => '#', 'adresseOnClick' => "document.getElementById('calqueAdresse').style.display='block';document.getElementById('paramChampsAppelantAdresse').value='listeAdresses_" . $fetch['idHistoriqueImage'] . "';", 'evenementUrl' => '#', 'evenementOnClick' => "document.getElementById('calqueEvenement').style.display='block';document.getElementById('paramChampsAppelantEvenement').value='listeEvenements_" . $fetch['idHistoriqueImage'] . "';", 'onClickBoutonAjouterAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonChoixVille' => "document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';document.getElementById('paramChampAppelantVille').value='ville" . $fetch['idHistoriqueImage'] . "';document.getElementById('paramChampVilleIdentifiantUnique').value='" . $fetch['idHistoriqueImage'] . "'", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1, 'identifiantUnique' => $fetch['idHistoriqueImage'])) . "&archiIdQuartier='+document.getElementById('quartiers" . $fetch['idHistoriqueImage'] . "').value, 'listeSousQuartier" . $fetch['idHistoriqueImage'] . "')", 'onClickBoutonChoixSource' => "document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='source_" . $fetch['idHistoriqueImage'] . "';", 'onClickDateCliche' => "document.getElementById('paramChampAppelantDate').value='dateCliche_" . $fetch['idHistoriqueImage'] . "';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'idSource' => $tabForm['source' . $fetch['idHistoriqueImage']]['value'], 'nomSource' => $tabForm['source' . $fetch['idHistoriqueImage'] . 'txt']['value'], "nomAuteur" => $nomAuteur, "nomUpload" => $nomUpload, "tags" => $fetch['tags'], "selectLicence" => $selectLicenceHTML, "enableAuthor" => $enableAuthor)); if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) { $t->assign_block_vars('listePhotos.isDisplayNumeroArchive', array()); } else { $t->assign_block_vars('listePhotos.isNoDisplayNumeroArchive', array()); } if ($utilisateur->canModifyTags(array('idUtilisateur' => $authentification->getIdUtilisateur()))) { $t->assign_block_vars('listePhotos.canModifyTags', array()); } else { $t->assign_block_vars('listePhotos.canNotModifyTags', array()); } if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) { $t->assign_block_vars('listePhotos.isDisplaySource', array()); } else { $t->assign_block_vars('listePhotos.isNoDisplaySource', array()); } // *************************************************** // IDENTIFIANT d'HISTORIQUES IMAGES // recuperation de la liste des identifiants d'images $listeId[] = $fetch['idHistoriqueImage']; // *************************************************** // *************************************************** // SOURCES // création de la liste des sources // *************************************************** if (!empty($tabSource)) { foreach ($tabSource as $id => $nom) { if (isset($tabTravail['source']['value']) && $tabTravail['source']['value'] == $id) { $selected = 'selected="selected"'; } else { $selected = ''; } $t->assign_block_vars('listePhotos.source', array('val' => $id, 'nom' => $nom, 'selected' => $selected)); } } // recuperation des evenements lies à l'image $resEvenementsLies = $this->getFetchEvenementsLies($fetch['idImage']); while ($fetchEvenementsLies = mysql_fetch_assoc($resEvenementsLies)) { $t->assign_block_vars('listePhotos.evenements', array('value' => $fetchEvenementsLies['idEvenement'], 'nom' => $fetchEvenementsLies['titre'])); } $i++; } // *************************************************** $t->assign_vars(array("proprietaireImages" => "Images concernant l'adresse", 'actionFormImage' => $this->creerUrl('modifImage', '', $arrayModifUrlParams), 'listeId' => implode(', ', $listeId))); // *************************************************** // *************************************************** // pour les calques : // *************************************************** $recherche = new archiRecherche(); $adresse = new archiAdresse(); $t->assign_vars(array('popupChoixAdresse' => $recherche->getPopupChoixAdresse('resultatRechercheAdresseCalqueImageChampMultiple'), 'popupChoixEvenement' => $recherche->getPopupChoixEvenement('resultatRechercheEvenementCalqueImageChampMultiple'), 'popupChoixSource' => $recherche->getPopupChoixSource('modifImage'), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupAttente' => $this->getPopupAttente())); } else { $t->assign_vars(array('msgPasdImage' => "Il n'y a pas d'image.")); } // ********************************************************************************* // recuperation des aides contextuelles $helpMessages = $this->getHelpMessages('helpImage'); $helpMessages = array_merge($helpMessages, $this->getHelpMessages('helpAdresse')); foreach ($helpMessages as $fieldName => $message) { $t->assign_vars(array($fieldName => $message)); } // ********************************************************************************* ob_start(); $t->pparse('imageFormModif'); $html = ob_get_contents(); ob_end_clean(); return $html; }
/** * Ajouter une personne * * @return void * */ public function ajouter() { $newIdPersonne = 0; $formulaire = new formGenerator(); if (isset($this->variablesPost['submit'])) { $modeAffichage = ''; if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') { $modeAffichage = $this->variablesGet['modeAffichage']; } switch ($modeAffichage) { case 'nouveauDossier': case "modifEvenement": $tabForm = array('prenom' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'dateNaissance' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'dateDeces' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'metier' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'metier', 'primaryKey' => 'idMetier'))); break; default: $tabForm = array('prenom' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nouveauMetier' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'dateNaissance' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'dateDeces' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'metier' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'metier', 'primaryKey' => 'idMetier'))); break; } $erreur = $formulaire->getArrayFromPost($tabForm); if (count($erreur) === 0) { $prenom = mysql_escape_string($tabForm['prenom']['value']); $nom = mysql_escape_string($tabForm['nom']['value']); $description = isset($_POST['descriptionPerson']) ? mysql_escape_string($_POST['descriptionPerson']) : mysql_escape_string(htmlspecialchars($tabForm['description']['value'])); $dateNaissance = $this->date->toBdd($this->date->convertYears($tabForm['dateNaissance']['value'])); $dateDeces = $this->date->toBdd($this->date->convertYears($tabForm['dateDeces']['value'])); /*if (!empty($tabForm['nouveauMetier']['value'])) { // nouveau metier $nomMetier = mysql_escape_string($tabForm['nouveauMetier']['value']); $sql = "SELECT idMetier FROM metier WHERE nom='".$nomMetier."' LIMIT 1"; $rep = $this->connexionBdd->requete($sql); if (mysql_num_rows($rep) === 1) { $res = mysql_fetch_object($rep); $idMetier = $res->idMetier; echo "métier existe"; } else { $sql = "INSERT INTO metier (nom) VALUES ('".$nomMetier."')"; $this->connexionBdd->requete($sql); $idMetier = mysql_insert_id(); echo 'métier existe pas'; } } else if (empty($tabForm['metier']['error']) AND !empty($tabForm['metier']['value'])) {*/ // valeur du select $idMetier = $tabForm['metier']['value']; //echo 'métier select'; /*} else { // choix par défaut $idMetier = 1; echo 'défaut'; }*/ $sql = "INSERT INTO personne (prenom, nom, dateNaissance, dateDeces, description, idMetier ) VALUES\n ('" . $prenom . "', '" . $nom . "', '" . $dateNaissance . "', '" . $dateDeces . "', '" . $description . "', " . $idMetier . ")"; $this->connexionBdd->requete($sql); $newIdPersonne = mysql_insert_id(); } else { $this->erreurs->ajouter($tabForm); } $this->erreurs->ajouter($tabForm); } return $newIdPersonne; }
public function afficheResultatsRechercheAvancee($params = array()) { $html = ""; $modeAffichage = 'recherche'; $formulaire = new formGenerator(); if (isset($this->variablesGet['submitRechercheAvancee'])) { $adresses = new archiAdresse(); $tabForm = array('motcle' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'pays' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'pays', 'primaryKey' => 'idPays')), 'ville' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'ville', 'primaryKey' => 'idVille')), 'quartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'quartier', 'primaryKey' => 'idQuartier')), 'sousQuartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'sousQuartier', 'primaryKey' => 'idSousQuartier')), 'rue' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'rue', 'primaryKey' => 'idRue')), 'courant' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'courantArchitectural', 'primaryKey' => 'idCourantArchitectural')), 'typeStructure' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeStructure', 'primaryKey' => 'idTypeStructure')), 'typeEvenement' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeEvenement', 'primaryKey' => 'idTypeEvenement')), 'source' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'source', 'primaryKey' => 'idSource')), 'personnes' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'personne', 'primaryKey' => 'idPersonne')), 'anneeDebut' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'anneeFin' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'MH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox'), 'ISMH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox')); $erreur = $formulaire->getArrayFromPost($tabForm, $_GET); if (count($erreur) == 0) { foreach ($tabForm as $nom => $valeur) { $criteres['recherche_' . $nom] = $valeur['value']; } if (isset($this->variablesGet['afficheResultatsSurCarte']) && $this->variablesGet['afficheResultatsSurCarte'] == '1') { $checkedCheckBox = true; $adresses = new archiAdresse(); $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage, array('sqlLimitExterne' => "150")); // on limite les resultats a 150 pour avoir au moins 100 groupes d'adresses différents //$arrayIdAdresses = $retourAdresses['arrayIdAdresses']; $arrayIdEvenementsGA = $retourAdresses['arrayIdEvenementsGroupeAdresse']; $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 700, 'height' => 500, 'zoom' => 13)); $this->addToJsHeader($gm->getJsFunctions()); // ajout des fonctions de google map dans le header // on affiche uniquement les 100 premieres coordonnées // preparation du tableau de liste de coordonnées a transmettre a la classe googlemap $listeCoordonnees = array(); $arrayIdEvenementGroupeAdressesConfigGMap = array(); for ($i = 0; $i < 100 && isset($arrayIdEvenementsGA[$i]); $i++) { $reqCoordonnees = "\n\t\t\t\t\t\t\t\tSELECT IF(ae.latitudeGroupeAdresse<>'0',ae.latitudeGroupeAdresse,ha1.latitude) as latitude,\n\t\t\t\t\t\t\t\tIF(ae.longitudeGroupeAdresse<>'0', ae.longitudeGroupeAdresse,ha1.longitude) as longitude\n\t\t\t\t\t\t\t\tFROM historiqueAdresse ha2, historiqueAdresse ha1\n\t\t\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tWHERE ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tAND ha1.longitude!=''\n\t\t\t\t\t\t\t\tAND ha1.latitude!=''\n\t\t\t\t\t\t\t\tAND ha1.longitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.latitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.longitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ha1.latitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ae.idEvenement = '" . $arrayIdEvenementsGA[$i] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse,ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\n\t\t\t\t\t\t\t\t\t\t"; $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees); $arrayIdEvenementGroupeAdressesConfigGMap[$i]['idEvenementGroupeAdresse'] = $arrayIdEvenementsGA[$i]; if (mysql_num_rows($resCoordonnees) > 0) { $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees); $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = $fetchCoordonnees['longitude']; $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = $fetchCoordonnees['latitude']; } else { $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = 0; $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = 0; } } $retourConfig = $adresses->getArrayGoogleMapConfigCoordonneesFromCenter(array('arrayIdEvenementsGroupeAdresse' => $arrayIdEvenementGroupeAdressesConfigGMap)); $html = "<h1>" . _("Résultats de la recherche avancée :") . "</h1>"; if ($retourAdresses['nbAdresses'] == 0) { $html .= _("aucun résultat.") . "<br><br>"; } else { $html .= "<br>" . $retourAdresses['nbAdresses'] . " " . _("résultats.") . "<br>"; } $html .= $gm->getMap(array('listeCoordonnees' => $retourConfig['arrayConfigCoordonnees'], 'urlImageIcon' => $this->urlImages . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png", 'setAutomaticCentering' => true)); } else { $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage); if ($retourAdresses['nbAdresses'] == 0) { $html = "<h1>" . _("Adresses :") . "</h1>"; $html .= _("Aucun résultat."); } else { $html = $retourAdresses['html']; } } } } return $html; }