public function afficherDetail($idAdresse = 0, $idEvenementGroupeAdresse = 0) { // attention s'il y a plusieurs evenement distinct (pas associes entre eux) reliés a l'adresse on les affichera a la suite if (isset($_GET["archiIdAdresse"])) { $address = $this->getArrayAdresseFromIdAdresse($_GET["archiIdAdresse"]); } $reqTitre = "\n\t\t\t\tSELECT he1.titre as titre\n\t\t\t\tFROM _adresseEvenement ae\n\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\t\t\tLEFT JOIN evenements he1 ON he1.idEvenement = ee.idEvenementAssocie\n\t\t\t\tLEFT JOIN evenements he2 ON he2.idEvenement = he1.idEvenement\n\t\t\t\tWHERE he1.titre!=''\n\t\t\t\tAND ae.idAdresse = '" . $idAdresse . "'\n\t\t\t\tAND he1.idTypeEvenement <>'6'\n\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\tORDER BY he1.dateDebut,he1.idEvenement\n\t\t\t\tLIMIT 1\n\n\t\t\t\t"; $resTitre = $this->connexionBdd->requete($reqTitre); if (mysql_num_rows($resTitre) == 1) { $fetchTitre = mysql_fetch_assoc($resTitre); $titre = stripslashes($fetchTitre['titre']); if (trim($fetchTitre['titre']) == '') { $noTitreDetected = true; $titre = ''; } } // } $html = "<div class='social_widgets'><div class='fb-like right' data-send='false' data-layout='button_count' data-show-faces='true' data-action='recommend'></div>\n <a href='https://twitter.com/share' class='twitter-share-button right' data-via='ArchiStrasbourg' data-lang='fr' data-related='ArchiStrasbourg'>Tweeter</a>\n <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script></div>"; $html .= "<h2>"; $e = new archiEvenement(); $archiIdEvenementGroupeAdresse = isset($_GET['archiIdEvenementGroupeAdresse']) ? $_GET['archiIdEvenementGroupeAdresse'] : $e->getIdEvenementGroupeAdresseFromIdEvenement($_GET["archiIdEvenement"]); $titre = $intituleAdresse = $this->getIntituleAdresseFrom($archiIdEvenementGroupeAdresse, "idEvenementGroupeAdresse", array("afficheTitreSiTitreSinonRien" => true, "noHTML" => true)); if (isset($titre) && !empty($titre)) { if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') { $html .= "<span itemprop='name'>"; } $html .= $titre; if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') { $html .= "</span>"; } if (!empty($address["nomRue"])) { $html .= " - "; } } if (isset($address)) { if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') { $html .= "<span itemprop='address' itemscope itemtype='http://schema.org/PostalAddress'><span itemprop='streetAddress'>"; } if ($address["numero"] . " " != 0) { $html .= $address["numero"]; if (isset($address['nomIndicatif'])) { $html .= $address["nomIndicatif"]; } $html .= ' '; } $html .= $address["prefixeRue"] . " " . $address["nomRue"]; if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') { $html .= "</span>\n\t\t\t\t\t\t<meta itemprop='addressLocality' content='" . $address["nomVille"] . "'/>\n\t\t\t\t\t\t<meta itemprop='addressCountry' content='" . $address["nomPays"] . "'/>\n\t\t\t\t\t\t</span>"; } } $html .= "</h2>"; $evenement = new archiEvenement(); // si le groupe d'adresse est precisé dans l'url , on ne va afficher que celui ci if (isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') { if (isset($this->variablesGet['modeAffichage'])) { $modeAffichage = $this->variablesGet['modeAffichage']; } else { $modeAffichage = ''; } $retourEvenement = $evenement->afficher($this->variablesGet['archiIdEvenementGroupeAdresse'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse $html .= $retourEvenement['html']; if (!archiPersonne::isPerson($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != 0) { $html .= $evenement->getFormComment($this->variablesGet['archiIdEvenementGroupeAdresse'], $this->getCommentairesFields(), ''); $html .= $this->getListeCommentaires($this->variablesGet['archiIdEvenementGroupeAdresse']); } } elseif ($idEvenementGroupeAdresse != '' && $idEvenementGroupeAdresse != '0') { $retourEvenement = $evenement->afficher($idEvenementGroupeAdresse, '', null, array()); $html .= $retourEvenement['html']; if (!ArchiPersonne::isPerson($idEvenementGroupeAdresse)) { $html .= $evenement->getFormComment($this->variablesGet['archiIdEvenementGroupeAdresse'], $this->getCommentairesFields(), ''); $html .= $this->getListeCommentaires($idEvenementGroupeAdresse); } } else { $resEvenements = $this->getIdEvenementsFromAdresse($idAdresse); //c'est l'evenement groupe d'adresse qui est relié a l'idAdresse donc on recupere un idEvenementGroupeAdresse en fait if (mysql_num_rows($resEvenements) == 1) { // un seul evenement groupe d'adresse correspond a l'adresse cliquée $fetchEvenements = mysql_fetch_assoc($resEvenements); $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse $html .= $retourEvenement['html']; if (!ArchiPersonne::isPerson($fetchEvenements['idEvenement'])) { $html .= $evenement->getFormComment($fetchEvenements['idEvenement'], $this->getCommentairesFields(), ''); $html .= $this->getListeCommentaires($fetchEvenements['idEvenement']); } } else { // il y a plusieurs evenements groupes d'adresses qui correspondent a la meme adresse // on n'affiche que les evenements qui concernent la recherche // archiIdEvenementGroupeAdresse , correspond au groupe d'adresse de l'adresse resultat de la recherche if (isset($this->variablesGet['recherche_motcle'])) { // on refait une recherche sur les evenements concernés par l'adresse correspondant a plusieurs evenements groupe adresse $req = "\n\t\t\t\t\t\t\tSELECT ee.idEvenement as idEvenementGroupeAdresse, he1.idEvenement as idEvenement\n\t\t\t\t\t\t\tFROM evenements he2, evenements he1\n\t\t\t\t\t\t\tRIGHT JOIN _adresseEvenement ae ON ae.idAdresse = '" . $idAdresse . "'\n\t\t\t\t\t\t\tRIGHT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\tAND he1.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\tAND CONCAT_WS('',lower(he1.titre),lower(he1.description)) like \"%" . strtolower($this->variablesGet['recherche_motcle']) . "%\"\n\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t"; $res = $this->connexionBdd->requete($req); while ($fetch = mysql_fetch_assoc($res)) { $retourEvenement = $evenement->afficher($fetch['idEvenementGroupeAdresse'], '', null, array(), array()); // cette fonction va afficher les evenements liés au groupe d'adresse //'rechercheAdresseCalqueObject'=>$c $html .= $retourEvenement['html']; } } else { $nbGroupesAdressesAffiches = 0; while ($fetchEvenements = mysql_fetch_assoc($resEvenements)) { $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse $html .= $retourEvenement['html']; $nbGroupesAdressesAffiches += count($retourEvenement['listeGroupeAdressesAffichees']); if (isset($retourEvenement['listeGroupeAdressesAffichees'][0])) { $groupeAdresse = $retourEvenement['listeGroupeAdressesAffichees'][0]; } } if ($nbGroupesAdressesAffiches == 1) { if (!ArchiPersonne::isPerson($groupeAdresse)) { debug($groupeAdresse); $html .= $evenement->getFormComment($groupeAdresse, $this->getCommentairesFields(), ''); $html .= $this->getListeCommentaires($groupeAdresse); } } } } } // popup pour la description de la source $s = new archiSource(); $html .= $s->getPopupDescriptionSource(); return $html; }
$a = new archiAdresse(); echo $a->afficherDetail($_GET['archiIdAdresse']); break; case 'testAdresseDetail': $a = new archiAdresse(); $e = new archiEvenement(); echo $a->afficherDetailAdresse($_GET['idAdresse'], $_GET['idEvenementGroupeAdresse']); //afficherDetailAdresse break; case 'displayAddress': $a = new archiAdresse(); echo $a->display(); break; case 'evenement': $a = new archiEvenement(); $retour = $a->afficher($_GET['idEvenement']); echo $retour['html']; break; case 'imageDetail': $a = new archiImage(); echo $a->afficher($_GET['archiIdImage']); break; case 'imageListe': $a = new archiImage(); echo $a->afficherListe(); break; case 'afficheHistoriqueImage': $i = new archiImage(); echo $i->afficheHistoriqueImage($_GET['archiIdImage']); break; case 'inscription':
public function modifier() { set_time_limit(0); $mail = new mailObject(); $authentifie = new archiAuthentification(); $arrayListeIdImage = array(); $dateDuJour = date("Y-m-d"); //$authentifie->estConnecte() && if (isset($this->variablesPost['listeId']) && $this->variablesPost['listeId'] != '') { $adresses = new archiAdresse(); $arrayListeIdHistoriqueImage = explode(', ', $this->variablesPost['listeId']); foreach ($arrayListeIdHistoriqueImage as $indice => $idHistorique) { if (isset($this->variablesPost['idCourant_' . $idHistorique])) { $idCourant = $this->variablesPost['idCourant_' . $idHistorique]; } if (isset($this->variablesPost['typeLiaisonImage_' . $idHistorique])) { $typeLiaisonImage = $this->variablesPost['typeLiaisonImage_' . $idHistorique]; } switch ($typeLiaisonImage) { case 'adresse': $listeChamps = array('nom', 'description', 'seSitue', 'prisDepuis', 'etage', 'hauteur', 'dateCliche', 'dateUpload', 'source', 'isDateClicheEnviron', "licence", "auteur", "tags"); break; case 'evenement': $listeChamps = array('nom', 'description', 'dateCliche', 'dateUpload', 'source', 'isDateClicheEnviron', 'numeroArchive', "licence", "auteur", "tags"); break; default: $listeChamps = array('nom', 'description', 'dateCliche', 'dateUpload', 'source', 'isDateClicheEnviron', 'numeroArchive', "licence", "auteur", "tags"); break; } $idImage = $this->variablesPost['idImage_' . $idHistorique]; $arrayListeIdImage[] = $idImage; // ********************************************************************** // upload des photos remplacantes s'il y a lieu if (isset($_FILES['fichierRemplace' . $idHistorique]['name']) && $_FILES['fichierRemplace' . $idHistorique]['name'] != '') { $authentifie = new archiAuthentification(); //$authentifie->estConnecte() && if (extension_loaded('gd')) { // nommage de l'image en fonction de l'id // recuperation du type de fichier // et conversion en jpg s'il le faut // ajout d'un nouvel id dans l'historique image $resAjout = $this->connexionBdd->requete(' insert into historiqueImage (idImage, dateUpload, idUtilisateur) values ("' . $idImage . '", "' . $dateDuJour . '", "' . $authentifie->getIdUtilisateur() . '") '); $nouvelIdHistoriqueImage = mysql_insert_id(); // creation des repertoires a la date du jour s'ils n'existent pas if (!is_dir($this->getCheminPhysiqueImage("originaux") . $dateDuJour)) { mkdir($this->getCheminPhysiqueImage("originaux") . $dateDuJour) or die('erreur création : ' . $this->getCheminPhysiqueImage("originaux") . $dateDuJour); chmod($this->getCheminPhysiqueImage("originaux") . $dateDuJour, 0777) or die('erreur chmod : ' . $this->getCheminPhysiqueImage("originaux") . $dateDuJour); } if (!is_dir($this->getCheminPhysiqueImage("mini") . $dateDuJour)) { mkdir($this->getCheminPhysiqueImage("mini") . $dateDuJour) or die('erreur création : ' . $this->getCheminPhysiqueImage("mini") . $dateDuJour); chmod($this->getCheminPhysiqueImage("mini") . $dateDuJour, 0777) or die('erreur chmod : ' . $this->getCheminPhysiqueImage("mini") . $dateDuJour); } if (!is_dir($this->getCheminPhysiqueImage("moyen") . $dateDuJour)) { mkdir($this->getCheminPhysiqueImage("moyen") . $dateDuJour) or die('erreur création : ' . $this->getCheminPhysiqueImage("moyen") . $dateDuJour); chmod($this->getCheminPhysiqueImage("moyen") . $dateDuJour, 0777) or die('erreur chmod : ' . $this->getCheminPhysiqueImage("moyen") . $dateDuJour); } if (!is_dir($this->getCheminPhysiqueImage("grand") . $dateDuJour)) { mkdir($this->getCheminPhysiqueImage("grand") . $dateDuJour) or die('erreur création : ' . $this->getCheminPhysiqueImage("grand") . $dateDuJour); chmod($this->getCheminPhysiqueImage("grand") . $dateDuJour, 0777) or die('erreur chmod : ' . $this->getCheminPhysiqueImage("grand") . $dateDuJour); } // conversion en jpeg quelque soit le format géré // 1- l'image est sauvegardee tel quel (0 pour le redimensionnement) $this->redimension($_FILES['fichierRemplace' . $idHistorique]['tmp_name'], pia_substr(strtolower($_FILES['fichierRemplace' . $idHistorique]['name']), -3), $this->getCheminPhysiqueImage("originaux") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", 0); // 2- redimensionnement au format mini $this->redimension($_FILES['fichierRemplace' . $idHistorique]['tmp_name'], pia_substr(strtolower($_FILES['fichierRemplace' . $idHistorique]['name']), -3), $this->getCheminPhysiqueImage("mini") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMini()); // 3- redimensionnement au format moyen $this->redimension($_FILES['fichierRemplace' . $idHistorique]['tmp_name'], pia_substr(strtolower($_FILES['fichierRemplace' . $idHistorique]['name']), -3), $this->getCheminPhysiqueImage("moyen") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMoyen()); // 4- redimensionnement au format grand $this->redimension($_FILES['fichierRemplace' . $idHistorique]['tmp_name'], pia_substr(strtolower($_FILES['fichierRemplace' . $idHistorique]['name']), -3), $this->getCheminPhysiqueImage("grand") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageGrand()); if (file_exists($_FILES['fichierRemplace' . $idHistorique]['tmp_name'])) { echo "le fichier est uploadé<br>"; } else { echo "Erreur::le fichier ne figure pas sur le serveur !!<br>"; } unlink($_FILES['fichierRemplace' . $idHistorique]['tmp_name']); } else { echo "Il s'est produit une erreur lors de l'upload, la session est terminée ou la bibliothèque gd n'est pas installé sur le serveur.<br>"; } } // ********************************************************************** // enregistrement des infos de l'image dans la base // recuperation des champs par une image $tableauChamps = array(); // contient les infos d'une image foreach ($listeChamps as $indice => $name) { if ($name == 'isDateClicheEnviron') { if (isset($this->variablesPost[$name . "_" . $idHistorique]) && $this->variablesPost[$name . "_" . $idHistorique] == '1') { $tableauChamps[$name] = 1; } else { $tableauChamps[$name] = 0; } } else { $tableauChamps[$name] = isset($this->variablesPost[$name . "_" . $idHistorique]) ? $this->variablesPost[$name . "_" . $idHistorique] : ""; } } $idImage = $this->variablesPost['idImage_' . $idHistorique]; // il y a 0000-00-00 dans la base de donnée si la date n'est pas fournie dans le formulaire $dateCliche = $tableauChamps['dateCliche']; if ($tableauChamps['dateCliche'] == '') { $dateCliche = '0000-00-00'; } // est ce que les proprietes de l'image dans la base sont les memes que celles qui ont ete validees dans le formulaire // si oui => pas de modif // sinon => ajout a l'historique de l'image $resCompareImage = $this->connexionBdd->requete("\n SELECT\n idHistoriqueImage\n FROM historiqueImage\n WHERE idHistoriqueImage = '" . mysql_real_escape_string($idHistorique) . "'\n AND dateUpload = '" . mysql_real_escape_string($this->date->toBdd($tableauChamps['dateUpload'])) . "'\n AND dateCliche = '" . mysql_real_escape_string($this->date->toBdd($this->date->convertYears($dateCliche))) . "'\n AND description = '" . mysql_real_escape_string($tableauChamps['description']) . "'\n AND isDateClicheEnviron = '" . mysql_real_escape_string($tableauChamps['isDateClicheEnviron']) . "'\n AND nom = '" . mysql_real_escape_string($tableauChamps['nom']) . "'\n AND idSource = '" . mysql_real_escape_string($tableauChamps['source']) . "'\n AND licence = '" . mysql_real_escape_string($tableauChamps["licence"]) . "'\n AND auteur = '" . mysql_real_escape_string($tableauChamps["auteur"]) . "'\n AND tags = '" . mysql_real_escape_string($tableauChamps["tags"]) . "'\n AND numeroArchive=\"" . mysql_real_escape_string($tableauChamps['numeroArchive']) . "\"\n "); if (mysql_num_rows($resCompareImage) == 0) { // l'image avec des proprietes identiques n'existe pas donc on en deduit que les proprietes de l'image ont changés , on ajoute donc un nouvel historiqueImage et on modifie les données dans la table de liaison $resImage = $this->connexionBdd->requete("\n INSERT INTO historiqueImage (idImage, nom, dateUpload, dateCliche, description, idUtilisateur, idSource, isDateClicheEnviron, auteur, licence, tags, numeroArchive)\n VALUES\n ('" . mysql_real_escape_string($idImage) . "',\n '" . mysql_real_escape_string($tableauChamps['nom']) . "',\n '" . mysql_real_escape_string($this->date->toBdd($tableauChamps['dateUpload'])) . "',\n '" . mysql_real_escape_string($this->date->toBdd($this->date->convertYears($dateCliche))) . "',\n '" . mysql_real_escape_string($tableauChamps['description']) . "',\n '" . mysql_real_escape_string($authentifie->getIdUtilisateur()) . "',\n '" . mysql_real_escape_string($tableauChamps['source']) . "',\n '" . mysql_real_escape_string($tableauChamps['isDateClicheEnviron']) . "',\n '" . mysql_real_escape_string($tableauChamps["auteur"]) . "',\n '" . mysql_real_escape_string($tableauChamps["licence"]) . "',\n '" . mysql_real_escape_string($tableauChamps["tags"]) . "',\n \"" . mysql_real_escape_string($tableauChamps['numeroArchive']) . "\"\n )\n "); // end debug fabien 17/12/2011 echo "L'image a été modifiée"; $newIdHistoriqueImage = mysql_insert_id(); $idHistoriqueImagePrecedent = $idHistorique; // ancienne code qui ne marche plus avec php 5.3.3 .... bizzare ! //symlink("./".$idHistoriqueImagePrecedent.'.jpg', $this->getCheminPhysiqueImage("mini").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'); exec(" ln -s " . "./" . $idHistoriqueImagePrecedent . '.jpg' . " " . $this->getCheminPhysiqueImage("mini") . $this->date->toBdd($tableauChamps['dateUpload']) . '/' . $newIdHistoriqueImage . '.jpg'); /* $erreurcode=symlink($this->getCheminPhysiqueImage("mini").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$idHistoriqueImagePrecedent.'.jpg', $this->getCheminPhysiqueImage("mini").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'); symlink("./".$idHistoriqueImagePrecedent.'.jpg', "./".$newIdHistoriqueImage.'.jpg'); mkdir("/home/vhosts/fabien/archi-strasbourg-v2/images/mini/2011-12-18/tutu", 0777); // fonctionne !! echo " <br> idHistoriqueImagePrecedent : ./" . $idHistoriqueImagePrecedent . ".jpg"."<br>"; echo symlink("/home/vhosts/fabien/archi-strasbourg-v2/images/mini/2011-12-18/44143.jpg", "/home/vhosts/fabien/archi-strasbourg-v2/images/mini/2011-12-18/XXXX.jpg"); echo $this->getCheminPhysiqueImage("mini").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$idHistoriqueImagePrecedent.'.jpg'; echo "\n\n"; echo $this->getCheminPhysiqueImage("mini").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'; */ // debug fabien 17/12/2011 // echo "ERR " . $erreurcode . "ERR"; // exit; exec(" ln -s " . "./" . $idHistoriqueImagePrecedent . '.jpg' . " " . $this->getCheminPhysiqueImage("moyen") . $this->date->toBdd($tableauChamps['dateUpload']) . '/' . $newIdHistoriqueImage . '.jpg'); exec(" ln -s " . "./" . $idHistoriqueImagePrecedent . '.jpg' . " " . $this->getCheminPhysiqueImage("grand") . $this->date->toBdd($tableauChamps['dateUpload']) . '/' . $newIdHistoriqueImage . '.jpg'); exec(" ln -s " . "./" . $idHistoriqueImagePrecedent . '.jpg' . " " . $this->getCheminPhysiqueImage("originaux") . $this->date->toBdd($tableauChamps['dateUpload']) . '/' . $newIdHistoriqueImage . '.jpg'); // ne fonctionne plus avec php 5.3.3 /* symlink("./".$idHistoriqueImagePrecedent.'.jpg', $this->getCheminPhysiqueImage("moyen").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'); symlink("./".$idHistoriqueImagePrecedent.'.jpg', $this->getCheminPhysiqueImage("grand").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'); symlink("./".$idHistoriqueImagePrecedent.'.jpg', $this->getCheminPhysiqueImage("originaux").$this->date->toBdd($tableauChamps['dateUpload']).'/'.$newIdHistoriqueImage.'.jpg'); */ } // **************************************************************** // LIAISON DE L'IMAGE ET DES ADRESSES (vueSur et prisDepuis) // on enregistre les informations des adresses liees à la photo // **************************************************************** // on recupere d'abord les zones existantes pour ne pas les perdres , on les replacera ensuite sur les liaisons inserees $tabRecupZonesPrisDepuis = array(); $reqRecupZones = "SELECT * FROM _adresseImage WHERE idImage = '" . $idImage . "' AND prisDepuis='1' AND coordonneesZoneImage<>'' AND largeurBaseZoneImage<>'' AND longueurBaseZoneImage<>''"; $resRecupZones = $this->connexionBdd->requete($reqRecupZones); while ($fetchRecupZones = mysql_fetch_assoc($resRecupZones)) { $tabRecupZonesPrisDepuis[$fetchRecupZones['idAdresse']] = array('idAdresse' => $fetchRecupZones['idAdresse'], 'idEvenementGroupeAdresse' => $fetchRecupZones['idEvenementGroupeAdresse'], 'idImage' => $fetchRecupZones['idImage'], 'coordonneesZoneImage' => $fetchRecupZones['coordonneesZoneImage'], 'largeurBaseZoneImage' => $fetchRecupZones['largeurBaseZoneImage'], 'longueurBaseZoneImage' => $fetchRecupZones['longueurBaseZoneImage']); } //prisDepuis // on supprime d'abord les informations des adresses liées à la photo afin de pouvoir ajouter les nouvelles adresses $reqDeletePrisDepuis = "delete from _adresseImage where idImage = '" . $idImage . "' AND prisDepuis='1'"; $resDeletePrisDepuis = $this->connexionBdd->requete($reqDeletePrisDepuis); // enregistrement des liaisons if (isset($this->variablesPost['prisDepuis' . $idHistorique]) && count($this->variablesPost['prisDepuis' . $idHistorique]) > 0) { foreach ($this->variablesPost['prisDepuis' . $idHistorique] as $indice => $value) { $arrayAdresseGroupeAdresseImage = explode("_", $value); $idAdresse = $arrayAdresseGroupeAdresseImage[0]; $idEvenementGroupeAdresse = $arrayAdresseGroupeAdresseImage[1]; // verification que l'enregistrement n'existe pas deja $reqVerifPrisDepuis = "SELECT idImage FROM _adresseImage WHERE idImage = '" . $idImage . "' AND idAdresse = '" . $idAdresse . "' AND idEvenementGroupeAdresse='" . $idEvenementGroupeAdresse . "' AND prisDepuis ='1';"; $resVerifPrisDepuis = $this->connexionBdd->requete($reqVerifPrisDepuis); if (mysql_num_rows($resVerifPrisDepuis) == 0) { $champs = ""; $values = ""; if (isset($tabRecupZonesPrisDepuis[$value]) && count($tabRecupZonesPrisDepuis[$value]) > 0) { $champs = ", coordonneesZoneImage, largeurBaseZoneImage, longueurBaseZoneImage"; $values = ", '" . $tabRecupZonesPrisDepuis[$value]['coordonneesZoneImage'] . "', '" . $tabRecupZonesPrisDepuis[$value]['largeurBaseZoneImage'] . "', '" . $tabRecupZonesPrisDepuis[$value]['longueurBaseZoneImage'] . "' "; } $reqPrisDepuis = "\n \t\tINSERT INTO _adresseImage (idImage, idAdresse, idEvenementGroupeAdresse, prisDepuis {$champs})\n \t\tVALUES ('" . $idImage . "', '" . $idAdresse . "', '" . $idEvenementGroupeAdresse . "', '1' {$values})\n "; $resPrisDepuis = $this->connexionBdd->requete($reqPrisDepuis); } } } // vueSur // on recupere d'abord les zones existantes pour ne pas les perdres , on les replacera ensuite sur les liaisons inserees $tabRecupZonesVuesSur = array(); $reqRecupZones = "SELECT * FROM _adresseImage WHERE idImage = '" . $idImage . "' AND vueSur='1' AND coordonneesZoneImage<>'' AND largeurBaseZoneImage<>'' AND longueurBaseZoneImage<>''"; $resRecupZones = $this->connexionBdd->requete($reqRecupZones); while ($fetchRecupZones = mysql_fetch_assoc($resRecupZones)) { $tabRecupZonesVuesSur[$fetchRecupZones['idAdresse'] . "_" . $fetchRecupZones['idEvenementGroupeAdresse']] = array('idAdresse' => $fetchRecupZones['idAdresse'], 'idEvenementGroupeAdresse' => $fetchRecupZones['idEvenementGroupeAdresse'], 'idImage' => $fetchRecupZones['idImage'], 'coordonneesZoneImage' => $fetchRecupZones['coordonneesZoneImage'], 'largeurBaseZoneImage' => $fetchRecupZones['largeurBaseZoneImage'], 'longueurBaseZoneImage' => $fetchRecupZones['longueurBaseZoneImage']); } $reqDeleteVueSur = "delete from _adresseImage where idImage='" . $idImage . "' AND vueSur='1'"; $resDeleteVueSur = $this->connexionBdd->requete($reqDeleteVueSur); if (isset($this->variablesPost['vueSur' . $idHistorique]) && count($this->variablesPost['vueSur' . $idHistorique]) > 0) { foreach ($this->variablesPost['vueSur' . $idHistorique] as $indice => $value) { $arrayAdresseGroupeAdresseImage = explode("_", $value); $idAdresse = $arrayAdresseGroupeAdresseImage[0]; $idEvenementGroupeAdresse = $arrayAdresseGroupeAdresseImage[1]; // verification que l'enregistrement n'existe pas deja $reqVerifVueSur = "SELECT idImage FROM _adresseImage WHERE idImage = '" . $idImage . "' AND idAdresse = '" . $idAdresse . "' AND idEvenementGroupeAdresse='" . $idEvenementGroupeAdresse . "' AND vueSur ='1';"; $resVerifVueSur = $this->connexionBdd->requete($reqVerifVueSur); if (mysql_num_rows($resVerifVueSur) == 0) { $champs = ""; $values = ""; if (isset($tabRecupZonesVuesSur[$value]) && count($tabRecupZonesVuesSur[$value]) > 0) { $champs = ", coordonneesZoneImage, largeurBaseZoneImage, longueurBaseZoneImage"; $values = ", '" . $tabRecupZonesVuesSur[$value]['coordonneesZoneImage'] . "', '" . $tabRecupZonesVuesSur[$value]['largeurBaseZoneImage'] . "', '" . $tabRecupZonesVuesSur[$value]['longueurBaseZoneImage'] . "' "; } $reqVueSur = "INSERT INTO _adresseImage (idImage, idAdresse, idEvenementGroupeAdresse, vueSur {$champs})\n VALUES ('" . $idImage . "', '" . $idAdresse . "', '" . $idEvenementGroupeAdresse . "', '1' {$values})"; $resVueSur = $this->connexionBdd->requete($reqVueSur); } } } // **************************************************************** // LIAISON DE L'IMAGE ET DES EVENEMENTS // on enregistre les informations des evenements lies à la photo // **************************************************************** // on lie les evenements selectionnés avec l'adresse if (isset($this->variablesPost['listeEvenements_' . $idHistorique])) { $arrayListeEvenements = array_unique($this->variablesPost['listeEvenements_' . $idHistorique]); foreach ($arrayListeEvenements as $indice => $valueIdEvenement) { $resPos = $this->connexionBdd->requete("SELECT position from _evenementImage where idImage = '" . $idImage . "' AND idEvenement = '" . $valueIdEvenement . "'"); $pos = mysql_fetch_row($resPos); // On supprime les informations des evenements lies à la photo afin de pouvoir ajouter les nouveaux evenements $resDeleteEvenements = $this->connexionBdd->requete("delete from _evenementImage where idImage = '" . $idImage . "' AND idEvenement = '" . $valueIdEvenement . "'"); $reqInsertEvenements = $this->connexionBdd->requete("INSERT INTO _evenementImage (idImage, idEvenement, position) VALUES ('" . $idImage . "', '" . $valueIdEvenement . "', '" . $pos[0] . "')\n "); } } } } // envoi d'un mail aux administrateurs $message = ""; foreach ($arrayListeIdImage as $indice => $idImageModifiee) { if ($idPerson = archiPersonne::isPerson($this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImageModifiee, "type" => "personne")))) { $archiRetourIdValue = $this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImageModifiee, "type" => "personne")); } else { $archiRetourIdValue = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageModifiee)); } $message .= "<a href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImageModifiee, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvement', 'archiRetourIdValue' => $archiRetourIdValue)) . "'>Image " . $idImageModifiee . "</a><br>"; } // recuperation d'une adresse sur laquelle ont ete liées les images ( c'est un formulaire capable de traiter des images d'adresses différentes, mais cela n'arrive pas) $intituleAdresse = ""; if ($idImageModifiee != '0' && $idImageModifiee != '') { $a = new archiAdresse(); $intituleAdresse = $a->getIntituleAdresseFrom($idImageModifiee, 'idImage'); } $message = "Images modifiées : {$intituleAdresse}<br>" . $message; // recuperation des infos sur l'utilisateur qui fais la modif $utilisateur = new archiUtilisateur(); $arrayInfosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite)); $message .= "<br>" . $arrayInfosUtilisateur['nom'] . " - " . $arrayInfosUtilisateur['prenom'] . " - " . $arrayInfosUtilisateur['mail'] . "<br>"; $mail->sendMailToAdministrators($mail->getSiteMail(), "Modification d'images - " . $intituleAdresse, $message, " AND alerteAdresses='1' ", true); $utilisateur->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 12, 'criteres' => " and alerteAdresses='1' ")); // ************************************************************************************************************************************************************* // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere $u = new archiUtilisateur(); $adresse = new archiAdresse(); $arrayVilles = array(); $arrayVilles[] = $adresse->getIdVilleFrom($this->getIdAdresseFromIdImage($idImageModifiee), 'idAdresse'); $arrayVilles = array_unique($arrayVilles); $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteAdresses='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($idModerateur != $this->session->getFromSession('utilisateurConnecte' . $this->idSite)) { if ($u->isMailEnvoiImmediat($idModerateur)) { $mailModerateur = $u->getMailUtilisateur($idModerateur); $mail->sendMail($mail->getSiteMail(), $mailModerateur, "Modification d'images - " . $intituleAdresse, $message, true); } else { $u->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idModerateur, 'idTypeMailRegroupement' => 12)); } } } } // ************************************************************************************************************************************************************* //archiAffichage=imageDetail&archiIdImage=28940&archiRetourAffichage=evenement&archiRetourIdName=idEvenement&archiRetourIdValue=18149 $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImageModifiee, "type" => "personne")); if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { header("Location: " . $this->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $idPerson), false, false)); } // ************************************************************************************************************************************************ // envoi d'un mail pour l'auteur de l'adresse // ************************************************************************************************************************************************ $mail = new mailObject(); $utilisateur = new archiUtilisateur(); foreach ($arrayListeIdImage as $indice => $idImage) { $arrayUtilisateurs[] = $utilisateur->getCreatorsFromAdresseFrom($idImage, 'idImage'); } foreach ($arrayUtilisateurs as $indice => $tabUtilImage) { if ($tabUtilImage[0]['idUtilisateur'] != $authentifie->getIdUtilisateur()) { $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($tabUtilImage[0]['idUtilisateur']); if ($infosUtilisateur['alerteAdresses'] == '1' && $infosUtilisateur['idProfil'] != '4' && $infosUtilisateur['compteActif'] == '1') { $idEvenementGroupeAdresseRetour = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageModifiee)); $message = "Un utilisateur a modifié une image sur une adresse ou vous avez participé."; $message .= "Pour vous rendre sur l'évènement : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresseRetour, 'archiIdAdresse' => $tabUtilImage[0]['idAdresse'])) . "'>" . $adresse->getIntituleAdresseFrom($tabUtilImage[0]['idAdresse'], "idAdresse") . "</a><br>"; $message .= $this->getMessageDesabonnerAlerteMail(); if ($utilisateur->isMailEnvoiImmediat($tabUtilImage[0]['idUtilisateur'])) { $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Modification d\'une image sur une adresse sur laquelle vous avez participé - ' . $intituleAdresse, $message, true); } else { $utilisateur->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $tabUtilImage[0]['idUtilisateur'], 'idTypeMailRegroupement' => 12)); } } } } // ************************************************************************************************************************************************ if (isset($this->variablesPost['formulaireRetour']) && $this->variablesPost['formulaireRetour'] != '') { switch ($this->variablesPost['formulaireRetour']) { case 'evenement': $evenement = new archiEvenement(); echo $evenement->afficher($idCourant); break; } } else { if (isset($this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'] != '') { $idEvenementGroupeAdresseRetour = $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']; } else { $idEvenementGroupeAdresseRetour = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageModifiee)); } if ($idEvenementGroupeAdresseRetour != 0) { $a = new archiAdresse(); echo $a->afficherDetail(0, $idEvenementGroupeAdresseRetour); } else { echo $this->afficher($idImageModifiee); } } }