/**
  * Affichage de toutes les actualites
  *
  * @param array $params Paramètres
  *
  * @return string HTML
  * */
 public function getHtmlToutesLesActualites($params = array())
 {
     $html = "<h1>" . _("Actualités") . "</h1>";
     $d = new dateObject();
     $pagination = new paginationObject();
     $resDernieresActualites = $this->getDernieresActualites(array('sqlFields' => '0', "returnAsMysqlRes" => true));
     $nbEnregistrementTotaux = mysql_num_rows($resDernieresActualites);
     $nbEnregistrementsParPage = 15;
     $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'page', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
     $arrayActus = $this->getDernieresActualites(array("sqlWhere" => " AND desactive<>'1' ", "sqlLimit" => "LIMIT " . mysql_real_escape_string($arrayPagination['limitSqlDebut']) . ", " . $nbEnregistrementsParPage));
     $tab = new tableau();
     foreach ($arrayActus as $indice => $value) {
         if ($value['urlFichier'] != '') {
             $url = $value['urlFichier'];
         } else {
             $url = $this->creerUrl('', 'afficherActualite', array('archiIdActualite' => $value['idActualite']));
         }
         $tab->addValue("<a href='" . $url . "'>" . $d->toFrenchAffichage($value['date']) . " " . stripslashes($value['titre']) . "</a>");
         if ($value['photoIllustration'] != '') {
             list($w, $h) = getimagesize($this->getCheminPhysique() . "images/actualites/" . $value['idActualite'] . "/" . $value['photoIllustration']);
             if ($w > $h) {
                 $dimension = "width=80";
             } else {
                 $dimension = "height=80";
             }
             $tab->addValue("<img src='" . $this->urlImages . "actualites/" . $value['idActualite'] . "/" . $value['photoIllustration'] . "' {$dimension}>");
         } else {
             $tab->addValue("&nbsp;");
         }
     }
     $html .= $arrayPagination['html'];
     $html .= $tab->createHtmlTableFromArray(2, 'margin:0;padding:0;', '', '', " border=''");
     return $html;
 }
 public function afficheFormulaireModificationElementAdresse($parametres = array())
 {
     // verification des droits
     $a = new archiAuthentification();
     $u = new archiUtilisateur();
     $html = "";
     if ($a->estAdmin() || $u->isAuthorized('admin_rues', $a->getIdUtilisateur()) && $u->isAuthorized('admin_quartiers', $a->getIdUtilisateur()) && $u->isAuthorized('admin_sousQuartiers', $a->getIdUtilisateur())) {
         $htmlDependances = "";
         $t = new Template('modules/archi/templates/');
         $idRue = 0;
         $idQuartier = 0;
         $idSousQuartier = 0;
         $idVille = 0;
         $idPays = 0;
         switch ($parametres['tableName']) {
             case 'rue':
                 $t->set_filenames(array('modificationElementAdresse' => 'modificationElementAdresseRue.tpl'));
                 $idRue = $parametres['id'];
                 $req = "\n                            SELECT r.nom as nomRue, r.prefixe as prefixeRue,sq.idSousQuartier as idSousQuartier,\n                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays\n                            FROM rue r\n                            LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier\n                            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n                            LEFT JOIN ville v ON v.idVille = q.idVille\n                            LEFT JOIN pays p ON p.idPays = v.idPays\n                            WHERE idRue = '" . $idRue . "'";
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     $fetch = mysql_fetch_assoc($res);
                     $t->assign_vars(array('intitule' => stripslashes($fetch['nomRue']), 'complement' => stripslashes($fetch['prefixeRue']), 'sousQuartierField' => $this->afficheSelectSousQuartier(array('idQuartier' => $fetch['idQuartier'], 'idSousQuartier' => $fetch['idSousQuartier'])), 'quartierField' => $this->afficheSelectQuartier(array('idVille' => $fetch['idVille'], 'idQuartier' => $fetch['idQuartier'])), 'villeField' => $this->afficheSelectVille(array('idPays' => $fetch['idPays'], 'idVille' => $fetch['idVille'])), 'paysField' => $this->afficheSelectPays(array('idPays' => $fetch['idPays'])), 'idRue' => $idRue));
                 }
                 // ************************************************************************************************************************
                 // affichage des dependances liées a la rue:
                 // ************************************************************************************************************************
                 $htmlDependances .= "<h3>Dependances sur les adresses affichées sur le site</h3>";
                 $arrayDependances = $this->getDependancesFrom($idRue, 'idRue');
                 $lienSupprRue = "";
                 if ($arrayDependances['nbDependances'] == 0) {
                     $lienSupprRue = "<a href='" . $this->creerUrl('supprimerRueFromAdminRue', 'adminElementAdresse', array('tableName' => 'rue', 'idRueSuppr' => $idRue)) . "'>Supprimer la rue</a>";
                 }
                 $htmlDependances .= "nombre de dépendances = " . $arrayDependances['nbDependances'] . " {$lienSupprRue}<br>";
                 $tableau = new tableau();
                 $tableau->addValue("adresses", "style='font-weight:bold'");
                 $tableau->addValue("nombre d'evenements associés", "style='font-weight:bold'");
                 foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                     $lienSupprAdresse = "";
                     if ($value['nbEvenementsAssocies'] == 0) {
                         $lienSupprAdresse = "&nbsp;&nbsp;&nbsp;<a href='" . $this->creerUrl('supprimerAdresseFromAdminRue', 'adminAdresseDetail', array('tableName' => 'rue', 'idModification' => $idRue, 'idAdresseSuppr' => $value['idAdresse'])) . "'>Supprimer l'adresse</a>";
                     }
                     $tableau->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . "</a>");
                     $tableau->addValue($value['nbEvenementsAssocies'] . $lienSupprAdresse);
                 }
                 $htmlDependances .= $tableau->createHtmlTableFromArray(2);
                 break;
             case 'sousQuartier':
                 $t->set_filenames(array('modificationElementAdresse' => 'modificationElementAdresseSousQuartier.tpl'));
                 $idSousQuartier = $parametres['id'];
                 $req = "\n                        SELECT sq.nom as nomSousQuartier, sq.idSousQuartier as idSousQuartier,\n                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays\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                        LEFT JOIN pays p ON p.idPays = v.idPays\n                        WHERE sq.idSousQuartier= '" . $idSousQuartier . "'";
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     $fetch = mysql_fetch_assoc($res);
                     $t->assign_vars(array('intitule' => stripslashes($fetch['nomSousQuartier']), 'quartierField' => $this->afficheSelectQuartier(array('idVille' => $fetch['idVille'], 'idQuartier' => $fetch['idQuartier'], 'noSousQuartier' => true)), 'villeField' => $this->afficheSelectVille(array('idPays' => $fetch['idPays'], 'idVille' => $fetch['idVille'], 'noSousQuartier' => true)), 'paysField' => $this->afficheSelectPays(array('idPays' => $fetch['idPays'], 'noSousQuartier' => true)), 'idSousQuartier' => $idSousQuartier));
                 }
                 // ************************************************************************************************************************
                 // affichage des dependances liées au sous quartier
                 // ************************************************************************************************************************
                 $htmlDependances .= "<h3>Dependances sur les sous quartiers</h3>";
                 $arrayDependances = $this->getDependancesFrom($idSousQuartier, 'idSousQuartier');
                 $htmlDependances .= "nombre de dépendances = " . $arrayDependances['nbDependances'] . "<br>";
                 $tableauAdresses = new tableau();
                 $tableauRues = new tableau();
                 $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                 $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");
                 $tableauRues->addValue("rues dépendantes de ce sous quartier", "style='font-weight:bold'");
                 foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                     if (isset($value['idAdresse'])) {
                         $tableauAdresses->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . "</a>");
                         $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                     }
                     if (isset($value['idRue'])) {
                         $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme' => true));
                         $tableauRues->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'rue', 'idModification' => $value['idRue'])) . "'>" . $intituleRue . "</a>");
                     }
                 }
                 $htmlDependances .= $tableauAdresses->createHtmlTableFromArray(2);
                 $htmlDependances .= $tableauRues->createHtmlTableFromArray(1);
                 break;
             case 'quartier':
                 $t->set_filenames(array('modificationElementAdresse' => 'modificationElementAdresseQuartier.tpl'));
                 $idQuartier = $parametres['id'];
                 $req = "\n                            SELECT q.nom as nomQuartier,v.idVille as idVille, p.idPays as idPays\n                            FROM quartier q\n                            LEFT JOIN ville v ON v.idVille = q.idVille\n                            LEFT JOIN pays p ON p.idPays = v.idPays\n                            WHERE q.idQuartier = '" . $idQuartier . "'\n                    ";
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     $fetch = mysql_fetch_assoc($res);
                     $t->assign_vars(array('intitule' => stripslashes($fetch['nomQuartier']), 'villeField' => $this->afficheSelectVille(array('idPays' => $fetch['idPays'], 'idVille' => $fetch['idVille'], 'noSousQuartier' => true, 'noQuartier' => true)), 'paysField' => $this->afficheSelectPays(array('idPays' => $fetch['idPays'], 'noSousQuartier' => true, 'noQuartier' => true)), 'idQuartier' => $idQuartier));
                 }
                 // ************************************************************************************************************************
                 // affichage des dependances liées au  quartier
                 // ************************************************************************************************************************
                 $htmlDependances .= "<h3>Dependances sur quartiers</h3>";
                 $arrayDependances = $this->getDependancesFrom($idQuartier, 'idQuartier');
                 $htmlDependances .= "nombre de dépendances = " . $arrayDependances['nbDependances'] . "<br>";
                 $tableauAdresses = new tableau();
                 $tableauRues = new tableau();
                 $tableauSousQuartiers = new tableau();
                 $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                 $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");
                 $tableauRues->addValue("rues dépendantes de ce quartier", "style='font-weight:bold'");
                 $tableauSousQuartiers->addValue("sous quartiers dépendants de ce quartier", "style='font-weight:bold'");
                 foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                     if (isset($value['idAdresse'])) {
                         $tableauAdresses->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . "</a>");
                         $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                     }
                     if (isset($value['idRue'])) {
                         $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme' => true));
                         $tableauRues->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'rue', 'idModification' => $value['idRue'])) . "'>" . $intituleRue . "</a>");
                     }
                     if (isset($value['idSousQuartier'])) {
                         $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme' => true));
                         $tableauSousQuartiers->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'sousQuartier', 'idModification' => $value['idSousQuartier'])) . "'>" . $intituleSousQuartier . "</a>");
                     }
                 }
                 $htmlDependances .= $tableauAdresses->createHtmlTableFromArray(2);
                 $htmlDependances .= $tableauRues->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauSousQuartiers->createHtmlTableFromArray(1);
                 break;
             case 'ville':
                 $googleMap = new googleMap(array('googleMapKey' => $this->googleMapKey));
                 $jsGoogleMap = "";
                 $jsGoogleMap .= $googleMap->getJsFunctions();
                 $jsGoogleMap .= $googleMap->getJSInitGeoCoder();
                 $jsToExecute = "document.getElementById('formModif').action='" . $this->creerUrl('adminEnregistreModifAdresse', '', $parametres) . "';document.getElementById('formModif').submit();";
                 $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSRetriveCoordonnees(array('nomChampLatitudeRetour' => 'latitude', 'nomChampLongitudeRetour' => 'longitude', 'getAdresseFromElementById' => true, 'jsAdresseValue' => "document.getElementById('intituleVille').value+' '+document.getElementById('pays').options[document.getElementById('pays').selectedIndex].innerHTML", 'jsToExecuteIfOK' => $jsToExecute, 'jsToExecuteIfNoAddressFound' => "document.getElementById('latitude').value='';document.getElementById('longitude').value='';" . $jsToExecute));
                 $jsGoogleMap .= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
                 $t->set_filenames(array('modificationElementAdresse' => 'modificationElementAdresseVille.tpl'));
                 $idVille = $parametres['id'];
                 $req = "\n                            SELECT v.nom as nomVille,v.codepostal as codePostal, p.idPays as idPays,v.longitude as longitude, v.latitude as latitude\n                            FROM ville v\n                            LEFT JOIN pays p ON p.idPays = v.idPays\n                            WHERE v.idVille = '" . $idVille . "'\n                    ";
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     $fetch = mysql_fetch_assoc($res);
                     $t->assign_vars(array('jsGoogleMap' => $jsGoogleMap, 'intitule' => stripslashes($fetch['nomVille']), 'codePostal' => $fetch['codePostal'], 'paysField' => $this->afficheSelectPays(array('idPays' => $fetch['idPays'], 'noSousQuartier' => true, 'noQuartier' => true, 'noVille' => true)), 'latitude' => $fetch['latitude'], 'longitude' => $fetch['longitude'], 'idVille' => $idVille));
                 }
                 // ************************************************************************************************************************
                 // affichage des dependances liées a la ville
                 // ************************************************************************************************************************
                 $htmlDependances .= "<h3>Dependances sur la ville</h3>";
                 $arrayDependances = $this->getDependancesFrom($idVille, 'idVille');
                 $htmlDependances .= "nombre de dépendances = " . $arrayDependances['nbDependances'] . "<br>";
                 $tableauAdresses = new tableau();
                 $tableauRues = new tableau();
                 $tableauSousQuartiers = new tableau();
                 $tableauQuartiers = new tableau();
                 $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                 $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");
                 $tableauRues->addValue("rues dépendantes de cette ville", "style='font-weight:bold'");
                 $tableauSousQuartiers->addValue("sous quartiers dépendants de cette ville", "style='font-weight:bold'");
                 $tableauQuartiers->addValue("quartiers dépendants de cette ville", "style='font-weight:bold'");
                 foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                     if (isset($value['idAdresse'])) {
                         $tableauAdresses->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . "</a>");
                         $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                     }
                     if (isset($value['idRue'])) {
                         $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme' => true));
                         $tableauRues->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'rue', 'idModification' => $value['idRue'])) . "'>" . $intituleRue . "</a>");
                     }
                     if (isset($value['idSousQuartier'])) {
                         $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme' => true));
                         $tableauSousQuartiers->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'sousQuartier', 'idModification' => $value['idSousQuartier'])) . "'>" . $intituleSousQuartier . "</a>");
                     }
                     if (isset($value['idQuartier'])) {
                         $intituleQuartier = $this->getAdresseComplete($value['idQuartier'], 'quartier', array('miseEnForme' => true));
                         $tableauQuartiers->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'quartier', 'idModification' => $value['idQuartier'])) . "'>" . $intituleQuartier . "</a>");
                     }
                 }
                 $htmlDependances .= $tableauAdresses->createHtmlTableFromArray(2);
                 $htmlDependances .= $tableauRues->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauSousQuartiers->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauQuartiers->createHtmlTableFromArray(1);
                 break;
             case 'pays':
                 $t->set_filenames(array('modificationElementAdresse' => 'modificationElementAdressePays.tpl'));
                 $idPays = $parametres['id'];
                 $req = "\n                            SELECT p.nom as nomPays\n                            FROM pays p\n                            WHERE p.idPays = '" . $idPays . "'\n                    ";
                 $res = $this->connexionBdd->requete($req);
                 if (mysql_num_rows($res) == 1) {
                     $fetch = mysql_fetch_assoc($res);
                     $t->assign_vars(array('intitule' => stripslashes($fetch['nomPays']), 'idPays' => $idPays));
                 }
                 // ************************************************************************************************************************
                 // affichage des dependances liées a la ville
                 // ************************************************************************************************************************
                 $htmlDependances .= "<h3>Dependances sur le pays</h3>";
                 $arrayDependances = $this->getDependancesFrom($idPays, 'idPays');
                 $htmlDependances .= "nombre de dépendances = " . $arrayDependances['nbDependances'] . "<br>";
                 $tableauAdresses = new tableau();
                 $tableauRues = new tableau();
                 $tableauSousQuartiers = new tableau();
                 $tableauQuartiers = new tableau();
                 $tableauVilles = new tableau();
                 $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                 $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");
                 $tableauRues->addValue("rues dépendantes de ce pays", "style='font-weight:bold'");
                 $tableauSousQuartiers->addValue("sous quartiers dépendants de ce pays", "style='font-weight:bold'");
                 $tableauQuartiers->addValue("quartiers dépendants de ce pays", "style='font-weight:bold'");
                 $tableauVilles->addValue("villes dépendantes de ce pays", "style='font-weight:bold'");
                 foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                     if (isset($value['idAdresse'])) {
                         $tableauAdresses->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . "</a>");
                         $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                     }
                     if (isset($value['idRue'])) {
                         $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme' => true));
                         $tableauRues->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'rue', 'idModification' => $value['idRue'])) . "'>" . $intituleRue . "</a>");
                     }
                     if (isset($value['idSousQuartier'])) {
                         $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme' => true));
                         $tableauSousQuartiers->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'sousQuartier', 'idModification' => $value['idSousQuartier'])) . "'>" . $intituleSousQuartier . "</a>");
                     }
                     if (isset($value['idQuartier'])) {
                         $intituleQuartier = $this->getAdresseComplete($value['idQuartier'], 'quartier', array('miseEnForme' => true));
                         $tableauQuartiers->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'quartier', 'idModification' => $value['idQuartier'])) . "'>" . $intituleQuartier . "</a>");
                     }
                     if (isset($value['idVille'])) {
                         $intituleVille = $this->getAdresseComplete($value['idVille'], 'ville', array('miseEnForme' => true));
                         $tableauVilles->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'ville', 'idModification' => $value['idVille'])) . "'>" . $intituleVille . "</a>");
                     }
                 }
                 $htmlDependances .= $tableauAdresses->createHtmlTableFromArray(2);
                 $htmlDependances .= $tableauRues->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauSousQuartiers->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauQuartiers->createHtmlTableFromArray(1);
                 $htmlDependances .= $tableauVilles->createHtmlTableFromArray(1);
                 break;
         }
         switch ($parametres['tableName']) {
             case 'ville':
                 // on adapte le bouton modifier pour que la recherche googleMap des coordonnees se lance a la validation du formulaire
                 $typeButtonModifier = "button";
                 $onClickButtonModifier = $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'];
                 break;
             default:
                 $typeButtonModifier = "submit";
                 $onClickButtonModifier = "document.getElementById('formModif').action='" . $this->creerUrl('adminEnregistreModifAdresse', '', $parametres) . "';";
                 break;
         }
         $t->assign_vars(array('typeElement' => $parametres['tableName'], 'typeButtonModifier' => $typeButtonModifier, 'onClickBoutonModifier' => $onClickButtonModifier, 'onClickBoutonRetour' => "location.href='" . $this->creerUrl('', 'adminElementAdresse', array('tableName' => $parametres['tableName'])) . "';"));
         ob_start();
         $t->pparse('modificationElementAdresse');
         $html .= ob_get_contents();
         $html .= "<br><br><h2>Dependances</h2>";
         $html .= "(concernant les adresses, deux evenements différents peuvent afficher la meme adresse , dans ce cas l'adresse est liée a deux groupes d'adresses différents.<br><br>";
         $html .= $htmlDependances;
         ob_end_clean();
         // dans le cas de la rue , on affiche un onglet pour l'historique des noms de rue
         if ($parametres['tableName'] == 'rue') {
             $d = new dateObject();
             $reqVals = "SELECT * FROM historiqueNomsRues WHERE idRue = '" . $parametres['id'] . "'";
             $resVals = $this->connexionBdd->requete($reqVals);
             $valsIdHistoriques = array();
             $valsIdRues = array();
             $valsAnnees = array();
             $valsNomsRues = array();
             $valsCommentaires = array();
             $valsPrefixes = array();
             $i = 0;
             while ($fetchVals = mysql_fetch_assoc($resVals)) {
                 $valsIdHistoriques[$i] = $fetchVals['idHistoriqueNomRue'];
                 $valsIdRues[$i] = $fetchVals['idRue'];
                 $valsAnnees[$i] = $d->toFrench($fetchVals['annee']);
                 $valsNomsRues[$i] = $fetchVals['nomRue'];
                 $valsCommentaires[$i] = $fetchVals['commentaire'];
                 $valPrefixes[$i] = $fetchVals['prefixe'];
                 $i++;
             }
             if ($i == 0) {
                 $valsIdHistoriques[$i] = '';
                 $valsIdRues[$i] = '';
                 $valsAnnees[$i] = '';
                 $valsNomsRues[$i] = '';
                 $valsCommentaires[$i] = '';
                 $valPrefixes[$i] = '';
             }
             $configForm = array("idHistoriqueNomRue" => array("type" => "hidden", "libelle" => "idHistoriqueNomRue", "defaultValues" => $valsIdHistoriques, "error" => "", "default" => ""), "annee" => array("type" => "date", "libelle" => "annee", "defaultValues" => $valsAnnees, "error" => "", "default" => ""), "prefixe" => array("type" => "text", "libelle" => "prefixe", "defaultValues" => $valPrefixes, "error" => "", "default" => ""), "nomRue" => array("type" => "text", "libelle" => "nomRue", "defaultValues" => $valsNomsRues, "error" => "", "default" => ""), "commentaire" => array("type" => "bigText", "libelle" => "commentaire", "defaultValues" => $valsCommentaires, "error" => "", "default" => ""));
             $f = new formGenerator();
             $arrayFormulaireMultiLignes = $f->getFormulaireMultiLignes(array("configForm" => $configForm, "formAction" => $this->creerUrl('enregistreHistoriqueNomsRues', 'adminAdresseDetail', array("tableName" => 'rue', "idModification" => $parametres['id']))));
             $htmlHistoriqueNomRue = $arrayFormulaireMultiLignes['html'];
             $onglets = new ongletObject();
             $onglets->init(0);
             $onglets->setStyleTable("style='margin:0px;padding:0px;'");
             $onglets->setStyleTableEtiquettes("style='margin:0px;padding:0px;'");
             $onglets->addContent("Modifier un élément de rue ", $html);
             $onglets->addContent("Historique du nom de la rue", $htmlHistoriqueNomRue);
             $html = $onglets->getHTML();
             $html .= $arrayFormulaireMultiLignes['jsAfterMultiLigneArray'];
         }
     } else {
         $erreurObj = new objetErreur();
         $erreurObj->ajouter("Vous n'avez pas les droits pour accéder à cette partie du site");
         echo $erreurObj->afficher();
     }
     return $html;
 }
 private function getUserPresentation($userId)
 {
     $infosArray = $this->getArrayInfosFromUtilisateur($userId);
     $avatar = $this->getImageAvatar(array('idUtilisateur' => $userId));
     $html .= "<h1>Profil</h1>";
     $nbParticipations = $this->getNbParticipationsUtilisateur(array('idUtilisateur' => $userId));
     $d = new dateObject();
     $dateCreationCompte = "";
     if ($infosArray['dateCreation'] != '0000-00-00 00:00:00') {
         $dateCreationCompte = " - Date de création du compte : " . $d->toFrenchAffichage($infosArray['dateCreation']) . "<br>";
     }
     $profil = $this->getLibelleProfil(array('idProfil' => $infosArray['idProfil']));
     $villesModereesArray = $this->getArrayVillesModereesPar($userId);
     $villesModerees = "";
     if ($infosArray['idProfil'] == 3) {
         $libelleVillesModerees = array();
         $a = new archiAdresse();
         foreach ($villesModereesArray as $indice => $idVille) {
             $fetchVille = $a->getInfosVille($idVille, array('fieldList' => "v.nom as nom"));
             $libelleVillesModerees[] = $fetchVille['nom'];
         }
         if (count($libelleVillesModerees) > 0) {
             foreach ($libelleVillesModerees as $indice => $nomVille) {
                 $villesModerees .= "<a href='" . $this->urlRacine . "{$nomVille}/'>{$nomVille}</a>,  ";
             }
             $villesModerees = "- Villes modérées : " . pia_substr($villesModerees, 0, -2);
         }
     }
     $urlSiteWeb = "";
     if ($infosArray['urlSiteWeb'] != '') {
         $urlSiteWeb = "Son site : <a href='" . $infosArray['urlSiteWeb'] . "' target='_blank'>" . $infosArray['urlSiteWeb'] . "</a><br>";
     }
     $html .= "\n    \t<div style='width:750px;'>\n    \t\n    \t<div style='float:left;width:150px;'>\n    \t<img src='{$avatar}' border=0 style='padding:10px;'>\n    \t</div>\n    \t<div style='float:left;width:600px;'>\n    \t<b>" . ucfirst($infosArray['nom']) . " " . ucfirst($infosArray['prenom']) . "</b><br>\n    \t\t\t- Nombre de participations : {$nbParticipations} (ajouts et modifications d'images,  d'événements et commentaires en tant qu'utilisateur inscrit)<br>\n    \t\t\t{$dateCreationCompte}\n    \t\t\t- Cette personne à le statut : <b>{$profil}</b> sur archi-strasbourg.org<br>\n    \t\t\t{$villesModerees}\n    \t\t\t{$urlSiteWeb}\n    \t\n    \t\t\t";
     return $html;
 }
 public function majPositionsEvenements($params = array())
 {
     $retour = true;
     $tabTravail = array();
     if (isset($params['idEvenementGroupeAdresse']) && $params['idEvenementGroupeAdresse'] != '' && !isset($params['idNouvelEvenement']) && isset($params['refreshAfterDelete']) && $params['refreshAfterDelete'] == true) {
         // on met a jour les positions apres la suppression d'un evenement sur le groupe d'adresse par exemple
         // donc en fait on ne fait qu'un rafraichissement des positions
         // si l'evenement supprimé etait le dernier du groupe d'adresse , le passage par cette fonction va permettre la suppression des liaisons dans la table positionEvenement , en theorie du dernier evenement qui restait , voir d'autres s'il y a eu un probleme (en principe cela n'arrive pas)
         $tabIdEvenementsLies = $this->getEvenementsLies($params['idEvenementGroupeAdresse'], true);
         // on a recuperer le tableau des positions enregistrées, on peut donc supprimer les positions precedentes,
         $reqDelete = "DELETE FROM positionsEvenements WHERE idEvenementGroupeAdresse = '" . $params['idEvenementGroupeAdresse'] . "'";
         $resDelete = $this->connexionBdd->requete($reqDelete);
         // et inserer les nouvelles positions
         $position = 1;
         foreach ($tabIdEvenementsLies as $indice => $value) {
             $reqPositions = "INSERT INTO positionsEvenements (idEvenementGroupeAdresse, idEvenement, position) VALUES ('" . $params['idEvenementGroupeAdresse'] . "','" . $value['idEvenementAssocie'] . "','" . $position . "') ";
             $resPositions = $this->connexionBdd->requete($reqPositions);
             $position++;
         }
     } elseif (isset($params['idEvenementGroupeAdresse']) && $params['idEvenementGroupeAdresse'] != '' && (isset($params['idNouvelEvenement']) && $params['idNouvelEvenement'] != '' || isset($params['idEvenementModifie']) && $params['idEvenementModifie'] != '')) {
         $effectueMaj = false;
         // dans le cas d'un evenement modifie , on ne fait de mise a jour que si la date de l'evenement a ete changée par rapport a son dernier historique
         //
         if (isset($params['idNouvelEvenement']) && $params['idNouvelEvenement'] != '') {
             $idEvenementConcerne = $params['idNouvelEvenement'];
             $effectueMaj = true;
         } elseif (isset($params['idEvenementModifie']) && $params['idEvenementModifie'] != '') {
             // verification du dernier historique
             $idEvenementConcerne = $params['idEvenementModifie'];
             $reqDernierHistoriqueEvenementModifie = "\n\n\t\t\t\t\t\tSELECT he1.idEvenement as idHistoriqueEvenement, he1.dateDebut as dateDebutDernierHistorique\n\t\t\t\t\t\tFROM evenements he2, evenements he1\n\t\t\t\t\t\tWHERE he1.idEvenement = he2.idEvenement\n\t\t\t\t\t\tAND he1.idEvenement = '" . $idEvenementConcerne . "'\n\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t";
             $resDernierHistoriqueEvenementModifie = $this->connexionBdd->requete($reqDernierHistoriqueEvenementModifie);
             if (mysql_num_rows($resDernierHistoriqueEvenementModifie) == 1) {
                 $fetchDernierHistoriqueEvenementModifie = mysql_fetch_assoc($resDernierHistoriqueEvenementModifie);
                 if (isset($fetchDernierHistoriqueEvenementModifie['idHistoriqueEvenement']) && $fetchDernierHistoriqueEvenementModifie['idHistoriqueEvenement'] != '') {
                     $reqVerifChangementDate = "\n\n\t\t\t\t\t\t\t\tSELECT he1.dateDebut as dateDebutAvantDernier\n\t\t\t\t\t\t\t\tFROM evenements he2, evenements he1\n\t\t\t\t\t\t\t\tWHERE he1.idEvenement = he2.idEvenement\n\t\t\t\t\t\t\t\tAND he1.idEvenement='" . $idEvenementConcerne . "'\n\t\t\t\t\t\t\t\tAND he1.idEvenement<>'" . $fetchDernierHistoriqueEvenementModifie['idHistoriqueEvenement'] . "'\n\t\t\t\t\t\t\t\tAND he2.idEvenement<>'" . $fetchDernierHistoriqueEvenementModifie['idHistoriqueEvenement'] . "'\n\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
                     $resVerifChangementDate = $this->connexionBdd->requete($reqVerifChangementDate);
                     if (mysql_num_rows($resVerifChangementDate) > 0) {
                         $fetchVerifChangementDate = mysql_fetch_assoc($resVerifChangementDate);
                         if ($fetchVerifChangementDate['dateDebutAvantDernier'] != $fetchDernierHistoriqueEvenementModifie['dateDebutDernierHistorique']) {
                             // si dernier historique , date différente
                             $effectueMaj = true;
                             // la date a ete changé, on met a jour les positions
                         } else {
                             // si dernier historique date identique
                             $effectueMaj = false;
                             // pas la peine de mettre a jour les positions
                         }
                     }
                 }
             }
         }
         if ($effectueMaj) {
             // mise a jour apres ajout d'un nouvel evenement sur le groupe d'adresses
             $d = new dateObject();
             $tabIdEvenementsLies = $this->getEvenementsLies($params['idEvenementGroupeAdresse'], true);
             $position = 1;
             $dateNouvelEvenement = "0000-00-00";
             foreach ($tabIdEvenementsLies as $indice => $value) {
                 if ($value['idEvenementAssocie'] != $idEvenementConcerne) {
                     $tabTravail[$position]['idEvenement'] = $value['idEvenementAssocie'];
                     // recuperation des dates des evenements
                     $reqDates = "\n\t\t\t\t\t\t\t\tSELECT h1.idEvenement as idEvenement, h1.dateDebut as dateDebut\n\t\t\t\t\t\t\t\tFROM evenements h2, evenements h1\n\n\t\t\t\t\t\t\t\tWHERE h2.idEvenement = h1.idEvenement\n\t\t\t\t\t\t\t\tAND h1.idEvenement = '" . $value['idEvenementAssocie'] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY h1.idEvenement\n\t\t\t\t\t\t\t\t\t\t";
                     $resDates = $this->connexionBdd->requete($reqDates);
                     $tabTravail[$position]['dateDebut'] = "0000-00-00";
                     if (mysql_num_rows($resDates) > 0) {
                         $fetchDates = mysql_fetch_assoc($resDates);
                         $tabTravail[$position]['dateDebut'] = $fetchDates['dateDebut'];
                     }
                     $position++;
                 } else {
                     $fetchDates = "";
                     $reqDates = "\n\t\t\t\t\t\t\t\tSELECT h1.idEvenement as idEvenement, h1.dateDebut as dateDebut\n\t\t\t\t\t\t\t\tFROM evenements h2, evenements h1\n\n\t\t\t\t\t\t\t\tWHERE h2.idEvenement = h1.idEvenement\n\t\t\t\t\t\t\t\tAND h1.idEvenement = '" . $value['idEvenementAssocie'] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY h1.idEvenement\n\t\t\t\t\t\t\t\t\t\t";
                     $resDates = $this->connexionBdd->requete($reqDates);
                     $fetchDates = mysql_fetch_assoc($resDates);
                     $dateNouvelEvenement = $fetchDates['dateDebut'];
                     if (pia_substr($dateNouvelEvenement, 4, 6) == '-00-00') {
                         $dateNouvelEvenement = pia_substr($dateNouvelEvenement, 0, 4) . "-01-01";
                     }
                 }
             }
             // parcours des dates pour voir ou on va inserer l'evenement
             //echo "dateNouvelEvenement = ".$dateNouvelEvenement."<br>";
             $positionNouvelEvenement = 1;
             if ($dateNouvelEvenement != '0000-00-00') {
                 foreach ($tabTravail as $position => $valueEvenement) {
                     // on transforme la date en date valide et analysable par la fonction de comparaison de dates
                     if (pia_substr($tabTravail[$position]['dateDebut'], 4, 6) == '-00-00') {
                         $tabTravail[$position]['dateDebut'] = pia_substr($tabTravail[$position]['dateDebut'], 0, 4) . "-01-01";
                     }
                     //echo "dateDebut = ".pia_substr($tabTravail[$position]['dateDebut'],4,6)."    ".pia_substr($tabTravail[$position]['dateDebut'],0,4)."      ".$tabTravail[$position]['dateDebut']."<br>";
                     if ($tabTravail[$position]['dateDebut'] != '0000-00-00' && $d->isGreaterThan($dateNouvelEvenement, $tabTravail[$position]['dateDebut'])) {
                         $positionNouvelEvenement = $position + 1;
                     } elseif ($tabTravail[$position]['dateDebut'] == '0000-00-00') {
                         $positionNouvelEvenement = $position + 1;
                     }
                 }
             } else {
                 $positionNouvelEvenement = 1;
             }
             //echo "positionNouvelEvenement = ".$positionNouvelEvenement."<br>";
             // insertion dans un tableau trié
             $nouveauTableau = array();
             $nouvellesPositions = 1;
             $decalageApresInsertion = 0;
             foreach ($tabTravail as $position => $valueEvenement) {
                 if ($position == $positionNouvelEvenement) {
                     $decalageApresInsertion = 1;
                     $nouveauTableau[$position]['idEvenement'] = $idEvenementConcerne;
                 }
                 $nouveauTableau[$position + $decalageApresInsertion]['idEvenement'] = $valueEvenement['idEvenement'];
             }
             if ($positionNouvelEvenement > count($tabTravail)) {
                 // si le nouvel evenement se place en derniere position (le nouvel element n'est donc pas encore dans tabTravail , on le rajoute a la fin du tableau
                 $nouveauTableau[$positionNouvelEvenement]['idEvenement'] = $idEvenementConcerne;
             }
             // mise a jour de la table positionEvenements
             // suppr des valeurs du groupe d'adresse precedentes
             $reqDelete = "DELETE FROM positionsEvenements WHERE idEvenementGroupeAdresse = '" . $params['idEvenementGroupeAdresse'] . "'";
             $resDelete = $this->connexionBdd->requete($reqDelete);
             foreach ($nouveauTableau as $positionFinale => $value) {
                 $reqPositions = "INSERT INTO positionsEvenements (idEvenementGroupeAdresse, idEvenement, position) VALUES ('" . $params['idEvenementGroupeAdresse'] . "','" . $value['idEvenement'] . "','" . $positionFinale . "') ";
                 $resPositions = $this->connexionBdd->requete($reqPositions);
             }
         }
     }
     return $retour;
 }
