public function gereAffichageAdresses($identifiantUniqueImage = 0, $idImage = 0, $modeRecuperationDonnees = 'ajout') { $nbAdressesEnregistrees = 0; // renseigné si mode = modif $adresse = new archiAdresse(); $retourAdresses = array(); // ************************************************************************* // GESTION DU NOMBRE D'ADRESSES // recuperation du nombre d'adresses // ************************************************************************* $nbAdressesAffichees = 1; if (isset($this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage]) && $this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage] != '0') { $nbAdressesAffichees = $this->variablesPost['nbAdressesAffichees' . $identifiantUniqueImage]; } // gestion de l'affichage des champs d'adresses if (isset($this->variablesPost['ajouterAdresse' . $identifiantUniqueImage])) { $nbAdressesAffichees = $nbAdressesAffichees + 1; //$t->assign_vars(array('nbAdressesAffichees'=>$nbAdressesAffichees)); } elseif (isset($this->variablesPost['enleverAdresse' . $identifiantUniqueImage])) { $nbAdressesAffichees = $nbAdressesAffichees - 1; //$t->assign_vars(array('nbAdressesAffichees'.$identifiantUniqueImage=>$nbAdressesAffichees)); } else { //$t->assign_vars(array('nbAdressesAffichees'.$identifiantUniqueImage=>1)); } // ************************************************************************* // ************************************************************************* // SI ON EDITE DES IMAGES VENANT D'ETRE UPLOADEES // on recupere les donnees en POST // ************************************************************************* if ($modeRecuperationDonnees == 'ajout') { $ville = 0; if (isset($this->variablesPost['ville' . $identifiantUniqueImage]) && $this->variablesPost['ville' . $identifiantUniqueImage] != '0' && $this->variablesPost['ville' . $identifiantUniqueImage] != '') { $ville = $this->variablesPost['ville' . $identifiantUniqueImage]; } $retourVille = array(); // gestion du favori de la ville if ($ville == '0') { $reqVilleTxt = "select nom from ville where idVille = '" . $this->session->getFromSession('idVilleFavoris') . "'"; $resVilleTxt = $this->connexionBdd->requete($reqVilleTxt); $fetchVilleTxt = mysql_fetch_assoc($resVilleTxt); //$t->assign_vars(array('ville'=>$this->session->getFromSession('idVilleFavoris'), 'villetxt'=>$fetchVilleTxt['nom'])); $ville = $this->session->getFromSession('idVilleFavoris'); $retourVille = array('ville' => $this->session->getFromSession('idVilleFavoris'), 'villetxt' => $fetchVilleTxt['nom']); } $retourQuartiers = array(); // *********************************************************************************** // si un idVille existe sur le formulaire , on affiche les quartiers correspondants if ($ville != '0') { $retourVille = array(); // recherche de la ville et de son identifiant $reqVille = "select idVille, nom from ville where idVille='" . $ville . "'"; $resVille = $this->connexionBdd->requete($reqVille); $fetchVille = mysql_fetch_assoc($resVille); $retourVille = array('ville' => $fetchVille['idVille'], 'villetxt' => $fetchVille['nom']); // recherche des quartiers de la ville $resQuartiers = $this->connexionBdd->requete("select idQuartier, nom from quartier where idVille = '" . $ville . "'"); while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) { $selected = ""; if (isset($this->variablesPost['quartiers' . $identifiantUniqueImage]) && $this->variablesPost['quartiers' . $identifiantUniqueImage] != '0' && $fetchQuartiers['idQuartier'] == $this->variablesPost['quartiers' . $identifiantUniqueImage]) { $selected = " selected"; } /*$t->assign_block_vars("quartiers", array( 'id' => $fetchQuartiers['idQuartier'], 'nom' => $fetchQuartiers['nom'], 'selected' => $selected )); */ $retourQuartiers[] = array('id' => $fetchQuartiers['idQuartier'], 'nom' => $fetchQuartiers['nom'], 'selected' => $selected); } } $retourSousQuartiers = array(); // *********************************************************************************** // si un idQuartier existe sur le formulaire on affiche les sous quartier correspondants if (isset($this->variablesPost['quartiers' . $identifiantUniqueImage]) && $this->variablesPost['quartiers' . $identifiantUniqueImage] != '') { $resSousQuartiers = $this->connexionBdd->requete("select idSousQuartier, nom from sousQuartier where idQuartier = '" . $this->variablesPost['quartiers' . $identifiantUniqueImage] . "'"); while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) { $selected = ""; if (isset($this->variablesPost['sousQuartiers' . $identifiantUniqueImage]) && $this->variablesPost['sousQuartiers' . $identifiantUniqueImage] != '0' && $fetchSousQuartiers['idSousQuartier'] == $this->variablesPost['sousQuartiers' . $identifiantUniqueImage]) { $selected = " selected"; } /*$t->assign_block_vars("sousQuartiers", array( 'id' => $fetchSousQuartiers['idSousQuartier'], 'nom' => $fetchSousQuartiers['nom'], 'selected' => $selected )); */ $retourSousQuartiers[] = array('id' => $fetchSousQuartiers['idSousQuartier'], 'nom' => $fetchSousQuartiers['nom'], 'selected' => $selected); } } } if ($modeRecuperationDonnees == 'modif') { // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // RECUPERATION DES DONNEES DES ADRESSES A PARTIR DE LA BASE DE DONNEES // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // parcours des adresses recuperées de la base de données pour voir si certaines viennent d'autres quartier , ville ou sousquartier ==> si c'est le cas il faudra gerer l'affichage plusieurs formulaire , un par groupe de sousquartier identiques // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // recuperation des adresses liees à l'image $adresses = new archiAdresse(); $resAdresses = $adresses->getAdressesFromImage($idImage); // recuperation du nombre d'adresses $nbAdressesEnregistrees = mysql_num_rows($resAdresses); if ($nbAdressesEnregistrees > $nbAdressesAffichees && !isset($this->variablesPost['enleverAdresse' . $identifiantUniqueImage])) { $nbAdressesAffichees = $nbAdressesEnregistrees; } if ($nbAdressesEnregistrees > 0) { mysql_data_seek($resAdresses, 0); } $arrayVilles = array(); $arrayQuartiers = array(); $arraySousQuartiers = array(); while ($fetchAdressesVerif = mysql_fetch_assoc($resAdresses)) { $arrayVilles[] = $fetchAdressesVerif['idVille']; $arrayQuartiers[] = $fetchAdressesVerif['idQuartier']; $arraySousQuartiers[] = $fetchAdressesVerif['idSousQuartier']; } $arrayVilles = array_unique($arrayVilles); $arrayQuartiers = array_unique($arrayQuartiers); $arraySousQuartiers = array_unique($arraySousQuartiers); if (count($arrayVilles) > 1 || count($arrayQuartiers) > 1 || count($arraySousQuartiers) > 1) { echo "Attention il y a des adresses qui ne font pas partie du même quartier.<br>"; // affichage de plusieurs formulaires pour chaque adresse de rue qui n'appartient pas au meme ensemble // a faire ?? ou limiter les groupes d'adresses au adresses appartenant à la meme rue } else { // toutes les adresses appartiennent au meme quartier, sousQuartier, ville // on reprend le premier enregistrement de la requete pour chercher les infos ville, quartier, sousquartier a assigner au formulaire if ($nbAdressesEnregistrees > 0) { mysql_data_seek($resAdresses, 0); } $fetchInfosAdresse = mysql_fetch_assoc($resAdresses); // l'adresse concerne t elle une rue, un quartier , un sous quartier, une ville ... // pour l'instant on considere que cela concerne une rue avec son numero $retourQuartiers = array(); $retourSousQuartiers = array(); if ($fetchInfosAdresse['idRue'] != '0') { // recherche de la ville, du quartier et sous quartier $infosNomsAdresse = $adresse->getAdresseComplete($fetchInfosAdresse['idRue'], 'rue'); $infosIds = $adresse->getArrayAdresseFrom($fetchInfosAdresse['idRue'], 'rue'); /*$t->assign_vars(array( 'ville'=>$infosIds['ville'], 'villetxt'=>$infosNomsAdresse['ville'] ));*/ $retourVille = array('ville' => $infosIds['ville'], 'villetxt' => $infosNomsAdresse['ville']); // assignation du quartier $resQuartiers = $this->connexionBdd->requete("SELECT idQuartier, nom FROM quartier WHERE idVille = '" . $infosIds['ville'] . "'"); while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) { $selected = ""; if ($infosIds['quartier'] == $fetchQuartiers['idQuartier']) { $selected = " selected"; } /*$t->assign_block_vars("quartiers", array( 'nom'=>$fetchQuartiers['nom'], 'id'=>$fetchQuartiers['idQuartier'], 'selected'=>$selected )); */ $retourQuartiers[] = array('nom' => $fetchQuartiers['nom'], 'id' => $fetchQuartiers['idQuartier'], 'selected' => $selected); } /*$t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value, 'listeSousQuartier')"));*/ // assignation du sousQuartier $resSousQuartiers = $this->connexionBdd->requete("SELECT idSousQuartier, nom FROM sousQuartier WHERE idQuartier = '" . $infosIds['quartier'] . "'"); while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) { $selected = ""; if ($infosIds['sousQuartier'] == $fetchSousQuartiers['idSousQuartier']) { $selected = " selected"; } /*$t->assign_block_vars("sousQuartiers", array( 'nom'=>$fetchSousQuartiers['nom'], 'id'=>$fetchSousQuartiers['idSousQuartier'], 'selected'=>$selected )); */ $retourSousQuartiers[] = array('nom' => $fetchSousQuartiers['nom'], 'id' => $fetchSousQuartiers['idSousQuartier'], 'selected' => $selected); } } elseif ($fetchInfosAdresse['idSousQuartier'] != '0') { echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur un sous quartier entier désactivée. Contactez l'administrateur."; } elseif ($fetchInfosAdresse['idQuartier'] != '0') { echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur un quartier entier désactivée. Contactez l'administrateur."; } elseif ($fetchInfosAdresse['idVille'] != '0') { echo "archiAdresse::afficheAjoutAdressesMultiple : ajout d'une localisation sur une ville entière désactivée. Contactez l'administrateur."; } } } // fin boucle sur la partie 'modif' $retourAdresses = array(); // parcours des adresses for ($i = 0; $i < $nbAdressesAffichees; $i++) { if ($modeRecuperationDonnees == 'ajout' && isset($this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage])) { $arrayAdresse[$i]['txt'] = $this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage . "txt"]; $arrayAdresse[$i]['id'] = $this->variablesPost['rue' . $i . '_' . $identifiantUniqueImage]; $arrayAdresse[$i]['numero'] = $this->variablesPost['numero' . $i . '_' . $identifiantUniqueImage]; $arrayAdresse[$i]['indicatif'] = $this->variablesPost['indicatif' . $i . '_' . $identifiantUniqueImage]; } else { if ($modeRecuperationDonnees == 'modif' && $i < $nbAdressesEnregistrees) { mysql_data_seek($resAdresses, $i); $fetchAdresses = mysql_fetch_assoc($resAdresses); $arrayAdresse[$i]['txt'] = $fetchAdresses['nomRue']; $arrayAdresse[$i]['id'] = $fetchAdresses['idRue']; $arrayAdresse[$i]['numero'] = $fetchAdresses['numero']; $arrayAdresse[$i]['indicatif'] = $fetchAdresses['idIndicatif']; } else { $arrayAdresse[$i]['txt'] = ""; $arrayAdresse[$i]['id'] = ""; $arrayAdresse[$i]['numero'] = ""; $arrayAdresse[$i]['indicatif'] = ""; } } // affichage des indicatifs pour chaque adresse /*$t->assign_block_vars("adresses", array( 'idUnique' => $i, 'onClickBoutonChoixRue' => "document.getElementById('paramChampAppelantRue').value= 'rue".$i."';document.getElementById('iFrameRue').src='".$this->creerUrl('', 'afficheChoixRue', array('noHeaderNoFooter'=>1))."&archiIdVille='+document.getElementById('ville').value+'&archiIdQuartier='+document.getElementById('quartiers').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers').value;document.getElementById('calqueRue').style.display='block';", "nomRue" => $arrayAdresse[$i]["txt"], "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"] )); */ $retourIndicatifsAdresses = array(); // gestion des indicatifs de chaque adresse $reqIndicatif = "select idIndicatif, nom from indicatif"; $resIndicatif = $this->connexionBdd->requete($reqIndicatif); while ($fetchIndicatif = mysql_fetch_assoc($resIndicatif)) { $selected = ""; if (isset($this->variablesPost['indicatif' . $i]) && $this->variablesPost['indicatif' . $i] != '' && $this->variablesPost['indicatif' . $i] == $fetchIndicatif['idIndicatif'] || $arrayAdresse[$i]['indicatif'] == $fetchIndicatif['idIndicatif']) { $selected = " selected"; } /*$t->assign_block_vars("adresses.indicatifs", array( "id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected )); */ $retourIndicatifsAdresses[] = array("id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected); } $retourAdresses[] = array('idUnique' => $i, 'onClickBoutonChoixRue' => "document.getElementById('calqueRue').style.top=(getScrollHeight()+150)+'px';document.getElementById('paramChampAppelantRue').value= 'rue" . $i . "_" . $identifiantUniqueImage . "';document.getElementById('iFrameRue').src='" . $this->creerUrl('', 'afficheChoixRue', array('noHeaderNoFooter' => 1)) . "&archiIdVille='+document.getElementById('ville" . $identifiantUniqueImage . "').value+'&archiIdQuartier='+document.getElementById('quartiers" . $identifiantUniqueImage . "').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers" . $identifiantUniqueImage . "').value;document.getElementById('calqueRue').style.display='block';", "nomRue" => $arrayAdresse[$i]["txt"], "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"], "indicatifs" => $retourIndicatifsAdresses); } //fin boucle sur les adresses $retour = array('nbAdressesAffichees' => $nbAdressesAffichees, 'nbAdressesEnregistrees' => $nbAdressesEnregistrees, 'quartiers' => $retourQuartiers, 'sousQuartiers' => $retourSousQuartiers, 'adresses' => $retourAdresses, 'ville' => $retourVille); return $retour; }