public function deplacerEvenementVersGroupeAdresse($params = array())
 {
     $idEvenementADeplacer = 0;
     if (isset($this->variablesGet['idEvenementADeplacer'])) {
         $idEvenementADeplacer = $this->variablesGet['idEvenementADeplacer'];
     }
     if (isset($params['idEvenementADeplacer'])) {
         $idEvenementADeplacer = $params['idEvenementADeplacer'];
     }
     $deplacerVersIdGroupeAdresse = 0;
     if (isset($this->variablesGet['deplacerVersIdGroupeAdresse'])) {
         $deplacerVersIdGroupeAdresse = $this->variablesGet['deplacerVersIdGroupeAdresse'];
     }
     if (isset($params['deplacerVersIdGroupeAdresse'])) {
         $deplacerVersIdGroupeAdresse = $params['deplacerVersIdGroupeAdresse'];
     }
     if ($idEvenementADeplacer != '0' && $idEvenementADeplacer != '' && $deplacerVersIdGroupeAdresse != '0' && $deplacerVersIdGroupeAdresse != '') {
         // recuperation de l'idEvenementGroupeAdresse precedent
         $reqGAPrecedent = "SELECT idEvenement FROM _evenementEvenement WHERE idEvenementAssocie = '" . $idEvenementADeplacer . "'";
         $resGAPrecedent = $this->connexionBdd->requete($reqGAPrecedent);
         $arrayIdEvenementGAPrecedent = array();
         while ($fetchGAPrecedent = mysql_fetch_assoc($resGAPrecedent)) {
             $arrayIdEvenementGAPrecedent[] = $fetchGAPrecedent['idEvenement'];
         }
         if (count($arrayIdEvenementGAPrecedent) == 1 && $arrayIdEvenementGAPrecedent[0] != '' && $arrayIdEvenementGAPrecedent[0] != '0') {
             // on supprime la liaison précédente avec le groupe d'adresse précédent
             $reqSupprEvenementEvenement = "DELETE FROM _evenementEvenement WHERE idEvenement = '" . $arrayIdEvenementGAPrecedent[0] . "' AND idEvenementAssocie='" . $idEvenementADeplacer . "'";
             $resSupprEvenementEvenement = $this->connexionBdd->requete($reqSupprEvenementEvenement);
             // il faut alors rafraichir les positions des evenements du groupe d'adresse, pour qu'elles se suivent bien
             $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $arrayIdEvenementGAPrecedent[0], 'refreshAfterDelete' => true));
             // on ajoute la liaison de l'evenement et du nouveau groupe d'adresse dans la table _evenementEvenement
             $reqEvenementEvenement = "INSERT INTO _evenementEvenement (idEvenement,idEvenementAssocie) VALUES ('" . $deplacerVersIdGroupeAdresse . "','" . $idEvenementADeplacer . "')";
             $resEvenementEvenement = $this->connexionBdd->requete($reqEvenementEvenement);
             // et on rafraichit les positions des evenements du groupe d'adresses de destination avec le nouvel evenement ajouté
             $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $deplacerVersIdGroupeAdresse, 'idNouvelEvenement' => $idEvenementADeplacer));
             // est ce que le groupe d'adresse précédent est vide ?
             $reqLiaisonAdresseEvenement = "SELECT idEvenement FROM _adresseEvenement WHERE idEvenement='" . $arrayIdEvenementGAPrecedent[0] . "' AND idEvenement NOT IN (SELECT idEvenement FROM _evenementEvenement)";
             $resLiaisonAdresseEvenement = $this->connexionBdd->requete($reqLiaisonAdresseEvenement);
             if (mysql_num_rows($resLiaisonAdresseEvenement) > 0) {
                 $reqSupprLiaison = "DELETE FROM _adresseEvenement WHERE idEvenement='" . $arrayIdEvenementGAPrecedent[0] . "'";
                 $resSupprLiaison = $this->connexionBdd->requete($reqSupprLiaison);
                 // pour les positions, s'il n'y avait plus d'evenement, les positions on d'abord ete supprimé dans la fonction de rafraichissement
             }
         } else {
             $e = new objetErreur();
             $e->ajouter(_("Evenement impossible à deplacer, veuillez contacter l'administrateur"));
             echo $e->afficher();
         }
     }
 }
 public function supprimerRueFromAdminRue($params = array())
 {
     if (isset($this->variablesGet['idRueSuppr']) && $this->variablesGet['idRueSuppr'] != '') {
         $erreurObject = new objetErreur();
         $idRueSuppr = $this->variablesGet['idRueSuppr'];
         $reqVerifAdresse = "SELECT idRue FROM historiqueAdresse WHERE idRue = '" . $idRueSuppr . "'";
         $resVerifAdresse = $this->connexionBdd->requete($reqVerifAdresse);
         if (mysql_num_rows($resVerifAdresse) > 0) {
             $erreurObject->ajouter("Attention, des adresses sont encore liées a cette rue, veuillez contacter l'administrateur");
         } elseif (mysql_num_rows($resVerifAdresse) == 0) {
             $reqDelete = "DELETE FROM rue WHERE idRue='" . $idRueSuppr . "'";
             $resDelete = $this->connexionBdd->requete($reqDelete);
         }
         if ($erreurObject->getNbErreurs() > 0) {
             echo $erreurObject->afficher();
         }
     }
 }
 public function changementMotDePasseOublie()
 {
     $html = "";
     $configFields = $this->getFieldsFromChangementMotDePasseOublie();
     $f = new formGenerator();
     $errors = $f->getArrayFromPost($configFields);
     $erreur = new objetErreur();
     if (isset($this->variablesPost['mail']) && $this->variablesPost['mail'] != '' && isset($this->variablesPost['md5']) && $this->verifMD5ChangementMotDePasse($this->variablesPost['md5'], $this->variablesPost['mail'])) {
         if ($configFields['mdp1']['value'] == $configFields['mdp2']['value']) {
             if (pia_strlen($configFields['mdp1']['value']) >= 5) {
                 // mise a jour du mot de passe
                 $reqMaj = "update utilisateur set motDePasse=md5('" . $configFields['mdp1']['value'] . "') where mail='" . $this->variablesPost['mail'] . "'";
                 $resMaj = $this->connexionBdd->requete($reqMaj);
                 $html .= _("Votre mot de passe a été mis à jour.") . "<br>";
             } else {
                 $erreur->ajouter(_("Attention un mot de passe doit comporter au moins 5 caractères."));
             }
         } else {
             $erreur->ajouter(_("Attention le mot de passe et sa vérification ne correspondent pas."));
         }
     } else {
         $erreur->ajouter(_("Problème changement de mot de passe : il y a un problème avec le formulaire. Merci de contacter l'administrateur."));
     }
     if ($erreur->getNbErreurs() > 0) {
         $html .= $erreur->afficher();
         $html .= $this->afficheFormulaireChangementMotDePasseOublie();
     }
     return $html;
 }
 public function getIdAssociatedInDateIntervals($params = array())
 {
     $retour = 0;
     $erreur = new objetErreur();
     $erreurDateBegin = false;
     if (isset($params['arrayDates']) && count($params['arrayDates']) > 0 && $params['dateToCompare'] != '') {
         foreach ($params['arrayDates'] as $indice => $interval) {
             // verif des dates : est ce qu'elles ont toute une date de debut, sinon on ne peut pas faire la verification correctement
             if ($interval['dateBegin'] == '0000-00-00' || $interval['dateBegin'] == '') {
                 $erreur->ajouter("dateObject::getIdAssociatedInDateInterval => Attention, une dateBegin n'est pas valide, on stop la fonction pour eviter une mauvaise analyse des données, veuillez contacter l'administrateur.");
                 $retour = 0;
                 $erreurDateBegin = true;
                 break;
             }
         }
     }
     if (!$erreurDateBegin) {
         // il y a toujours une date de debut, on commence l'analyse
         // on va creer un tableau ou l'on va classer les dates de debut de la plus ancienne a la plus recente
         // on copie le tableau dans un tableau de travail avec des indices
         $i = 0;
         $tTravail = array();
         foreach ($params['arrayDates'] as $indice => $intervals) {
             $tTravail[$i] = $intervals;
             $i++;
         }
         // maintenant on classe le tableau par date de debut
         $modif = true;
         while ($modif) {
             $modif = false;
             for ($i = 0; $i < count($tTravail) - 1; $i++) {
                 if ($this->isGreaterThan($tTravail[$i]['dateBegin'], $tTravail[$i + 1]['dateBegin'])) {
                     // on switch
                     $temp = $tTravail[$i];
                     $tTravail[$i] = $tTravail[$i + 1];
                     $tTravail[$i + 1] = $temp;
                     $modif = true;
                 }
             }
         }
         // maintenant que le tTravail est classé , on peut faire des comparaisons avec la dateToCompare en entree de la fonction
         $indiceTableau = -1;
         $superieurOrEqual = true;
         if (isset($params['dateBeginSuperiorStrict']) && $params['dateBeginSuperiorStrict'] == true) {
             $superieurOrEqual = false;
         }
         for ($i = 0; $i < count($tTravail); $i++) {
             if ($this->isGreaterThan($params['dateToCompare'], $tTravail[$i]['dateBegin'], $superieurOrEqual)) {
                 $indiceTableau = $i;
             }
         }
         if ($indiceTableau != '-1') {
             // trouvé
             // verifions encore que s'il existe une date de fin d'intervalle , celui ci soit bien superieur a la dateToCompare
             if ($tTravail[$indiceTableau]['dateEnd'] != '0000-00-00' && $tTravail[$indiceTableau]['dateEnd'] != '') {
                 if ($this->isGreaterThan($tTravail[$indiceTableau]['dateEnd'], $params['dateToCompare'], true)) {
                     $retour = $tTravail[$indiceTableau]['idAssociated'];
                 } else {
                     // l'intervalle de fin est plus ancien que la date de fin , on est donc aussi hors de l'intervalle
                     $retour = 0;
                 }
             } else {
                 $retour = $tTravail[$indiceTableau]['idAssociated'];
             }
         } else {
             // pas trouvé , aucun interval ne correspond
             $retour = 0;
         }
     }
     if ($erreur->getNbErreurs() > 0) {
         echo $erreur->afficher();
     }
     return $retour;
 }
 public function afficheFormulaireListe($parametres = array(), $liaisonsExternes = array(), $dependances = array())
 {
     $html = "";
     $date = new dateObject();
     $this->fields = array();
     // on recupere la liste des champs de la table
     $resListFieldsFromTable = $this->connexionBdd->requete("SHOW COLUMNS FROM " . $parametres['tableName'] . ";");
     $sqlWhere = "";
     if (isset($parametres['sqlWhere'])) {
         $sqlWhere = $parametres['sqlWhere'];
     }
     if (isset($parametres['displayWithBBCode']) && $parametres['displayWithBBCode'] == true) {
         $bbCode = new bbCodeObject();
     }
     $stringListeFields = "";
     $champsDeRecherche = array();
     // fabrication de la liste des champs
     if (mysql_num_rows($resListFieldsFromTable) > 0) {
         while ($fetchFields = mysql_fetch_assoc($resListFieldsFromTable)) {
             $isPrimaryKey = false;
             if ($fetchFields['Key'] == 'PRI') {
                 $isPrimaryKey = true;
             }
             $type = "";
             if (preg_match("/int/i", $fetchFields['Type'])) {
                 $type = 'entier';
             } elseif (preg_match("/varchar/i", $fetchFields['Type']) || preg_match("/longtext/i", $fetchFields['Type'])) {
                 $type = 'text';
                 $champsDeRecherche[] = "lower(" . $parametres['tableName'] . "." . $fetchFields['Field'] . ")";
             } elseif (preg_match("/date/i", $fetchFields['Type'])) {
                 $type = 'date';
                 $champsDeRecherche[] = "lower(" . $parametres['tableName'] . "." . $fetchFields['Field'] . ")";
             }
             $configChamp = array('name' => $fetchFields['Field'], 'isPrimaryKey' => $isPrimaryKey, 'type' => $type);
             if (isset($liaisonsExternes[$fetchFields['Field']])) {
                 $this->fields[] = array_merge($configChamp, $liaisonsExternes[$fetchFields['Field']]);
             } else {
                 $this->fields[] = $configChamp;
             }
             $stringListeFields .= $parametres['tableName'] . "." . $fetchFields['Field'] . ", ";
         }
     } else {
         echo "formGenerator :: il n'y a pas de champs pour cette table.<br>";
     }
     // ajout des champs configurés comme leftJoin
     $sqlLeftJoin = "";
     foreach ($liaisonsExternes as $nomChamps => $configLiaisonExterne) {
         if (isset($configLiaisonExterne['externalLeftJoin']) && $configLiaisonExterne['externalLeftJoin'] == true) {
             $sqlLeftJoin .= " " . $configLiaisonExterne['sqlLeftJoin'] . " ";
             $this->fields[] = array("name" => $nomChamps, "externalLeftJoin" => true, "fieldToDisplay" => $configLiaisonExterne['fieldToDisplay']);
             $stringListeFields .= $configLiaisonExterne['fieldAliasToDisplay'] . ", ";
         }
     }
     // affichage des données dans un tableau avec pagination
     if (count($this->fields) > 0) {
         $sqlRecherche = "";
         $objetDeLaRecherche = "";
         // gestion de la recherche
         if (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'rechercheAdministration') {
             $sqlRecherche = " AND LOWER(CONCAT_WS(' ', " . implode(", ", $champsDeRecherche) . ")) LIKE \"%" . mysql_real_escape_string($this->variablesPost['rechercheFormulaireAdministration']) . "%\" ";
             $objetDeLaRecherche = $this->variablesPost['rechercheFormulaireAdministration'];
         } elseif (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'suppression') {
             // gestion de la suppression
             if (isset($this->variablesPost['selection']) && count($this->variablesPost['selection']) > 0) {
                 // recherche du nom de champ identifiant
                 foreach ($this->fields as $field) {
                     if ($field['isPrimaryKey'] == true) {
                         $champIdentifiant = $field['name'];
                     }
                 }
                 // on verifie les dependances
                 $erreurObj = new objetErreur();
                 if (count($dependances) > 0) {
                     foreach ($dependances as $indice => $dependance) {
                         $reqVerifDependance = "SELECT * FROM " . $dependance['table'] . " WHERE " . $dependance['champLie'] . " in (" . implode(", ", $this->variablesPost['selection']) . ")";
                         $resVerifDependance = $this->connexionBdd->requete($reqVerifDependance);
                         if (mysql_num_rows($resVerifDependance) > 0) {
                             $erreurObj->ajouter($dependance['message']);
                         }
                     }
                     if ($erreurObj->getNbErreurs() > 0) {
                         $erreurObj->ajouter("La suppression n'a pu être effectuée,  veuillez contacter l'administrateur de la base de données");
                     }
                     $html .= $erreurObj->afficher();
                 }
                 if ($erreurObj->getNbErreurs() == 0) {
                     $reqDelete = "delete from " . $parametres['tableName'] . " where " . $champIdentifiant . " in (" . implode(", ", $this->variablesPost['selection']) . ")";
                     $resDelete = $this->connexionBdd->requete($reqDelete);
                     echo "suppression effectuée<br>";
                 }
             }
         }
         $stringListeFields = pia_substr($stringListeFields, 0, -2);
         $reqNbLignesListe = "select 0 from " . $parametres['tableName'] . " " . $sqlLeftJoin . " WHERE 1=1 " . $sqlWhere . " " . $sqlRecherche;
         $resNbLignesListe = $this->connexionBdd->requete($reqNbLignesListe);
         $nbLignesTotales = mysql_num_rows($resNbLignesListe);
         $html .= 'Edition de la table : ' . $parametres['tableName'] . "<br>";
         $html .= "Il y a " . $nbLignesTotales . " enregistrements<br>";
         // nombre d'images affichées sur une page
         $nbEnregistrementsParPage = 20;
         $arrayPagination = $this->pagination(array('nomParamPageCourante' => 'pageCourantePagination', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbLignesTotales, 'typeLiens' => 'formulaire', 'idFormulaire' => 'formListe', 'champPageCourante' => 'pageCourantePagination', 'nomChampActionFormulaireOnSubmit' => 'validationFormulaireAdministration', 'nomActionFormulaireOnSubmit' => 'rechercheAdministration'));
         $reqListe = "SELECT " . $stringListeFields . " FROM " . $parametres['tableName'] . " " . $sqlLeftJoin . " WHERE 1=1 " . $sqlWhere . " " . $sqlRecherche . " LIMIT " . $arrayPagination['limitSqlDebut'] . ", " . $nbEnregistrementsParPage;
         $resListe = $this->connexionBdd->requete($reqListe);
         $actionForm = "";
         if (isset($parametres['actionAffichageFormulaireIfSubmit']) && $parametres['actionAffichageFormulaireIfSubmit'] != '') {
             $actionForm = "action='" . $parametres['actionAffichageFormulaireIfSubmit'] . "'";
         }
         $html .= "<form name='formListe' " . $actionForm . " id='formListe' enctype='multipart/form-data' method='POST'>";
         $html .= "Recherche : <input type='text' name='rechercheFormulaireAdministration' id='rechercheFormulaireAdministration' value='" . $objetDeLaRecherche . "'>";
         $html .= "<input type='submit' onclick=\"document.getElementById('validationFormulaireAdministration').value='rechercheAdministration';\"><br>";
         $html .= $arrayPagination['html'] . '<br>';
         $html .= "<input type='hidden' name='pageCourantePagination' id='pageCourantePagination' value=''>";
         $html .= "<input type='hidden' name='validationFormulaireAdministration' id='validationFormulaireAdministration' value=''>";
         $html .= "<table><tr><td>Selection</td>";
         // les entetes
         foreach ($this->fields as $field) {
             $html .= "<td>" . $field['name'] . "</td>";
         }
         $html .= "</tr>";
         while ($fetchListe = mysql_fetch_assoc($resListe)) {
             $html .= "<tr>";
             foreach ($this->fields as $field) {
                 if ($fetchListe[$field['name']] !== "0") {
                     if (isset($field['externalLink']) && $field['externalLink'] == true) {
                         // ce champs va chercher des donnees dans une autre table
                         // ....
                         // a optimiser en left join si possible
                         $reqExternal = "select " . $field['externalFieldPrimaryKey'] . ", " . $field['externalFieldToDisplay'] . " from " . $field['externalTable'] . " where " . $field['externalFieldPrimaryKey'] . "='" . $fetchListe[$field['name']] . "'";
                         $resExternal = $this->connexionBdd->requete($reqExternal);
                         $fetchExternal = mysql_fetch_assoc($resExternal);
                         $html .= "<td>" . $fetchExternal[$field['externalFieldToDisplay']] . "</td>";
                     } elseif (isset($field['externalLeftJoin']) && $field['externalLeftJoin'] == true) {
                         $html .= "<td>" . $fetchListe[$field['fieldToDisplay']] . "</td>";
                     } elseif ($field['isPrimaryKey'] == true) {
                         if (isset($parametres['modeAffichageLienDetail'])) {
                             $modeAffichage = $parametres['modeAffichageLienDetail'];
                         } else {
                             $modeAffichage = "administrationAfficheModification";
                         }
                         $html .= "<td><input type='checkbox' name='selection[]' value='" . $fetchListe[$field['name']] . "'></td><td><a href='" . $this->creerUrl('', $modeAffichage, array('tableName' => $parametres['tableName'], 'idModification' => $fetchListe[$field['name']])) . "'>" . $fetchListe[$field['name']] . "</a></td>";
                     } else {
                         if ($field['type'] == 'date') {
                             $html .= "<td>" . $date->toFrenchAffichage(stripslashes($fetchListe[$field['name']])) . "</td>";
                         } else {
                             if (isset($parametres['displayWithBBCode']) && $parametres['displayWithBBCode'] == true) {
                                 $html .= "<td>" . $bbCode->convertToDisplay(array('text' => stripslashes($fetchListe[$field['name']]))) . "</td>";
                             } else {
                                 $html .= "<td>" . stripslashes($fetchListe[$field['name']]) . "</td>";
                             }
                         }
                     }
                 }
             }
             $html .= "</tr>";
         }
         $html .= "</table>";
     }
     if (!isset($parametres['noSupprimerButton']) || $parametres['noSupprimerButton'] == false) {
         $html .= "<input type='submit' value='Supprimer la selection' onclick=\"document.getElementById('validationFormulaireAdministration').value='suppression';\" name='supprimer'>";
     }
     if (isset($parametres['replaceAjouterButtonBy'])) {
         $html .= $parametres['replaceAjouterButtonBy'];
     } else {
         if (!isset($parametres['noAjouterButton']) || $parametres['noAjouterButton'] == false) {
             $html .= "<input type='button' value='ajouter' name='ajouter' onclick=\"location.href='" . $this->creerUrl('', 'administrationAfficheAjout', array('tableName' => $parametres['tableName'])) . "';\">";
         }
     }
     $html .= "</form>";
     return $html;
 }
 /**
  * Fonction supprimant physiquement et dans la bdd une image donnée
  *
  * @param int   $idImage ID de l'image
  * @param array $params  Paramètres
  *
  * @return void
  * */
 public function deleteImage($idImage = 0, $params = array())
 {
     $a = new archiAdresse();
     $erreurObj = new objetErreur();
     // recuperation du groupe d'adresse de l'image pour l'affichage au retour
     if ($idPerson = archiPersonne::isPerson($this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImage, "type" => "personne")))) {
         $type = "personne";
     } else {
         $type = null;
     }
     $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImage, "type" => $type));
     $u = new archiUtilisateur();
     $authentification = new archiAuthentification();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $d = new droitsObject();
     if ($d->isAuthorized('image_supprimer', $idProfilUtilisateur) && ($u->isModerateurFromVille($authentification->getIdUtilisateur(), $idImage, 'idImage') || $idProfilUtilisateur == '4')) {
         $reqInfosImage = "\n                            SELECT idHistoriqueImage ,  idImage ,  dateUpload\n                            FROM historiqueImage\n                            WHERE idImage = '" . $idImage . "'\n            ";
         $resInfosImage = $this->connexionBdd->requete($reqInfosImage);
         while ($fetchInfosImage = mysql_fetch_assoc($resInfosImage)) {
             if (unlink($this->getCheminPhysiqueImage("originaux") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." originale... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " originale.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("mini") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." mini... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " mini.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("moyen") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." moyen... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " moyen.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("grand") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." grand... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " grand.<br>");
             }
             $reqDeleteHistorique = "DELETE FROM historiqueImage WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteHistorique = $this->connexionBdd->requete($reqDeleteHistorique);
             // suppression de l'image dans la table des fichiers uploades
             $reqDeleteUpload = "DELETE FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteUpload = $this->connexionBdd->requete($reqDeleteUpload);
             //echo "image ".$fetchInfosImage['idHistoriqueImage']." supprimée. <br>";
         }
         $reqDeleteImageAdresseImage = "DELETE FROM _adresseImage WHERE idImage = '" . $idImage . "'";
         $resDeteleImageAdresseImage = $this->connexionBdd->requete($reqDeleteImageAdresseImage);
         $reqDeleteImageEvenementImage = "DELETE FROM _evenementImage WHERE idImage ='" . $idImage . "'";
         $resDeleteImageEvenementImage = $this->connexionBdd->requete($reqDeleteImageEvenementImage);
     }
     if ($idPerson) {
         header("Location: " . $this->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $idPerson), false, false));
     }
     if ($erreurObj->getNbErreurs() > 0) {
         echo $erreurObj->afficher();
     } else {
         echo "image supprimée.<br>";
     }
     if (isset($params['retourSurGroupeAdresse']) && $params['retourSurGroupeAdresse'] == true) {
         echo $a->afficherDetail(0, $idEvenementGroupeAdresse);
     }
 }
 /**
  * Affiche la liste des rue pour l'administration
  * 
  * @return string HTML
  * */
 public function getAdminListeSousQuartiers()
 {
     $html = "";
     $a = new archiAuthentification();
     $u = new archiUtilisateur();
     $sqlWhere = "";
     // si l'utilisateur est un moderateur on le limite a la gestion des rues des villes qu'il modere
     if ($a->getIdProfil() == 3) {
         $arrayVillesFromModerateur = $u->getArrayVillesModereesPar($a->getIdUtilisateur());
         if (count($arrayVillesFromModerateur) > 0) {
             $sqlWhere = " AND sq.idQuartier in (SELECT idQuartier FROM quartier WHERE idVille in (" . implode(",", $arrayVillesFromModerateur) . ")) ";
         } else {
             $sqlWhere = " AND sq.idQuartier='0' ";
         }
     }
     // recherche
     $objetDeLaRecherche = "";
     $sqlRecherche = "";
     if (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'rechercheAdministration' && $this->variablesPost['rechercheFormulaireAdministration'] != '') {
         $objetDeLaRecherche = stripslashes($this->variablesPost['rechercheFormulaireAdministration']);
         $sqlRecherche = " AND LOWER(CONCAT_WS(' ',sq.nom,q.nom,v.nom)) LIKE \"%" . pia_strtolower($objetDeLaRecherche) . "%\" ";
     }
     // suppression
     // on verifie les dependances
     if (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'suppression') {
         // gestion de la suppression
         if (isset($this->variablesPost['selection']) && count($this->variablesPost['selection']) > 0) {
             //nom de champ identifiant
             $champIdentifiant = "idSousQuartier";
             $dependances[0] = array('table' => 'rue', 'champLie' => 'idSousQuartier', 'message' => "Attention il existe des dépendances au niveau de la table des rues");
             $dependances[1] = array('table' => 'historiqueAdresse', 'champLie' => 'idSousQuartier', 'message' => "Attention il existe des dépendances au niveau de la table historiqueAdresse");
             $erreurObj = new objetErreur();
             if (count($dependances) > 0) {
                 foreach ($dependances as $indice => $dependance) {
                     $reqVerifDependance = "SELECT * FROM " . $dependance['table'] . " WHERE " . $dependance['champLie'] . " in (" . implode(",", $this->variablesPost['selection']) . ")";
                     $resVerifDependance = $this->connexionBdd->requete($reqVerifDependance);
                     if (mysql_num_rows($resVerifDependance) > 0) {
                         $erreurObj->ajouter($dependance['message']);
                     }
                 }
                 if ($erreurObj->getNbErreurs() > 0) {
                     $erreurObj->ajouter("La suppression n'a pu être effectuée, veuillez contacter l'administrateur de la base de données");
                 }
                 $html .= $erreurObj->afficher();
             }
             if ($erreurObj->getNbErreurs() == 0) {
                 $reqDelete = "delete from sousQuartier where " . $champIdentifiant . " in (" . implode(",", $this->variablesPost['selection']) . ")";
                 $resDelete = $this->connexionBdd->requete($reqDelete);
                 echo "suppression effectuée<br>";
             }
         }
     }
     $reqCount = "SELECT sq.nom as nomSousQuartier, q.nom as nomQuartier,v.nom as nomVille\n            FROM sousQuartier sq\n            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n            LEFT JOIN ville v ON v.idVille = q.idVille\n            WHERE 1=1\n            {$sqlWhere}\n            {$sqlRecherche}\n            ";
     $resCount = $this->connexionBdd->requete($reqCount);
     $nbLignesTotales = mysql_num_rows($resCount);
     // pagination
     $nbEnregistrementsParPage = 20;
     $pagination = new paginationObject();
     $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'pageCourantePagination', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbLignesTotales, 'typeLiens' => 'formulaire', 'idFormulaire' => 'formListe', 'champPageCourante' => 'pageCourantePagination', 'nomChampActionFormulaireOnSubmit' => 'validationFormulaireAdministration', 'nomActionFormulaireOnSubmit' => 'rechercheAdministration'));
     $req = "\n        \n            SELECT sq.idSousQuartier as idSousQuartier,sq.nom as nomSousQuartier, q.nom as nomQuartier,v.nom as nomVille\n            FROM sousQuartier sq\n            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n            LEFT JOIN ville v ON v.idVille = q.idVille\n            WHERE 1=1 {$sqlWhere} {$sqlRecherche}\n            LIMIT " . $arrayPagination['limitSqlDebut'] . "," . $nbEnregistrementsParPage;
     $res = $this->connexionBdd->requete($req);
     $tableau = new tableau();
     $tableau->addValue("Sélection");
     $tableau->addValue("idSousQuartier");
     $tableau->addValue("nom du sous quartier");
     $tableau->addValue("localisation");
     while ($fetch = mysql_fetch_assoc($res)) {
         $tableau->addValue("<input type='checkbox' name='selection[]' value='" . $fetch['idSousQuartier'] . "'>");
         $tableau->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'sousQuartier', 'idModification' => $fetch['idSousQuartier'])) . "'>" . $fetch['idSousQuartier'] . "</a>");
         $tableau->addValue(stripslashes($fetch['nomSousQuartier']));
         $localisation = array();
         if ($fetch['nomQuartier'] != '' && $fetch['nomQuartier'] != 'autre') {
             $localisation[] = $fetch['nomQuartier'];
         }
         if ($fetch['nomVille'] != '' && $fetch['nomVille'] != 'autre') {
             $localisation[] = $fetch['nomVille'];
         }
         $tableau->addValue(stripslashes(implode(" - ", $localisation)));
     }
     $html .= "<form name='formListe' id='formListe' enctype='multipart/form-data' method='POST'>";
     $html .= "Recherche : <input type='text' name='rechercheFormulaireAdministration' id='rechercheFormulaireAdministration' value='" . $objetDeLaRecherche . "'>";
     $html .= "<input type='submit' onclick=\"document.getElementById('validationFormulaireAdministration').value='rechercheAdministration';\"><br>";
     $html .= $arrayPagination['html'] . '<br>';
     $html .= "<input type='hidden' name='pageCourantePagination' id='pageCourantePagination' value=''>";
     $html .= "<input type='hidden' name='validationFormulaireAdministration' id='validationFormulaireAdministration' value=''>";
     $html .= $tableau->createHtmlTableFromArray(4);
     $html .= "<input type='submit' value='Supprimer la selection' onclick=\"document.getElementById('validationFormulaireAdministration').value='suppression';\" name='supprimer'>";
     $html .= "<input type='button' name='ajouter' value='ajouter' onclick=\"location.href='" . $this->creerUrl('', 'ajoutNouvelleAdresse', array('typeNew' => 'newSousQuartier')) . "';\">";
     $html .= "</form>";
     return $html;
 }