Example #5
0
<?
	global $aMenu;

	$oFechaHoy = new dateObject();
	$oFechaHoy->setToday();

	$oHoraHoy = new dateTimeObject();
	$oHoraHoy->setToday();
	
	$lang = getParam('lang', 'es');
	  $cParam = $_SERVER['QUERY_STRING'];
	  if ( $cParam )
	  {
		$cParam = eregi_replace ("lang=[^&]*&" , "" , $cParam .'&' );
		if ($cParam && substr($cParam, -1) != '&' ) $cParam .= '&';
	  }
	  $cLinkEs = $PHP_SELF . '?'.  $cParam . 'lang=es' ;
	  $cLinkEn = $PHP_SELF . '?'.  $cParam . 'lang=en' ; 
	  $cLinkPt = $PHP_SELF . '?'.  $cParam . 'lang=pt' ; 
	
	//$cUrlEs = getParam('lang', 'es');
?>

<div id="body">
	<div class="barra_entorno">
		<div style="padding:0 10px">
			<div><h1><a href="?">Buenos Aires</a></h1></div>
			<div><h2>turismo</h2></div>
			<div><h3><?php 
echo mostrar_termino('LBL_Titulo_Portal');
?>
    public function afficherFromArray($parametres = array())
    {
        $html = "";
        $t = new Template($this->cheminTemplates);
        $t->assign_vars(array('idFormObject' => $this->identifiantObject));
        if (isset($parametres['onClickButtonSubmit'])) {
            $t->assign_vars(array('onClickButtonSubmit' => $parametres['onClickButtonSubmit']));
        }
        $formName = "";
        if (isset($parametres['formName'])) {
            $t->assign_vars(array('formName' => $parametres['formName']));
            $formName = $parametres['formName'];
        } else {
            $t->assign_vars(array('formName' => 'defaultFormName'));
            $formName = "defaultFormName";
        }
        if (isset($parametres['styleEntete'])) {
            $t->assign_vars(array('styleEntete' => $parametres['styleEntete']));
        }
        if (isset($parametres['styleField'])) {
            $t->assign_vars(array('styleField' => $parametres['styleField']));
        }
        if (isset($parametres['htmlSubmitButton'])) {
            $t->assign_vars(array('htmlSubmitButton' => $parametres['htmlSubmitButton']));
        }
        if (isset($parametres['submitButtonId'])) {
            $t->assign_vars(array('submitButtonId' => $parametres['submitButtonId']));
        }
        if (isset($parametres['onClickSubmitButton'])) {
            $t->assign_vars(array('onClickSubmitButton' => $parametres['onClickSubmitButton']));
        }
        if (isset($parametres['codeHtmlSubmitButton'])) {
            $t->assign_vars(array('codeHtmlSubmitButton' => $parametres['codeHtmlSubmitButton']));
        }
        if (isset($parametres['styleError'])) {
            $t->assign_vars(array('styleError' => $parametres['styleError']));
        }
        if (isset($parametres['templateFileName'])) {
            $t->set_filenames(array('formulaire' => $parametres['templateFileName']));
        } else {
            $t->set_filenames(array('formulaire' => 'formGeneric.tpl'));
        }
        if (isset($parametres['titrePage'])) {
            $t->assign_vars(array('titrePage' => $parametres['titrePage']));
        }
        if (isset($parametres['formAction'])) {
            $t->assign_vars(array('formAction' => $parametres['formAction']));
        }
        if (isset($parametres['codeHtmlBeforeSubmitButton'])) {
            $t->assign_vars(array('codeHtmlBeforeSubmitButton' => $parametres['codeHtmlBeforeSubmitButton']));
        }
        if (isset($parametres['codeHtmlInFormAfterFields'])) {
            $t->assign_vars(array('codeHtmlInFormAfterFields' => $parametres['codeHtmlInFormAfterFields']));
        }
        if (isset($parametres['codeHtmlInFormBeforeFields'])) {
            $t->assign_vars(array('codeHtmlInFormBeforeFields' => $parametres['codeHtmlInFormBeforeFields']));
        }
        if (isset($parametres['codeHtmlAfterSubmitButton'])) {
            $t->assign_vars(array('codeHtmlAfterSubmitButton' => $parametres['codeHtmlAfterSubmitButton']));
        }
        if (isset($parametres['submitButtonValue'])) {
            $t->assign_vars(array('formButtonName' => $parametres['submitButtonValue']));
        } else {
            $t->assign_vars(array('formButtonName' => _("Valider")));
        }
        if (isset($parametres['htmlCodeEnteteFields'])) {
            $t->assign_vars(array('htmlCodeEnteteFields' => $parametres['htmlCodeEnteteFields']));
        }
        if (isset($parametres['htmlCodeFields'])) {
            $t->assign_vars(array('htmlCodeFields' => $parametres['htmlCodeFields']));
        }
        if (isset($parametres['tableHtmlCode'])) {
            $t->assign_vars(array('tableHtmlCode' => $parametres['tableHtmlCode']));
        }
        if (isset($parametres['complementHTML'])) {
            $t->assign_vars(array('complementHTML' => $parametres['complementHTML']));
        }
        if (isset($parametres['captcha'])) {
            $t->assign_block_vars('captcha', array());
            $t->assign_vars(array('captcha' => '<script src="https://www.google.com/recaptcha/api.js" async defer></script>
						<div class="g-recaptcha" data-sitekey="6LeXTOASAAAAACl6GZmAT8QSrIj8yBrErlQozfWE"></div>'));
            if (isset($parametres['captcha-error'])) {
                $t->assign_vars(array('captcha-error' => _('Captcha incorrect !')));
            }
        }
        if (isset($parametres['fields'])) {
            foreach ($parametres['fields'] as $fieldName => $proprietes) {
                if (isset($proprietes['forceValueTo'])) {
                    $value = $proprietes['forceValueTo'];
                } elseif (isset($this->variablesPost[$fieldName])) {
                    $value = $this->variablesPost[$fieldName];
                } else {
                    $value = $proprietes['default'];
                }
                if (!isset($proprietes['htmlCode2'])) {
                    $proprietes['htmlCode2'] = '';
                }
                if (!isset($proprietes['htmlCodeBeforeField'])) {
                    $proprietes['htmlCodeBeforeField'] = '';
                }
                switch ($proprietes['type']) {
                    case 'text':
                        $champ = $proprietes['htmlCodeBeforeField'] . "<input type='text' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        break;
                    case 'date':
                        $d = new dateObject();
                        $datePicker = "";
                        if (isset($proprietes['withDatePicker']) && $proprietes['withDatePicker'] == true) {
                            $datePicker = "<INPUT TYPE='button' name='datePick_{$fieldName}' value='Pick' onclick=\"" . $d->getJsCallToDatePicker(array('toElementDestination' => 'document.' . $formName . '.' . $fieldName)) . "\">";
                        }
                        $champ = $proprietes['htmlCodeBeforeField'] . "<input type='text' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" " . $proprietes['htmlCode'] . ">{$datePicker}" . $proprietes['htmlCode2'];
                        // a rajouter => le date picker
                        break;
                    case 'file':
                        $champ = $proprietes['htmlCodeBeforeField'] . "<input type='file' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        break;
                    case 'password':
                        $champ = $proprietes['htmlCodeBeforeField'] . "<input type='password' name='" . $fieldName . "' value='" . $value . "' " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        break;
                    case 'email':
                        $champ = $proprietes['htmlCodeBeforeField'] . "<input type='text' name='" . $fieldName . "' id='" . $fieldName . "' value='" . stripslashes($value) . "' " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        break;
                    case 'bigText':
                        $champ = $proprietes['htmlCodeBeforeField'] . "<textarea name='" . $fieldName . "' id='" . $fieldName . "' " . $proprietes['htmlCode'] . ">" . stripslashes($value) . "</textarea>" . $proprietes['htmlCode2'];
                        break;
                    case 'tinyMCE':
                        // utiliser la fonction tinyMCE.triggerSave(true, true) pour transferer le contenu de tinyMCE vers le champs textarea pour pouvoir recuperer le contenu en js
                        $this->tinyMCEInit(array('fieldName' => $fieldName));
                        $f = new formGenerator();
                        $champ = $proprietes['htmlCodeBeforeField'] . "<div id='tinyMCE'><textarea name='" . $fieldName . "' id='" . $fieldName . "' " . $proprietes['htmlCode'] . ">" . stripslashes($value) . "</textarea></div>" . $proprietes['htmlCode2'];
                        break;
                    case 'hidden':
                        $champ = "<input type='hidden' name='" . $fieldName . "' id='" . $fieldName . "' value='" . stripslashes($value) . "' " . $proprietes['htmlCode'] . ">";
                        break;
                    case 'captcha':
                        // modif par fabien le 13/04/2011 pour un captcha plus fort (on a été piraté sur le captcha à plusieurs reprise ce jour)
                        $champ = $proprietes['htmlCodeBeforeField'] . "<img id=\"captcha\" src=\"includes/securimage/securimage_show.php?sid=" . md5(uniqid(time())) . "\" alt=\"CAPTCHA Image\" valign='middle' />&nbsp;Recopiez les caractères de l'image<br> <a href=\"#\" onclick=\"document.getElementById('captcha').src = 'includes/securimage/securimage_show.php?sid=' + Math.random(); return false\">Recharger</a><br><input type='text' name='" . $fieldName . "' value=''>";
                        //echo md5(uniqid(time()))
                        break;
                        /*case 'optionsList':
                              $champs=$fieldName;
                              if (is_array($proprietes['elementList']))
                              {
                                  foreach ($proprietes['elementList'] as $indice => $val)
                                  {
                                  
                                  }
                              
                              }
                          
                              break;*/
                    /*case 'optionsList':
                          $champs=$fieldName;
                          if (is_array($proprietes['elementList']))
                          {
                              foreach ($proprietes['elementList'] as $indice => $val)
                              {
                              
                              }
                          
                          }
                      
                          break;*/
                    case 'simpleList':
                        $champ = "<select name='" . $fieldName . "' id='" . $fieldName . "'>";
                        if (!isset($proprietes['noOptionAucun']) || $proprietes['noOptionAucun'] == false) {
                            $champ .= "<option value='0'>Aucun</option>";
                        }
                        if (is_array($proprietes['elementList'])) {
                            foreach ($proprietes['elementList'] as $indice => $val) {
                                $selected = '';
                                if (isset($proprietes['valueSubmited']) && $proprietes['valueSubmited'] != '0' && $proprietes['valueSubmited'] == $val['value'] || (!isset($proprietes['valueSubmited']) || $proprietes['valueSubmited'] == '0') && isset($this->variablesPost[$fieldName]) && $this->variablesPost[$fieldName] == $val['value']) {
                                    $selected = 'selected';
                                }
                                $champ .= "<option value=\"" . $val['value'] . "\" " . $selected . ">" . $val['libelle'] . "</option>";
                            }
                        }
                        $champ .= "</select>";
                        break;
                    case 'multipleList':
                        $champ = "<select name='" . $fieldName . "[]' multiple>";
                        if (!isset($proprietes['noOptionAucun']) || $proprietes['noOptionAucun'] != true) {
                            $champ .= "<option value='0'>Aucun</option>";
                        }
                        if (is_array($proprietes['elementList'])) {
                            foreach ($proprietes['elementList'] as $indice => $val) {
                                $selected = '';
                                if (isset($proprietes['valueSubmited']) && $proprietes['valueSubmited'] != '0' && $proprietes['valueSubmited'] == $val['value'] || (!isset($proprietes['valueSubmited']) || $proprietes['valueSubmited'] == '0') && isset($this->variablesPost[$fieldName]) && in_array($val['value'], $this->variablesPost[$fieldName])) {
                                    $selected = 'selected';
                                }
                                $champ .= "<option value=\"" . $val['value'] . "\" " . $selected . ">" . $val['libelle'] . "</option>";
                            }
                        }
                        $champ .= "</select>" . $proprietes['htmlCode2'];
                        break;
                    case 'checkbox':
                        $champ = "";
                        if (isset($proprietes['elementList']) && is_array($proprietes['elementList'])) {
                            foreach ($proprietes['elementList'] as $indice => $val) {
                                $selected = '';
                                if (isset($proprietes['valueSubmited']) && $proprietes['valueSubmited'] != '0' && $proprietes['valueSubmited'] == $val['value'] || (!isset($proprietes['valueSubmited']) || $proprietes['valueSubmited'] == '0') && isset($this->variablesPost[$fieldName]) && in_array($val['value'], $this->variablesPost[$fieldName])) {
                                    $selected = 'checked';
                                }
                                if (isset($proprietes['separator'])) {
                                    $separator = $proprietes['separator'];
                                } else {
                                    $separator = "<br>";
                                }
                                $champ .= "<input type='checkbox' name='" . $fieldName . "[]' id='" . $fieldName . $indice . "' value='" . $val['value'] . "' " . $selected . ">" . $val['libelle'] . $separator;
                            }
                        } else {
                            $champ = "<input type='checkbox' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        }
                        break;
                    case 'singleCheckBox':
                        $checked = '';
                        if (isset($proprietes['isChecked']) && ($proprietes['isChecked'] == true || $proprietes['isChecked'] == 1)) {
                            $checked = 'checked';
                        }
                        $champ = "<input type='checkbox' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" {$checked} " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        break;
                    case 'radio':
                        $champ = "";
                        if (isset($proprietes['elementList']) && is_array($proprietes['elementList'])) {
                            foreach ($proprietes['elementList'] as $indice => $val) {
                                $selected = '';
                                if (isset($proprietes['valueSubmited']) && $proprietes['valueSubmited'] != '0' && $proprietes['valueSubmited'] == $val['value'] || (!isset($proprietes['valueSubmited']) || $proprietes['valueSubmited'] == '0') && isset($this->variablesPost[$fieldName]) && in_array($val['value'], $this->variablesPost[$fieldName])) {
                                    $selected = 'checked';
                                }
                                if (isset($proprietes['separator'])) {
                                    $separator = $proprietes['separator'];
                                } else {
                                    $separator = "<br>";
                                }
                                $champ .= "<input type='radio' name='" . $fieldName . "' id='" . $fieldName . $indice . "' value='" . $val['value'] . "' " . $selected . ">" . $val['libelle'] . $separator;
                            }
                        } else {
                            $champ = "<input type='radio' name='" . $fieldName . "' id='" . $fieldName . "' value=\"" . stripslashes($value) . "\" " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        }
                        break;
                    case 'uploadImage':
                        $champ = "<input type='file' name='" . $fieldName . "' id='" . $fieldName . "' value=\"\" " . $proprietes['htmlCode'] . ">" . $proprietes['htmlCode2'];
                        if (isset($proprietes['physicalImagePathForTestExists']) && $proprietes['physicalImagePathForTestExists'] != '') {
                            if ($value != '' && file_exists($proprietes['physicalImagePathForTestExists'] . $value)) {
                                $champ .= "<img src='" . $proprietes['urlImagePathForDisplayInForm'] . $value . "' border=0>";
                            }
                        }
                        break;
                    default:
                        $champ = "";
                        echo "champ {$fieldName} défini partiellement,  framework::formGenerator";
                        break;
                }
                if ($proprietes['type'] == 'hidden') {
                    $t->assign_block_vars('hiddenFields', array('field' => $champ));
                } else {
                    $t->assign_block_vars('fields', array('name' => $proprietes['libelle'], 'field' => $champ, 'error' => $proprietes['error']));
                }
            }
        }
        ob_start();
        $t->pparse('formulaire');
        $html = ob_get_contents();
        ob_end_clean();
        return $html;
    }
 /**
  * Fonction permettant a l'administrateur de visualiser l'historique de l'image
  *
  * @param int $idImage ID de l'image
  *
  * @return string HTML
  * */
 public function afficheHistoriqueImage($idImage = 0)
 {
     $u = new archiUtilisateur();
     $html = "";
     $req = "SELECT idHistoriqueImage, dateUpload, idImage, idUtilisateur, description, dateCliche, isDateClicheEnviron, idSource FROM historiqueImage WHERE idImage='" . $idImage . "'";
     $res = $this->connexionBdd->requete($req);
     $t = new tableau();
     $d = new dateObject();
     $bb = new bbCodeObject();
     $s = new archiSource();
     $authentification = new archiAuthentification();
     $droitsObject = new droitsObject();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $isRegenerationPossible = false;
     if ($droitsObject->isAuthorized('image_regenerer', $idProfilUtilisateur)) {
         $isRegenerationPossible = true;
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         //$html.="<img src='".$this->getUrlImage("moyen").$fetch['dateUpload']."/".$fetch['idHistoriqueImage'].".jpg"."'><br>";
         $t->addValue("<img src='" . $this->getUrlImage("moyen") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg" . "'>", "valign=top");
         $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($fetch['idUtilisateur'], array('listeChamps' => 'nom, prenom'));
         $libelleUtilisateur = $arrayInfosUtilisateur['nom'] . " " . $arrayInfosUtilisateur['prenom'];
         $dateCliche = " - ";
         if ($fetch['dateCliche'] != '0000-00-00') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "Environ ";
             }
             $dateCliche = $environ . $d->toFrenchAffichage($fetch['dateCliche']);
         }
         $libelleSource = $s->getSourceLibelle($fetch['idSource']);
         if ($libelleSource != '') {
             $libelleSource = "<tr><td><b>source : </b>" . $libelleSource . "</td></tr>";
         }
         $description = "";
         if ($fetch['description'] != '') {
             $description = "<tr><td><b>description :</b><br>" . $bb->convertToDisplay(array('text' => $fetch['description'])) . "</td></tr>";
         }
         $detailHistoriqueImage = "<table><tr><td>de <a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $fetch['idUtilisateur'])) . "'>" . $libelleUtilisateur . "</a> (le " . $d->toFrenchAffichage($fetch['dateUpload']) . ")</td></tr><tr><td><b>date cliché : </b>" . $dateCliche . "</td></tr>" . $description . "" . $libelleSource . "</table>";
         $t->addValue($detailHistoriqueImage);
         if ($isRegenerationPossible) {
             $reqRegenerationAvailable = "SELECT idHistoriqueImage ,  idImage ,  cheminImageUploadee FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetch['idHistoriqueImage'] . "' AND idImage='" . $idImage . "'";
             $resRegenerationAvailable = $this->connexionBdd->requete($reqRegenerationAvailable);
             if (mysql_num_rows($resRegenerationAvailable) > 0) {
                 $fetchRegenerationAvailable = mysql_fetch_assoc($resRegenerationAvailable);
                 if (file_exists($this->getCheminPhysique() . "/images/uploadMultiple/" . $fetchRegenerationAvailable['cheminImageUploadee'])) {
                     $t->addValue("<input type='button' name='regenere' value='régéréner les photos à partir de la source' onclick=\"location.href='" . $this->creerUrl('regenereImageFromUploadDir', 'imageDetail', array('archiIdHistoriqueImage' => $fetch['idHistoriqueImage'], 'archiIdImage' => $idImage)) . "';\">");
                 } else {
                     $t->addValue("Enregistrement trouvé,  mais fichier source de régénération inexistant.");
                 }
             } else {
                 $t->addValue("Pas de régénération possible");
             }
         }
     }
     // En principe cette variable represente un idEvenement,  a changer pour l'id evenementGroupeAdresse
     if (isset($this->variablesGet['archiRetourIdValue']) && $this->variablesGet['archiRetourIdValue'] != '') {
         $adresse = new archiAdresse();
         $evenement = new archiEvenement();
         $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
         $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
     }
     $html .= "<h2>Historique de l'image {$idImage}</h2>";
     if ($isRegenerationPossible) {
         $html .= $t->createHtmlTableFromArray(3, '', '', '');
     } else {
         $html .= $t->createHtmlTableFromArray(2, '', '', '');
     }
     return $html;
 }
 /**
  * Modifier une actualité
  * 
  * @param array $params Paramètres
  * 
  * @return void
  * */
 public function modifierActualite($params = array())
 {
     if (isset($this->variablesPost['idActualite']) && $this->variablesPost['idActualite'] != '') {
         $authentification = new archiAuthentification();
         $idActualite = $this->variablesPost['idActualite'];
         $d = new dateObject();
         $desactive = 0;
         if (isset($this->variablesPost['desactive']) && $this->variablesPost['desactive'] == '1') {
             $desactive = 1;
         }
         $envoi = 0;
         if (isset($this->variablesPost['envoiMailHebdomadaire']) && $this->variablesPost['envoiMailHebdomadaire'] == '1') {
             $envoi = 1;
         }
         $req = "UPDATE actualites SET \n                titre = \"" . mysql_real_escape_string($this->variablesPost['titre']) . "\",\n                sousTitre = \"" . mysql_real_escape_string($this->variablesPost['sousTitre']) . "\",\n                `date` = \"" . $d->toBdd(mysql_real_escape_string($this->variablesPost['date'])) . "\",\n                texte = \"" . mysql_real_escape_string($this->variablesPost['texte']) . "\",\n                urlFichier = \"" . mysql_real_escape_string($this->variablesPost['urlFichier']) . "\",\n                fichierPdf = \"" . mysql_real_escape_string($this->variablesPost['fichierPdf']) . "\",\n                desactive = '" . $desactive . "',\n                texteMailHebdomadaire = \"" . mysql_real_escape_string($this->variablesPost['texteMailHebdomadaire']) . "\",\n                envoiMailHebdomadaire = '" . $envoi . "'\n                WHERE idActualite = '" . $idActualite . "'\n            ";
         $res = $this->connexionBdd->requete($req);
         //photoIllustration = \"".mysql_real_escape_string($this->variablesPost['photoIllustration'])."\",
         $f = new fileObject();
         if (!file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/")) {
             mkdir($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/");
         }
         // gestion de l'upload
         if (isset($_FILES['photoIllustration']) && !$_FILES['photoIllustration']['error']) {
             if (file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg")) {
                 unlink($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg");
             }
             $f->handleUploadedFileSimpleMoveTo(array('inputFileName' => 'photoIllustration', 'redimensionneImageConfig' => array(200 => array('destination' => $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg"))));
             // on met a jour la bdd , meme si dans les prochaines actu cela ne sert a rien de garder le champs , vu le fonctionnement, on le garde pour les anciennes actus
             $reqIllustration = "UPDATE actualites SET photoIllustration='illustration200.jpg' WHERE idActualite='" . $idActualite . "' ";
             $resIllustration = $this->connexionBdd->requete($reqIllustration);
         }
         // on verifie dans le repertoire d'uploadMultiple pour voir s'il y a des images a transferer
         if (file_exists($this->getCheminPhysique() . "images/uploadMultipleActualites/")) {
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/uploadMultipleActualites/"));
             $arrayFiles = $f->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/uploadMultipleActualites/");
             foreach ($arrayFiles as $indice => $fichier) {
                 // on deplace tous les fichiers dans le repertoire de l'actu , ceux qui auront le meme nom seront ecrasés.
                 if ($fichier != '.' && $fichier != '..') {
                     rename($this->getCheminPhysique() . "images/uploadMultipleActualites/" . $fichier, $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/" . $f->removeSpecialCharFromFileName($fichier));
                 }
             }
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/actualites/{$idActualite}/"));
         }
         if ($this->variablesPost['urlFichier'] == '') {
             // evite de creer un fichier pdf pour rien, si urlFichier est renseigné, c'est que c'est une redirection vers une page , pas du texte saisi dans la news
             // creation automatique du fichier pdf
             $pdfObject = new pdfObject();
             $titre = "<div align=center><h2>" . stripslashes($this->variablesPost['titre']) . "</h2></div><br>";
             $sousTitre = "<div align=center><h3>" . stripslashes($this->variablesPost['sousTitre']) . "</h3></div><br>";
             $texte = stripslashes($this->variablesPost['texte']);
             $pdfObject->setContent(stripslashes($titre . $sousTitre . $texte));
             $pdfObject->writeToFile($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf");
             if (file_exists($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf")) {
                 $reqUpdatePdf = "UPDATE actualites SET fichierPdf='versionPdf.pdf' WHERE idActualite = '{$idActualite}'";
                 $resUpdatePdf = $this->connexionBdd->requete($reqUpdatePdf);
             }
         }
         if (isset($this->variablesGet['previsualisationMail']) && $this->variablesGet['previsualisationMail'] == '1') {
             $preview = isset($_GET["preview"]) ? "&preview=1" : "";
             $testMail = isset($_GET["testMail"]) ? "&testMail=1" : "";
             echo "<script>location.href='" . $this->getUrlRacine() . "/script/cronMailsNouvellesAdresses.php?modePrevisualisationAdmin=1&idActualite={$idActualite}&idUtilisateur=" . $authentification->getIdUtilisateur() . $preview . $testMail . "';</script>";
             //$this->creerUrl('','', array("modePrevisualisationAdmin"=>1,"idActualite"=>$idActualite,"idUtilisateur"=>$authentification->getIdUtilisateur()))
         }
     }
 }
 * */
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
ini_set('max_execution_time', 0);
require_once 'PEAR.php';
require_once 'HTML/BBCodeParser.php';
//include('/home/pia/archiv2/includes/framework/config.class.php');
//$borneMin = "NOW()";
//$borneMax = "SUBDATE(NOW(),  INTERVAL 7 DAY)";
//$borneMin = "SUBDATE(NOW(), INTERVAL 7 DAY)";
//$borneMax = "SUBDATE(NOW(),  INTERVAL 14 DAY)";
require_once __DIR__ . '/../includes/framework/config.class.php';
require_once __DIR__ . '/../modules/archi/includes/archiAdresse.class.php';
require_once __DIR__ . '/../modules/archi/includes/archiEvenement.class.php';
$config = new ArchiConfig();
$d = new dateObject();
$mail = new mailObject();
$idPeriode = "";
if (isset($argv[1]) && $argv[1] != '' || isset($_GET['idPeriode']) && $_GET['idPeriode'] != '') {
    if (isset($argv[1]) && $argv[1] != '' && $argv[1] != '0' && $argv[1] != '1') {
        $idPeriode = trim($argv[1]);
    }
    if (isset($_GET['idPeriode']) && $_GET['idPeriode'] != '' && $_GET['idPeriode'] != '0' && $_GET['idPeriode'] != '1') {
        $idPeriode = $_GET['idPeriode'];
    }
    // recuperation des mails
    // on envoi aussi au personnes qui ont une periode immediate 0 ou 1,  car s'ils y a des messages regroupés en attente pour eux ,  ca veut dire qu'ils on changé la periode entre temps (cela sert de purge)
    $req = "\n    SELECT m.idMail as idMail, m.dateHeure as dateHeure, m.idUtilisateur as idUtilisateur,  m.contenu as contenu, m.idTypeMailRegroupement as idTypeMailRegroupement\n    FROM mailsEnvoiMailsRegroupes m\n    LEFT JOIN utilisateur u ON u.idUtilisateur = m.idUtilisateur\n    WHERE\n        (u.idPeriodeEnvoiMailsRegroupes = '" . $idPeriode . "'\n        OR u.idPeriodeEnvoiMailsRegroupes='1'\n        OR u.idPeriodeEnvoiMailsRegroupes='0')\n\n    ORDER BY m.dateHeure DESC\n    ";
    //AND u.idUtilisateur='30'
    $res = $config->connexionBdd->requete($req);
    $arrayRegroupementTypeMail = array();