예제 #1
0
 switch ($_GET['tableName']) {
     case 'rue':
         $administration = new archiAdministration();
         echo $administration->getAdminListeRues();
         break;
     case 'sousQuartier':
         $administration = new archiAdministration();
         echo $administration->getAdminListeSousQuartiers();
         break;
     case 'quartier':
         $optionsModerateur = array();
         /* L'utilisateur courant est moderateur :
          * on ne va donc afficher que la liste des quartiers
          * que cette personne modere pour sa ou ses villes
          * */
         if ($authentification->getIdProfil() == 3) {
             $arrayVillesFromModerateur = $u->getArrayVillesModereesPar($authentification->getIdUtilisateur());
             if (count($arrayVillesFromModerateur) > 0) {
                 $optionsModerateur = array('sqlWhere' => " AND idVille in (" . implode(",", $arrayVillesFromModerateur) . ") ");
             } else {
                 $optionsModerateur = array('sqlWhere' => " AND idVille='0' ");
             }
         }
         $liensExternes = array('idVille' => array('externalLink' => true, 'externalFieldPrimaryKey' => 'idVille', 'externalTable' => 'ville', 'externalFieldToDisplay' => 'nom'));
         $dependances[0] = array('table' => 'sousQuartier', 'champLie' => 'idQuartier', 'message' => "Attention il existe des dépendances " . "au niveau de la table des sous quartiers");
         $dependances[1] = array('table' => 'historiqueAdresse', 'champLie' => 'idQuartier', 'message' => "Attention il existe des dépendances au niveau" . " de la table historiqueAdresse");
         $generateur = new formGenerator();
         echo $generateur->afficheFormulaireListe(array_merge($_GET, array('modeAffichageLienDetail' => "adminAdresseDetail", "replaceAjouterButtonBy" => "<input type='button' name='ajouter' " . "value='ajouter' onclick=\"location.href='" . $generateur->creerUrl('', 'ajoutNouvelleAdresse', array("typeNew" => "newQuartier")) . "';\">"), $optionsModerateur), $liensExternes, $dependances);
         break;
     case 'ville':
         $liensExternes = array('idPays' => array('externalLink' => true, 'externalFieldPrimaryKey' => 'idPays', 'externalTable' => 'pays', 'externalFieldToDisplay' => 'nom'));
 public function afficheFormulaire($tabTravail = array(), $modif = '', $idParent = 0, $typeParentId = '')
 {
     $html = '';
     $t = new Template('modules/archi/templates/');
     //$t->set_filenames((array('evl'=>'evenementFormulaire.tpl')));
     $t->set_filenames(array('evl' => 'nouveauDossier.tpl'));
     $isEvenementGroupeAdresse = false;
     $formulaire = new formGenerator();
     $groupeTypeEvenement = 2;
     // par defaut on selectionne les evenement de type 'travaux'
     if (isset($this->variablesPost['typeGroupeEvenement']) && $this->variablesPost['typeGroupeEvenement'] != '') {
         $groupeTypeEvenement = $this->variablesPost['typeGroupeEvenement'];
     }
     $t->assign_vars(array('typeBoutonValidation' => "button"));
     // quand test javascript sur les champs de l'adresse , type = button
     // cas d'ajout d'un sous evenement ou d'un evenement appartenant a une adresse
     // on n'affiche pas les listes d'evenements et d'adresses
     if ($idParent != 0) {
         // est ce que l'on veut lier l'evenement a un evenement que l'on a précisé en parametre ou a une adresse ?
         switch ($typeParentId) {
             case 'evenement':
                 // CAS OU L'ON VA AJOUTER UN SOUS EVENEMENT A L'EVENEMENT GROUPE d'ADRESSE
                 $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
                 if ($idPerson = archiPersonne::isPerson($idParent)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresse' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $adresse = new archiAdresse();
                     $t->assign_vars(array('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idParent)));
                 }
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 //$t->assign_block_vars('isNotAffichageGroupeAdresse',array());
                 $t->assign_vars(array('evenementGroupeAdresse' => $idParent));
                 $t->assign_vars(array('nomBoutonValidation' => 'ajoutSousEvenement'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
                 break;
             case 'adresse':
                 $tabTravail['adresses']['value'] = array($idParent);
                 $t->assign_block_vars('ajouterAdresses', array());
                 break;
         }
     } else {
         // l'evenement est il un groupe d'adresse , si oui , on n'affichera que le champ des adresses
         if ($modif != '') {
             // c'est une modification d'evenement
             // on affiche le recapitulatif de l'adresse en haut de page
             $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
             $idEvenementGroupeAdresse = $this->getParent($modif);
             $adresse = new archiAdresse();
             if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                 $person = new archiPersonne();
                 $infos = $person->getInfosPersonne($idPerson);
                 $t->assign_vars(array('recapitulatifAdresse' => "<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('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
             }
             $t->assign_vars(array('recaptitulatifAncres' => $this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $modif)));
             $t->assign_vars(array("liensModifEvenements" => $this->afficherLiensModificationEvenement($modif)));
             $isEvenementGroupeAdresse = $this->isEvenementGroupeAdresse($modif);
             if ($isEvenementGroupeAdresse) {
                 // l'evenement courant est de type groupe d'adresse
                 // on affiche rien a par l'adresse
                 // on renseigne le champs cache du formulaire pour recuperer rapidement l'identifiant lors de la validation de la modification
                 $t->assign_vars(array('evenementGroupeAdresse' => $modif));
                 $t->assign_block_vars('ajouterAdresses', array());
                 //on recupere les adresses liées a cet evenement
                 $reqAdressesGroupeAdresses = "\n\t\t\t\t\t\t\tSELECT ha.idAdresse as idAdresse\n\t\t\t\t\t\t\tfrom historiqueAdresse ha2, historiqueAdresse ha\n\t\t\t\t\t\t\tright join _adresseEvenement ae on ae.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\twhere ae.idEvenement = '" . $modif . "'\n\t\t\t\t\t\t\t\t\tand ha2.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\t\t\tgroup by ha.idAdresse,ha.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\thaving ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\t\t";
                 $resAdressesGroupeAdresses = $this->connexionBdd->requete($reqAdressesGroupeAdresses);
                 while ($fetchAdressesGroupeAdresses = mysql_fetch_assoc($resAdressesGroupeAdresses)) {
                     $tabTravail["adresses"]['value'][] = $fetchAdressesGroupeAdresses['idAdresse'];
                 }
             } else {
                 // MODIFICATION d'UN EVENEMENT (juste l'evenement, pas d'adresse , pas de groupe d'adresse)
                 // initialisation des champs du template que l'on va afficher
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 $t->assign_vars(array('nomBoutonValidation' => 'evenementSimple'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
             }
         } else {
             // ce n'est pas une modification d'evenement
             $t->assign_block_vars('afficheAjoutEvenement', array());
         }
     }
     //***********************************************************************************************
     // TYPE STRUCTURE
     // dans le cas d'un ajout de sous evenement
     // par defaut on recupere le type de structure du premier evenement enregistré 'qui n'est pas un groupe d'adresses'
     //***********************************************************************************************
     $heriteIdTypeStructure = '';
     if ($idParent != '0' && $typeParentId == 'evenement') {
         $sqlTypeStructureHerite = "\n\t\t\t\t\tSELECT he.idTypeStructure as idTypeStructure\n\t\t\t\t\tFROM evenements he2, evenements he\n\t\t\t\t\tWHERE he.idEvenement =(select min(ee.idEvenementAssocie) from _evenementEvenement ee where ee.idEvenement = '" . $idParent . "')\n\t\t\t\t\t\t\tAND he2.idEvenement = he.idEvenement\n\t\t\t\t\t\t\tGROUP BY he.idEvenement\n\t\t\t\t\t\t\t";
         $resTypeStructureHerite = $this->connexionBdd->requete($sqlTypeStructureHerite);
         if (mysql_num_rows($resTypeStructureHerite) == 1) {
             $fetchTypeStructureHerite = mysql_fetch_assoc($resTypeStructureHerite);
             $heriteIdTypeStructure = $fetchTypeStructureHerite['idTypeStructure'];
         }
         //echo "heriteIdTypeStructure=".$heriteIdTypeStructure;
     }
     if (!isset($idEvenementGroupeAdresse)) {
         $idEvenementGroupeAdresse = $_GET["archiIdEvenement"];
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         $t->assign_block_vars("afficheAjoutEvenement.isAddress", array());
         $sqlTypeStructure = 'SELECT idTypeStructure, nom FROM typeStructure order by nom';
         if ($result = $this->connexionBdd->requete($sqlTypeStructure)) {
             while ($fetchTypeStructure = mysql_fetch_object($result)) {
                 if ($fetchTypeStructure->idTypeStructure != 0) {
                     //$tabTypeStructure[$rep->idTypeStructure] = $rep->nom;
                     if (isset($tabTravail['typeStructure']) && $tabTravail['typeStructure']['value'] == $fetchTypeStructure->idTypeStructure || $heriteIdTypeStructure != '' && $fetchTypeStructure->idTypeStructure == $heriteIdTypeStructure) {
                         $selected = 'selected="selected"';
                     } else {
                         $selected = '';
                     }
                     $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesStructure', array('id' => $fetchTypeStructure->idTypeStructure, 'nom' => $fetchTypeStructure->nom, 'selected' => $selected));
                 }
             }
         }
     }
     // ***********************************************************************************
     // si la personne n'est pas admin elle verra une version simplifiée du formulaire
     $authentification = new archiAuthentification();
     if ($authentification->estConnecte() && $authentification->estAdmin()) {
         $t->assign_block_vars('afficheAjoutEvenement.isAdmin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotAdmin', array());
     }
     // ******
     // ***********************************************************************************
     // autre cas pour l'affichage du champ numeroArchive , il faut que l'utilisateur soit autorisé à l'afficher => table utilisateur
     $utilisateur = new archiUtilisateur();
     if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeNumeroArchive', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeNumeroArchive', array());
     }
     if ($utilisateur->canChangeDateFinField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeDateFin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeDateFin', array());
     }
     if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) {
         $t->assign_block_vars('afficheAjoutEvenement.isDisplaySource', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotDisplaySource', array());
     }
     // ******
     // ***********************************************************************************
     // le type de groupe d'evenement
     // 1 - culturel
     // 2 - travaux
     $t->assign_vars(array('onClickTypeEvenement1' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '1')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesCulturel').style.display='block';document.getElementById('afficheChampsSupplementairesTravaux').style.display='none';"));
     $t->assign_vars(array('onClickTypeEvenement2' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '2')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesTravaux').style.display='block';document.getElementById('afficheChampsSupplementairesCulturel').style.display='none';"));
     // si c'est une modification de l'evenement il faut chercher l'id de type de groupe d'evenement afin d'afficher les bons div , et donc on reassigne la variable groupeTypeEvenement
     if ($modif != '') {
         if (isset($tabTravail['typeEvenement']['value'])) {
             $reqGroupeTypeEvenement = "select groupe from typeEvenement where idTypeEvenement='" . $tabTravail['typeEvenement']['value'] . "'";
             $resGroupeTypeEvenement = $this->connexionBdd->requete($reqGroupeTypeEvenement);
             $fetchGroupeTypeEvenement = mysql_fetch_assoc($resGroupeTypeEvenement);
             $groupeTypeEvenement = $fetchGroupeTypeEvenement['groupe'];
         }
     }
     // on affiche le bon div
     if ($groupeTypeEvenement == 1) {
         // 1: culturel
         $t->assign_vars(array('checkedTypeEvenement1' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:none;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:block;"));
         if (isset($tabTravail['ISMH']) && $tabTravail['ISMH']['value'] == '1') {
             $t->assign_vars(array('ISMHchecked' => " checked"));
         }
         if (isset($tabTravail['MH']) && $tabTravail['MH']['value'] == '1') {
             $t->assign_vars(array('MHchecked' => " checked"));
         }
     } elseif ($groupeTypeEvenement == 2) {
         // 2: travaux
         $t->assign_vars(array('nbEtages' => $tabTravail['nbEtages']['value']));
         $t->assign_vars(array('checkedTypeEvenement2' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:block;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:none;"));
     }
     if (isset($tabTravail['isDateDebutEnviron']) && $tabTravail['isDateDebutEnviron']['value'] == '1') {
         $t->assign_vars(array('isDateDebutEnviron' => " checked"));
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         // les type d'evenements
         // par defaut on selectionne le typeEvenement=2 (travaux)
         $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement,nom FROM typeEvenement where groupe = '" . $groupeTypeEvenement . "'");
         while ($fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement)) {
             $selected = "";
             if (isset($tabTravail['typeEvenement']) && $tabTravail['typeEvenement']['value'] == $fetchTypeEvenement["idTypeEvenement"]) {
                 $selected = "selected";
             }
             $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesEvenement', array('id' => $fetchTypeEvenement['idTypeEvenement'], 'nom' => $fetchTypeEvenement['nom'], 'selected' => $selected));
         }
     }
     // ***********************************************************************************
     //** Courant Architecturaux - récupération
     //*
     $sqlCourantArchitectural = 'SELECT idCourantArchitectural, nom FROM courantArchitectural order by nom';
     //$tabCourantArchitectural = array();
     $tableauCourants = new tableau();
     if ($result = $this->connexionBdd->requete($sqlCourantArchitectural)) {
         while ($fetchCourant = mysql_fetch_object($result)) {
             //$tabCourantArchitectural[$rep->idCourantArchitectural] = $rep->nom;
             if (isset($tabTravail['courant']) && is_array($tabTravail['courant']['value']) && in_array($fetchCourant->idCourantArchitectural, $tabTravail['courant']['value']) && $groupeTypeEvenement == 2) {
                 $selected = 'checked';
             } else {
                 $selected = '';
             }
             $tableauCourants->addValue("<input type='checkbox' name='courant[]' value='" . $fetchCourant->idCourantArchitectural . "' " . $selected . ">&nbsp;" . $fetchCourant->nom);
             //$t->assign_block_vars('isNotAffichageGroupeAdresse.courant', array('id'=> $fetchCourant->idCourantArchitectural, 'nom'=> $fetchCourant->nom, 'selected'=> $selected));
         }
         $t->assign_vars(array('listeCourantsArchitecturaux' => $tableauCourants->createHtmlTableFromArray(3, "white-space:nowrap;font-size:12px; font-color:#000000;", 'listeCourantsArchitecturaux')));
     }
     // ***********************************************************************************
     // assignation du bouton de validation : ajout ou modif
     if ($formulaire->estChiffre($modif)) {
         $t->assign_vars(array('typeTitre' => 'Modification', 'estmodif' => '<input type="hidden" name="idEvenement" value="' . $modif . '" />', 'boutonValidation' => 'Modifier', 'formAction' => $this->creerUrl('modifierEvenement', '', array('archiIdEvenement' => $modif))));
     } else {
         $t->assign_vars(array('typeTitre' => 'Ajout', 'estmodif' => '', 'boutonValidation' => 'Ajouter', 'formAction' => $this->creerUrl('ajoutEvenement')));
     }
     // ***********************************************************************************
     //**  Affichage des Erreurs
     //**
     foreach ($tabTravail as $name => $value) {
         if (!is_array($value["value"])) {
             if ($value['type'] == 'date') {
                 $val = $this->date->toFrench($this->date->toBdd($value['value']));
             } else {
                 $val = htmlspecialchars(stripslashes($value["value"]));
                 // nécessaire pour la description
             }
         } else {
             $val = $value["value"];
         }
         if ($value['type'] != 'checkbox') {
             $t->assign_vars(array($name => $val));
         }
         if (isset($value['error']) && $value["error"] != '') {
             $t->assign_vars(array($name . "-error" => $value["error"]));
         }
     }
     // ***********************************************************************************
     //**  Affichage des listes d'options
     //**
     // recherche des intitules de la source de l'evenement courant
     if (!empty($tabTravail['source']['value'])) {
         $sql = "\n\t\t\t\t\tSELECT s.idSource as idSource, s.nom as nom , ts.nom as nomTypeSource\n\t\t\t\t\tFROM source s\n\t\t\t\t\tLEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n\t\t\t\t\tWHERE s.idSource ='" . $tabTravail['source']['value'] . "'";
         $rep = $this->connexionBdd->requete($sql);
         $fetchSource = mysql_fetch_assoc($rep);
         $t->assign_vars(array('source' => $tabTravail['source']['value'], 'sourcetxt' => stripslashes($fetchSource['nom']) . ' ' . $fetchSource['nomTypeSource']));
     }
     // les personnes
     $d = new droitsObject();
     if ($d->isAuthorized('personne_sur_evenement_modifier', $authentification->getIdProfil())) {
         $t->assign_vars(array("affichePersonnesBlock" => "table-row"));
         if (!empty($tabTravail['personnes']['value'])) {
             foreach ($tabTravail['personnes']['value'] as $id => $val) {
                 $tabTravail['personnes']['value'][$id] = mysql_escape_string($val);
             }
             $sqlIdPersonne = implode("','", $tabTravail['personnes']['value']);
             $sql = "SELECT idPersonne, nom, prenom FROM personne WHERE idPersonne IN ('" . $sqlIdPersonne . "')";
             $rep = $this->connexionBdd->requete($sql);
             $tabPersonne = array();
             while ($res = mysql_fetch_object($rep)) {
                 $tabPersonne[$res->idPersonne] = $res->nom . ' ' . $res->prenom;
             }
             foreach ($tabPersonne as $id => $val) {
                 $t->assign_block_vars('afficheAjoutEvenement.personnes', array('id' => $id, 'nom' => $val, 'selected' => 'selected'));
             }
         }
     } else {
         $t->assign_vars(array("affichePersonnesBlock" => "none"));
     }
     // les adresses
     /*if (!empty($tabTravail['adresses']['value']))
     		{
     		foreach( $tabTravail['adresses']['value'] AS $id => $val)
     		{
     		$tabTravail['adresses']['value'][$id] = mysql_escape_string($val);
     		}
     		$sqlIdAdresse = implode("','", $tabTravail['adresses']['value']);
     		// recuperation des noms des adresses
     		$sql = "
     		SELECT ha.idAdresse as idAdresse, ha.nom as nom
     		FROM historiqueAdresse ha2, historiqueAdresse ha
     		WHERE ha.idAdresse IN ('".$sqlIdAdresse."')
     		AND ha.idAdresse = ha2.idAdresse
     		GROUP BY ha.idAdresse, ha.idHistoriqueAdresse
     		HAVING ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
     		";
     		$rep = $this->connexionBdd->requete($sql);
     		while ($res = mysql_fetch_object($rep))
     		{
     		$tabAdresse[$res->idAdresse] = $res->nom;
     		}
     
     		$adresse = new archiAdresse();
     		foreach($tabTravail['adresses']['value'] AS $id)
     		{
     		// recherche du libelle a afficher pour l'adresse
     		$nom = $adresse->getAdresseToDisplay($adresse->getArrayAdresseFromIdAdresse($id));//$adresse->getAdresseToDisplay($id);
     		$t->assign_block_vars('ajouterAdresses.adresses', array('val'=> $id, 'nom'=> $nom));
     		}
     		}
     
     		// les evenements lies ( pas utilisé pour le moment)
     		if (!empty($tabTravail['evenements']['value']))
     		{
     		// modif laurent pour ajout d'un sous evenement à l'evenement groupe d'adresse
     		if(count($tabTravail['evenements']['value'])==1)
     		{
     		foreach($tabTravail['evenements']['value'] as $indice => $value)
     		{
     		// recherche de l'evenement parent :
     		$resGroupeAdresse   = $this->connexionBdd->requete("select distinct idEvenement from _evenementEvenement where idEvenementAssocie='".$value."'");
     		$fetchGroupeAdresse = mysql_fetch_assoc($resGroupeAdresse);
     		$t->assign_vars(array('evenementGroupeAdresse'=>$fetchGroupeAdresse['idEvenement']));
     		}
     		}
     		else
     		{
     		$this->mail->sendMail('archiV2',$this->mail->getAdmin(),'ArchiV2-archiEvenements::il y a plusieurs evenements lies','il y a plusieurs evenements lies idEvenement='.$fetchGroupeAdresse['idEvenement']);
     		}
     
     
     		}
     		*/
     // ***********************************************************************************
     // gestion des appels des popups de dates
     $t->assign_vars(array('onClickDateDebut' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'onClickDateFin' => "document.getElementById('paramChampAppelantDate').value='dateFin';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';"));
     // bouton popup source
     $t->assign_vars(array('onClickBoutonChoisirSource' => "document.getElementById('paramChampsAppelantSource').value='source';document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';", 'onClickChoixPersonne' => "document.getElementById('paramChampsAppelantPersonne').value='personne';document.getElementById('calquePersonne').style.top=(getScrollHeight()+150)+'px';document.getElementById('calquePersonne').style.display='block';"));
     $recherche = new archiRecherche();
     //  liaison avec les adresses
     $t->assign_vars(array('popupPersonnes' => $recherche->getPopupChoixPersonne('modifEvenement'), 'popupSources' => $recherche->getPopupChoixSource('modifEvenement'), 'popupCalendrier' => $this->getPopupCalendrier()));
     // ******************************************************************************************************************************
     // on recupere les messages d'aide contextuelle et on les affiche :
     $helpMessages = $this->getHelpMessages("helpEvenement");
     foreach ($helpMessages as $fieldName => $helpMessage) {
         $t->assign_vars(array($fieldName => $helpMessage));
     }
     // ******************************************************************************************************************************
     ob_start();
     $t->pparse('evl');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 public function afficheSelectPays($params = array())
 {
     $html = "";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('listePays' => 'listePaysSelect.tpl'));
     $a = new archiAuthentification();
     $u = new archiUtilisateur();
     $sqlWhereVillesModerees = "";
     if ($a->getIdProfil() == 3) {
         // l'utilisateur est un moderateur , on affiche que les quartiers qu'il peut moderer suivant les villes qu'il peut moderer
         $arrayIdVilles = $u->getArrayVillesModereesPar($a->getIdUtilisateur());
         $arrayIdPays = array();
         // recuperation des pays concernés par les villes qu'administre le moderateur
         $reqPaysModeres = "SELECT distinct idPays FROM ville WHERE idVille IN (" . implode(",", $arrayIdVilles) . ") ";
         $resPaysModeres = $this->connexionBdd->requete($reqPaysModeres);
         if (mysql_num_rows($resPaysModeres) > 0) {
             while ($fetchPaysModeres = mysql_fetch_assoc($resPaysModeres)) {
                 $arrayIdPays[] = $fetchPaysModeres['idPays'];
             }
             $sqlWhereVillesModerees = " AND idPays IN (" . implode(",", $arrayIdPays) . ") ";
         } else {
             $sqlWhereVillesModerees = " AND idPays = 0 ";
             // si le moderateur ne gere aucune ville , on rajoute ce critere pour ne pas afficher toutes les villes
         }
     }
     $reqPays = "SELECT nom, idPays FROM pays WHERE 1=1 " . $sqlWhereVillesModerees;
     $resPays = $this->connexionBdd->requete($reqPays);
     $javascriptVille = "";
     if (!isset($params['noVille']) || $params['noVille'] != true) {
         $javascriptVille = "\n                            document.getElementById('ville').innerHTML='<option value=0>Aucun</option>';\n                            document.getElementById('ville').selectedIndex=0;\n                            appelAjax('?archiAffichage=afficheSelectVille&noHeaderNoFooter=1&idPays='+document.getElementById('pays').value,'champVille');\n                            ";
     }
     $javascriptQuartier = "";
     if (!isset($params['noQuartier']) || $params['noQuartier'] != true) {
         $javascriptQuartier = "\n                            document.getElementById('quartiers').innerHTML='<option value=0>Aucun</option>';\n                            document.getElementById('quartiers').selectedIndex=0;\n            ";
     }
     $javascriptSousQuartier = "";
     if (!isset($params['noSousQuartier']) || $params['noSousQuartier'] != true) {
         $javascriptSousQuartier = "\n                            document.getElementById('sousQuartiers').innerHTML='<option value=0>Aucun</option>';\n                            document.getElementById('sousQuartiers').selectedIndex=0;\n            ";
     }
     $t->assign_vars(array('javascript' => "\n                        function onChangeListePays()\n                        {\n                            " . $javascriptSousQuartier . "\n                            " . $javascriptQuartier . "\n                            " . $javascriptVille . "\n                        }\n                        "));
     // assignation du javascript pour l'ajax
     $t->assign_vars(array('onChangeListePays' => "onChangeListePays();"));
     while ($fetchPays = mysql_fetch_assoc($resPays)) {
         $selected = "";
         if (isset($params['idPays']) && $params['idPays'] != '' && $params['idPays'] == $fetchPays['idPays']) {
             $selected = " selected ";
         }
         $t->assign_block_vars('pays', array('id' => $fetchPays['idPays'], 'nom' => $fetchPays['nom'], 'selected' => $selected));
     }
     ob_start();
     $t->pparse('listePays');
     $html = ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * 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;
 }