Construye la expresion
771028
def result(self):
         
        
        field = re.sub(REGEX_CLEANER, '', self.field)

        try:
            value = float(self.value)
        except TypeError:
        	value = "(%s)" % ( "', '".join(self.value) )
        except ValueError:
            value = str(self.value) \
                .replace("\\", r"\\") \
                .replace('"', r'\"') \
                .replace("'", r"\'")

            value = "'%s'" % value
        
        res = "%s %s %s" % (field, self.operator, value)

        if self.conjunction:
            res = "%s %s" % (self.conjunction, res)
        
        return res
242321
public function write($path = null)
  {
    $image = $this->applyFilters();

    if ($this->extension == self::IMAGE_TYPE_JPG) {
      if ($path) {
        imagejpeg($image, $path, $this->jpgQuality);
      } else if ($this->path) {
        imagejpeg($image, $this->path, $this->jpgQuality);
      } else {
        throw new \Exception('Aucun fichier de sortie configuré.');
      }
    } else if ($this->extension == self::IMAGE_TYPE_PNG) {
      if ($path) {
        imagepng($image, $path, $this->pngCompression);
      } else if ($this->path) {
        imagepng($image, $this->path, $this->pngCompression);
      } else {
        throw new \Exception('Aucun fichier de sortie configuré.');
      }
    } else {
      throw new \Exception('Impossible de générer l\'image : extension non supportée');
    }
  }
1356909
public function ajouter()
    {
        $newIdPersonne=0;
        $formulaire = new formGenerator();
        if (isset($this->variablesPost['submit'])) {
            $modeAffichage='';
            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']!='') {
                $modeAffichage = $this->variablesGet['modeAffichage'];
            }


            switch ($modeAffichage) {
                case 'nouveauDossier':
                case "modifEvenement":
                    $tabForm = array(
                    'prenom'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'text'),
                    'nom'        => array('default'=> '',  'value' => '',  'required'=>true, 'error'=>'', 'type'=>'text'),
                    'description'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'text'),
                    'dateNaissance'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'date'),
                    'dateDeces'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'date'),
                    'metier'    => array('default'=> 'aucune' ,  'value' => '',  'required'=>false , 'error'=>'', 'type'=>'numeric',  'checkExist'=>
                                    array('table'=> 'metier',  'primaryKey'=> 'idMetier')));

                    break;

                default:
                    $tabForm = array(
                    'prenom'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'text'),
                    'nom'        => array('default'=> '',  'value' => '',  'required'=>true, 'error'=>'', 'type'=>'text'),
                    'description'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'text'),
                    'nouveauMetier'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'text'),
                    'dateNaissance'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'date'),
                    'dateDeces'    => array('default'=> '',  'value' => '',  'required'=>false, 'error'=>'', 'type'=>'date'),
                    'metier'    => array('default'=> 'aucune' ,  'value' => '',  'required'=>false , 'error'=>'', 'type'=>'numeric',  'checkExist'=>
                                    array('table'=> 'metier',  'primaryKey'=> 'idMetier')));

                    break;
            }
            $erreur = $formulaire->getArrayFromPost($tabForm);

            if (count($erreur) === 0) {
                $prenom = mysql_escape_string($tabForm['prenom']['value']);
                $nom    = mysql_escape_string($tabForm['nom']['value']);
                $description   = isset($_POST['descriptionPerson'])?mysql_escape_string($_POST['descriptionPerson']):mysql_escape_string(htmlspecialchars($tabForm['description']['value']));
                $dateNaissance = $this->date->toBdd($this->date->convertYears($tabForm['dateNaissance']['value']));
                $dateDeces     = $this->date->toBdd($this->date->convertYears($tabForm['dateDeces']['value']));

                /*if (!empty($tabForm['nouveauMetier']['value']))
                {
                    // nouveau metier
                    $nomMetier = mysql_escape_string($tabForm['nouveauMetier']['value']);
                    $sql = "SELECT idMetier FROM metier WHERE nom='".$nomMetier."' LIMIT 1";
                    $rep = $this->connexionBdd->requete($sql);
                    if (mysql_num_rows($rep) === 1)
                    {
                        $res = mysql_fetch_object($rep);
                        $idMetier = $res->idMetier;
                        echo "métier existe";
                    }
                    else
                    {
                        $sql = "INSERT INTO metier (nom) VALUES ('".$nomMetier."')";
                        $this->connexionBdd->requete($sql);
                        $idMetier = mysql_insert_id();
                        echo 'métier existe pas';
                    }
                }
                else if (empty($tabForm['metier']['error']) AND !empty($tabForm['metier']['value']))
                {*/
                    // valeur du select
                    $idMetier      = $tabForm['metier']['value'];
                    //echo 'métier select';
                /*}
                else
                {
                    // choix par défaut
                    $idMetier = 1;
                    echo 'défaut';
                }*/
                $sql ="INSERT INTO personne (prenom,  nom,  dateNaissance,  dateDeces,  description,  idMetier ) VALUES
                    ('".$prenom."', '".$nom."', '".$dateNaissance."', '".$dateDeces."', '".$description."', ".$idMetier.")";


                $this->connexionBdd->requete($sql);

                $newIdPersonne = mysql_insert_id();
            } else {
                $this->erreurs->ajouter($tabForm);
            }
            $this->erreurs->ajouter($tabForm);
        }

        return $newIdPersonne;
    }
897899
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 = "
                            SELECT r.nom as nomRue, r.prefixe as prefixeRue,sq.idSousQuartier as idSousQuartier,
                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays
                            FROM rue r
                            LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier
                            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                            LEFT JOIN ville v ON v.idVille = q.idVille
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            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 = "
                        SELECT sq.nom as nomSousQuartier, sq.idSousQuartier as idSousQuartier,
                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays
                        FROM sousQuartier sq
                        LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                        LEFT JOIN ville v ON v.idVille = q.idVille
                        LEFT JOIN pays p ON p.idPays = v.idPays
                        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 = "
                            SELECT q.nom as nomQuartier,v.idVille as idVille, p.idPays as idPays
                            FROM quartier q
                            LEFT JOIN ville v ON v.idVille = q.idVille
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            WHERE q.idQuartier = '".$idQuartier."'
                    ";
                    $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 = "
                            SELECT v.nom as nomVille,v.codepostal as codePostal, p.idPays as idPays,v.longitude as longitude, v.latitude as latitude
                            FROM ville v
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            WHERE v.idVille = '".$idVille."'
                    ";
                    $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 = "
                            SELECT p.nom as nomPays
                            FROM pays p
                            WHERE p.idPays = '".$idPays."'
                    ";
                    $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;
    }
290239
public function ajouter()
    {
        $html = '';
        $erreur = array();
        $tabForm = array();
        $ajoutOk = false;
        $aAuthentification = new archiAuthentification();
        $formulaire = new formGenerator();
        if ($aAuthentification->estConnecte() == 0) {
            echo 'utilisateur non connecté';
            $this->erreurs->ajouter('Vous n\'êtes pas connecté !');
        } elseif (isset($this->variablesPost['ajoutSousEvenement'])) {
            $tabForm=$this->getEvenementFields('nouveauDossier');

            $erreur = $formulaire->getArrayFromPost($tabForm);

            if (count($erreur) == 0) {
                $this->connexionBdd->getLock(array('evenements'));

                //***************
                //**  GESTION DES VARIABLES
                //**

                $titre              = mysql_escape_string($tabForm['titre']['value']);
                $description        = mysql_escape_string($tabForm['description']['value']);
                $dateDebut          = $this->date->toBdd($this->date->convertYears($tabForm['dateDebut']['value']));
                $isDateDebutEnviron = $tabForm['isDateDebutEnviron']['value'];
                $dateFin            = $this->date->toBdd($this->date->convertYears($tabForm['dateFin']['value']));
                $idSource=0;
                if ($tabForm['source']['value']!='') {
                    $idSource    = $tabForm['source']['value'];
                }
                $idUtilisateur   = $aAuthentification->getIdUtilisateur();
                $idTypeStructure = $tabForm['typeStructure']['value'];
                $idTypeEvenement = $tabForm['typeEvenement']['value'];
                $nbEtages = $tabForm['nbEtages']['value'];


                $ISMH           = $tabForm['ISMH']['value'];
                $MH             = $tabForm['MH']['value'];


                //**************
                //**  VERIFICATION DOUBLON
                //**

                $sqlVerificationDoublon = "
						SELECT he1.idEvenement
						FROM evenements he2, evenements he1
						RIGHT JOIN _evenementEvenement ee ON ee.idEvenement = '".$this->variablesPost['evenementGroupeAdresse']."'
						WHERE he2.idEvenement = he1.idEvenement
						AND he1.titre='".$titre."'
						AND he1.idEvenement = ee.idEvenementAssocie
						AND he1.description = \"".$description."\"
						AND he1.dateDebut = \"".$dateDebut."\"
						AND he1.isDateDebutEnviron = '".$isDateDebutEnviron."'
						AND he1.dateFin = \"".$dateFin."\"
						AND he1.idSource = '".$idSource."'
						AND he1.idTypeStructure='".$idTypeStructure."'
						AND he1.idTypeEvenement='".$idTypeEvenement."'
						GROUP BY he1.idEvenement, he1.idEvenement
						";

                $res = $this->connexionBdd->requete($sqlVerificationDoublon);

                if (mysql_num_rows($res) != 0) {
                    $this->erreurs->ajouter(_("Exactement le même enregistrement existe déjà !"));

                    // on défini les informations pour pouvoir tout de même afficher l'événement
                    $rep         = mysql_fetch_object($res);
                    $idEvenement = $rep->idEvenement;
                    $ajoutOk     = true;
                } else {
                    //***************
                    //**  ENREGISTREMENT
                    //**
                    //$idEvenement = $this->getNewIdEvenement();
                    // si c'est un événement sans événements parents
                    // c'est qu'il faut créer un evenement vide
                    // ayant pour type d'événement un groupe d'adresses
                    // sur lequel on va donc lier les adresses

                    if (!isset($this->variablesPost['evenementGroupeAdresse']) || $this->variablesPost['evenementGroupeAdresse']=='') {//(empty($tabForm['evenements']['value']))
                    // creation de l'evenement parent groupe d'adresse
                        $sql = "INSERT INTO evenements (titre, description, dateDebut, dateFin, idSource, idUtilisateur, idTypeStructure, idTypeEvenement,dateCreationEvenement)
								VALUES ('', '', '', '', ".$idSource.", ".$idUtilisateur.", 0, '".$this->getIdTypeEvenementGroupeAdresse()."', now())";

                        $this->connexionBdd->requete($sql);
                        $tabForm['evenements']['value'][] = $idEvenement;

                        $idEvenement = $this->connexionBdd->getLastId();
                        $idSousEvenement =$idEvenement+ 1; // id du sous evenements lié à l'evenement groupe d'adresses


                        // on lie les adresses a l'evenement groupe d'adresse
                        if (!empty($tabForm['adresses']['value'])) {
                            $sqlEvenementAdresse = "INSERT INTO _adresseEvenement (idAdresse,idEvenement) VALUES ";
                            foreach (array_unique($tabForm['adresses']['value']) as $idAdresse) {
                                $sqlEvenementAdresse .= '('.$idAdresse.', '.$idEvenement.'),';
                            }
                            $sqlEvenementAdresse = pia_substr($sqlEvenementAdresse, 0, -1);
                            $this->connexionBdd->requete($sqlEvenementAdresse);
                        }
                    } else {
                        $idSousEvenement = $idEvenement; // si on est dans le cas d'un ajout de sous evenement simple , sans creation de groupe d'adresse, on recupere l'id d'un nouvel element virtuel (getNewIdEVenement)
                    }



                    // debug
                    if ($nbEtages=='') {
                        $nbEtages=0;
                    }

                    // ajout de l'evenement fils
                    $sqlHistoriqueEvenement =
                    "INSERT INTO evenements (
								titre,
								description,
								dateDebut,
								dateFin,
								idSource,
								idUtilisateur,
								idTypeStructure,
								idTypeEvenement,
								dateCreationEvenement ,
								nbEtages,
								ISMH,
								MH,
								isDateDebutEnviron
							)

							VALUES (
								\"".$titre."\",
								\"".$description."\",
								'".$dateDebut."',
								'".$dateFin."',
								 ".$idSource.",
								 ".$idUtilisateur.",
						 		'".$idTypeStructure."',
				 				'".$idTypeEvenement."',
		 						now(),
		 						".$nbEtages.",
	 							'".$ISMH."',
	 							'".$MH."',
	 							'".$isDateDebutEnviron."'
 														)";
                    $this->connexionBdd->requete($sqlHistoriqueEvenement);


                    $idSousEvenement=$this->connexionBdd->getLastId();


                    if (!empty($tabForm['courant']['value'])) {
                        $sqlEvenementCourantArchitectural = "INSERT INTO _evenementCourantArchitectural (idCourantArchitectural, idEvenement) VALUES ";
                        foreach (array_unique($tabForm['courant']['value']) as $idCourant) {
                            $sqlEvenementCourantArchitectural .= '('.$idCourant.', '.$idSousEvenement.'),';
                        }
                        $sqlEvenementCourantArchitectural = pia_substr($sqlEvenementCourantArchitectural, 0, -1);

                        $this->connexionBdd->requete($sqlEvenementCourantArchitectural);
                    }

                    if (!empty($tabForm['personnes']['value'])) {
                        $sqlEvenementPersonne = "INSERT INTO _evenementPersonne (idPersonne, idEvenement) VALUES ";
                        foreach (array_unique($tabForm['personnes']['value']) as $idPersonne) {
                            $sqlEvenementPersonne .= '('.$idPersonne.', '.$idSousEvenement.'),';
                        }
                        $sqlEvenementPersonne = pia_substr($sqlEvenementPersonne, 0, -1);
                        $this->connexionBdd->requete($sqlEvenementPersonne);
                    }


                    //TODO : Gestion du tableau de source
                    /*
					 if(!empty($tabForm['source']['value'])){
					$sqlEvenementSource = "INSERT INTO _evenementSource (idSource, idEvenement) VALUES ";
					foreach ( array_unique($tabForm['source']['value']) AS $idSource)
					{
					$sqlEvenementSource .= '('.$idSource.', '.$idSousEvenement.'),';
					}
					$sqlEvenementSource = pia_substr( $sqlEvenementSource, 0, -1);

					$this->connexionBdd->requete($sqlEvenementSource);
					}
					*/




                    // ajout de l'evenement enfant à l'evenement groupe d'adresse

                    if (!isset($this->variablesPost['evenementGroupeAdresse']) || $this->variablesPost['evenementGroupeAdresse']=='') {//(empty($tabForm['evenements']['value']))
                    // cas liaison entre le nouvel evenement groupe d'adresse et le nouvel evenement fils // ajout d'un evenement
                        $sqlEvenementEvenement = "
								insert into _evenementEvenement (idEvenement,idEvenementAssocie)
								values ('".$idEvenement."','".$idSousEvenement."');
										";
                        //debug($sqlEvenementEvenement);
                        $this->connexionBdd->requete($sqlEvenementEvenement);
                    } else {
                        // cas liaison entre l'element groupe d'adresse precisé dans $tabForm['evenementGroupeAdresse'] et le nouvel evenement fils // ajout d'un sous evenement
                        $sqlEvenementEvenement = "
								insert into _evenementEvenement (idEvenement,idEvenementAssocie)
								values ('".$this->variablesPost['evenementGroupeAdresse']."','".$idSousEvenement."')
										";
                        //debug($sqlEvenementEvenement);
                        $this->connexionBdd->requete($sqlEvenementEvenement);
                    }

                    $ajoutOk = true;
                }

                // libération de la table
                $this->connexionBdd->freeLock(array('evenements'));
            }
        }

        if ($ajoutOk === true) {
            if (isset($idSousEvenement)) {
                $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($idSousEvenement);

                // d'abord on classe les evenements (les positions précédentes sont conservees)
                $this->majPositionsEvenements(array('idEvenementGroupeAdresse'=>$idEvenementGroupeAdresse,'idNouvelEvenement'=>$idSousEvenement));

                $mail = new mailObject();
                $adresse = new archiAdresse();
                $reqAdresses = $adresse->getIdAdressesFromIdEvenement(array('idEvenement'=>$idSousEvenement));

                $resAdresses = $this->connexionBdd->requete($reqAdresses);
                $arrayVilles=array();
                $arrayAdresses = array();
                while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) {
                    $arrayVilles[] = $adresse->getIdVilleFrom($fetchAdresses['idAdresse'], 'idAdresse');
                    $arrayAdresses[] = $fetchAdresses['idAdresse'];
                }

                $arrayVilles = array_unique($arrayVilles);
                $arrayAdresses = array_unique($arrayAdresses);

                if ($idPerson=archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                    header("Location: ".$this->creerUrl('', '', array('archiAffichage'=>'evenementListe', 'selection'=>"personne", 'id'=>$idPerson), false, false));
                }

                // ************************************************************************************************************************************************
                // envoi d'un mail a l'auteur de l'adresse
                // ************************************************************************************************************************************************
                $utilisateur = new archiUtilisateur();
                $arrayUtilisateurs = $utilisateur->getCreatorsFromAdresseFrom($idSousEvenement, 'idEvenement');

                $intituleAdresse = $adresse->getIntituleAdresseFrom($idSousEvenement, 'idEvenement');
                foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) {
                    if ($idUtilisateurAdresse != $aAuthentification->getIdUtilisateur()) {
                        $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse);
                        if ($infosUtilisateur['alerteAdresses']=='1' && $infosUtilisateur['compteActif']=='1' && $infosUtilisateur['idProfil']!='4') {
                            $messageDebut = "Un utilisateur a ajouté un événement sur une adresse dont vous êtes l'auteur.";
                            $messageDebut.= "Pour vous rendre sur l'événement : <br>";
                            $messageDebut.="<a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$arrayAdresses[0],'archiIdEvenementGroupeAdresse'=>$idEvenementGroupeAdresse))."'>".$intituleAdresse."</a><br>";
                            $messageFin= $this->getMessageDesabonnerAlerteMail();

                            if ($utilisateur->isMailEnvoiImmediat($idUtilisateurAdresse)) {
                                $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Mise a jour d\'un événement d\'une adresse dont vous êtes l\'auteur.', $messageDebut.$messageFin, true);
                            } else {
                                $utilisateur->ajouteMailEnvoiRegroupes(array('contenu'=>$messageDebut,'idDestinataire'=>$idUtilisateurAdresse,'idTypeMailRegroupement'=>10));
                            }
                        }
                    }
                }
                // ************************************************************************************************************************************************

                // ************************************************************************************************************************************************
                // envoi au administrateurs qui sont en mode alerteAdresse
                // ************************************************************************************************************************************************

                $message = "";
                $message .= "Un nouvel événement a été ajouté sur l'adresse suivante : <br>";
                $message.="<a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$arrayAdresses[0],'archiIdEvenementGroupeAdresse'=>$idEvenementGroupeAdresse))."'>".$adresse->getIntituleAdresseFrom($idSousEvenement, 'idEvenement')."</a>";

                $mail->sendMailToAdministrators($mail->getSiteMail(), "Un nouvel événement a été ajouté - ".$intituleAdresse, $message, " AND alerteAdresses='1' ", true);
                $utilisateur->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu'=>$message,'idTypeMailRegroupement'=>10,'criteres'=>" and alerteAdresses='1' "));
                // ************************************************************************************************************************************************

                // *************************************************************************************************************************************************************
                // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere
                $u = new archiUtilisateur();


                $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere"=>" AND alerteAdresses='1' "));
                if (count($arrayListeModerateurs)>0) {
                    foreach ($arrayListeModerateurs as $indice => $idModerateur) {
                        if ($aAuthentification->getIdUtilisateur()!=$idModerateur) {
                            if ($u->isMailEnvoiImmediat($idModerateur)) {
                                $mailModerateur = $u->getMailUtilisateur($idModerateur);
                                $mail->sendMail($mail->getSiteMail(), $mailModerateur, "Un nouvel événement a été ajouté - ".$intituleAdresse, $message, true);
                            } else {
                                $u->ajouteMailEnvoiRegroupes(array('contenu'=>$message,'idDestinataire'=>$idModerateur,'idTypeMailRegroupement'=>10));
                            }
                        }
                    }
                }

                // *************************************************************************************************************************************************************

                if ($idPerson=archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                    header("Location: ".$this->creerUrl('', '', array('archiAffichage'=>'evenementListe', 'selection'=>"personne", 'id'=>$idPerson), false, false));
                } else {
                    $adresse = new archiAdresse();
                    $idGroupeAdresse = $this->getParent($idSousEvenement);
                    $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($idGroupeAdresse);

                    $url= $this->creerUrl(
                        '',
                        '',
                        array(
                                'archiAffichage'=>'adresseDetail',
                                "archiIdAdresse"=>$idAdresse,
                                "archiIdEvenementGroupeAdresse"=>$idGroupeAdresse
                        )
                    );
                        header("Location: ".htmlspecialchars_decode($url));
                }
            }
        } else {
            $html .= $this->afficheFormulaire($tabForm);
        }

        return $html;
    }
208531
public function init()
    {
        if ( $this->lat0 == 0 ) {
            $this->lat0 = 90; //$this->lat0 ca
        }

        /* Place parameters in static storage for common use
          ------------------------------------------------- */
        $this->temp = $this->b / $this->a;
        $this->es = 1.0 - pow( $this->temp, 2 ); // devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles 
        $this->e = sqrt( $this->es );
        $this->e0 = Common::e0fn( $this->es );
        $this->e1 = Common::e1fn( $this->es );
        $this->e2 = Common::e2fn( $this->es );
        $this->e3 = Common::e3fn( $this->es );
        $this->ml0 = Common::mlfn( $this->e0, $this->e1, $this->e2, $this->e3, $this->lat0 ); //si que des zeros le calcul ne se fait pas
        //if (!$this->ml0) {$this->ml0=0;}
    }
868042
public void addParameter(String parameterName, String parameterExpression) {
		
		// Si le nom du parametre est null
		if(parameterName == null || parameterName.trim().length() == 0) return;
		
		// Si l'expression est vide
		if(parameterExpression == null || parameterExpression.trim().length() == 0) return;
		
		// On ajoute le Parametre
		this.parameters.put(parameterName, parameterExpression);
	}
27403
public function write($content, $append = false)
  {
    if (!$append) {
      //On réécrit tout le contenu
      $succes = file_put_contents($this->path, $content, LOCK_EX);
      if (!$succes) {
        throw new \Exception('Impossible d\'écrire dans le fichier ' . $this->path . ' : Vérifier les droits d\'accès');
      }
    } else {
      //On ajoute juste une nouvelle ligne
      $succes = file_put_contents($this->path, $content, FILE_APPEND | LOCK_EX);
      if (!$succes) {
        throw new \Exception('Impossible d\'écrire dans le fichier ' . $this->path . ' : Vérifier les droits d\'accès');
      }
    }
  }
1008288
public function displayHelp()
    {
        printf("%s\n", $this->getUsage());
        printf("%s\n", $this->getDescription());


        // Les options non incluses dans un groupe
        if (count(self::$arr_opt)) {
            foreach (self::$arr_opt as $arg) {
                printf("%s\n", rtrim($arg));
            }
        }

        // Options faisant partie d’un groupe
        if (count(self::$arr_group)) {
            foreach (self::$arr_group as $group) {
                if (count($group->args)) {
                    print("\n\n");

                    if ($group->name) {
                        $name = $group->name;

                        if ($this->obj_color->label || $this->obj_color->bold) {
                            $name = new Ansi($name);

                            if ($this->obj_color->label) {
                                $name->fg($this->obj_color->label);
                            }

                            if ($this->obj_color->bold) {
                                $name->bold;
                            }
                        }

                        printf("%s\n", $name);
                    }
                    foreach ($group->args as $arg) {
                        printf("%s\n", rtrim($arg));
                    }
                }
            }
        }

        exit();
    }
720998
@Override
	public void processValidation(Object entity) {
		
		// Si on ne doit pas evaluer cette annotation
		if(!this.isProcessable()) {
			
			// On sort
			return;
		}
		
		// Le Type
		ValidatorExpressionType type = this.getType();
		
		// Si le type est null
		if(type == null) type = ValidatorExpressionType.JPQL;
		
		// Si le type est HQL|JPQL|EJBQL
		if(type.equals(ValidatorExpressionType.HQL) || type.equals(ValidatorExpressionType.JPQL) || type.equals(ValidatorExpressionType.EJBQL)) {
			
			// On construit la requete
			Query query = this.buildQuery(entity);
			
			// Execution
			List<Object> result = query.getResultList();
			
			// Si la liste est vide
			if(result == null || result.size() == 0) throw new DAOValidationException(getMessage());
		}
	}
1017015
def lisFichierLexique(self, filepath):
        
        orig = int(filepath.endswith("ext.la"))
        lignes = lignesFichier(filepath)
        for ligne in lignes:
            self.parse_lemme(ligne, orig)
1144853
def preprocess_french(trans, fr_nlp, remove_brackets_content=True):
    

    if remove_brackets_content:
        trans = pangloss.remove_content_in_brackets(trans, "[]")
    # Not sure why I have to split and rejoin, but that fixes a Spacy token
    # error.
    trans = fr_nlp(" ".join(trans.split()[:]))
    #trans = fr_nlp(trans)
    trans = " ".join([token.lower_ for token in trans if not token.is_punct])

    return trans
1183287
function rel2absSeg(jPath,ind) {
        
        var seg = jPath.getSeg(ind),
        letter = seg.pathSegTypeAsLetter.toLowerCase(),
        args,ref;
        
        if (seg.pathSegTypeAsLetter !== letter) return; //déjà en absolu
        
        args = [ind,letter.toUpperCase()];
        ref = jPath.getCurPt(ind);
        
        if (letter === 'h') args.push(ref.x+seg.x);
        else if (letter === 'v') args.push(ref.y+seg.y);
        else if (letter === "m") args.push(seg.x,seg.y);
        else if (letter !== "z") {
            
            args.push(ref.x+seg.x,ref.y+seg.y);
            
            switch (letter) {
                case 'c' : args.push(ref.x+seg.x1,ref.y+seg.y1,ref.x+seg.x2,ref.y+seg.y2); break;
                case 'q' : args.push(ref.x+seg.x1,ref.y+seg.y1); break;
                case 'a' : args.push(seg.r1,seg.r2,seg.angle,seg.largArcFlag,seg.sweepFlag); break;
                case 's' : args.push(ref.x+seg.x2,ref.y+seg.y2); break;
            }
        }
        
        jPath.replaceSeg.apply(jPath,args);
    }
918904
public function afficherDetail($idAdresse = 0, $idEvenementGroupeAdresse = 0)
    {
        // attention s'il y a plusieurs evenement distinct (pas associes entre eux) reliés a l'adresse on les affichera a la suite
        if (isset($_GET["archiIdAdresse"])) {
            $address=$this->getArrayAdresseFromIdAdresse($_GET["archiIdAdresse"]);
        }

        $reqTitre = "
				SELECT he1.titre as titre
				FROM _adresseEvenement ae
				LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement
				LEFT JOIN evenements he1 ON he1.idEvenement = ee.idEvenementAssocie
				LEFT JOIN evenements he2 ON he2.idEvenement = he1.idEvenement
				WHERE he1.titre!=''
				AND ae.idAdresse = '".$idAdresse."'
				AND he1.idTypeEvenement <>'6'
				GROUP BY he1.idEvenement
				ORDER BY he1.dateDebut
				LIMIT 1

						";
        $resTitre = $this->connexionBdd->requete($reqTitre);
        if (mysql_num_rows($resTitre)==1) {
            $fetchTitre = mysql_fetch_assoc($resTitre);
            $titre = stripslashes($fetchTitre['titre']);
            if (trim($fetchTitre['titre'])=='') {
                $noTitreDetected=true;
                $titre='';
            }
        }


        //    }
        $html="<div class='fb-like right' data-send='false' data-layout='button_count' data-show-faces='true' data-action='recommend'></div>
				<a href='https://twitter.com/share' class='twitter-share-button right' data-via='ArchiStrasbourg' data-lang='fr' data-related='ArchiStrasbourg'>Tweeter</a>
				<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>";
        $html.="<h2>";
        $e=new archiEvenement();
        $archiIdEvenementGroupeAdresse=isset($_GET['archiIdEvenementGroupeAdresse'])?$_GET['archiIdEvenementGroupeAdresse']:$e->getIdEvenementGroupeAdresseFromIdEvenement($_GET["archiIdEvenement"]);
        $titre=$intituleAdresse = $this->getIntituleAdresseFrom($archiIdEvenementGroupeAdresse, "idEvenementGroupeAdresse", array("afficheTitreSiTitreSinonRien"=>true, "noHTML"=>true));
        if (isset($titre) && !empty($titre)) {
            if (isset($_GET['archiAffichage']) && $_GET['archiAffichage']=='adresseDetail') {
                $html.="<span itemprop='name'>";
            }
            $html.=$titre;
            if (isset($_GET['archiAffichage']) && $_GET['archiAffichage']=='adresseDetail') {
                $html.="</span>";
            }
            if (!empty($address["nomRue"])) {
                $html.="&nbsp;-&nbsp;";
            }
        }
        if (isset($address)) {
            if (isset($_GET['archiAffichage']) && $_GET['archiAffichage']=='adresseDetail') {
                $html.="<span itemprop='address' itemscope itemtype='http://schema.org/PostalAddress'><span itemprop='streetAddress'>";
            }
            if ($address["numero"]." " != 0) {
                $html.=$address["numero"];
                if (isset($address['nomIndicatif'])) {
                    $html.=$address["nomIndicatif"];
                }
                $html.=' ';
            }
            $html.=$address["prefixeRue"]." ".$address["nomRue"];
            if (isset($_GET['archiAffichage']) && $_GET['archiAffichage']=='adresseDetail') {
                $html.="</span>
						<meta itemprop='addressLocality' content='".$address["nomVille"]."'/>
								<meta itemprop='addressCountry' content='".$address["nomPays"]."'/>
										</span>";
            }
        }
        $html.="</h2>";

        $evenement = new archiEvenement();
        // si le groupe d'adresse est precisé dans l'url , on ne va afficher que celui ci
        if (isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse']!='') {
            $retourEvenement = $evenement->afficher($this->variablesGet['archiIdEvenementGroupeAdresse'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse
            $html.=$retourEvenement['html'];
            $html.=     $this->getFormComment($this->variablesGet['archiIdEvenementGroupeAdresse'], $this->getCommentairesFields());
            $html.=$this->getListeCommentaires($this->variablesGet['archiIdEvenementGroupeAdresse']);
        } elseif ($idEvenementGroupeAdresse!='' && $idEvenementGroupeAdresse !='0') {
            $retourEvenement = $evenement->afficher($idEvenementGroupeAdresse, '', null, array());
            $html.=$retourEvenement['html'];

            $html.=$this->getFormComment($idEvenementGroupeAdresse, $this->getCommentairesFields());
            $html.=$this->getListeCommentaires($idEvenementGroupeAdresse);
        } else {
            $resEvenements=$this->getIdEvenementsFromAdresse($idAdresse); //c'est l'evenement groupe d'adresse qui est relié a l'idAdresse donc on recupere un idEvenementGroupeAdresse en fait

            if (mysql_num_rows($resEvenements)==1) {
            // un seul evenement groupe d'adresse correspond a l'adresse cliquée
                $fetchEvenements = mysql_fetch_assoc($resEvenements);
                $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse
                $html.=$retourEvenement['html'];

                $html.=$this->getFormComment($fetchEvenements['idEvenement'], $this->getCommentairesFields('evenement'));
                $html.=$this->getListeCommentaires($fetchEvenements['idEvenement']);
            } else {
                // il y a plusieurs evenements groupes d'adresses qui correspondent a la meme adresse
                // on n'affiche que les evenements qui concernent la recherche
                // archiIdEvenementGroupeAdresse , correspond au groupe d'adresse de l'adresse resultat de la recherche
                if (isset($this->variablesGet['recherche_motcle'])) {
                // on refait une recherche sur les evenements concernés par l'adresse correspondant a plusieurs evenements groupe adresse

                    $req = "
							SELECT ee.idEvenement as idEvenementGroupeAdresse, he1.idEvenement as idEvenement
							FROM evenements he2, evenements he1
							RIGHT JOIN _adresseEvenement ae ON ae.idAdresse = '".$idAdresse."'
									RIGHT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement
									WHERE he2.idEvenement = he1.idEvenement
									AND he1.idEvenement = ee.idEvenementAssocie
									AND CONCAT_WS('',lower(he1.titre),lower(he1.description)) like \"%".strtolower($this->variablesGet['recherche_motcle'])."%\"
											GROUP BY he1.idEvenement
											";

                    $res = $this->connexionBdd->requete($req);

                    while ($fetch = mysql_fetch_assoc($res)) {
                        $retourEvenement = $evenement->afficher($fetch['idEvenementGroupeAdresse'], '', null, array(), array()); // cette fonction va afficher les evenements liés au groupe d'adresse
                        $html.=$retourEvenement['html'];
                    }
                } else {
                    $nbGroupesAdressesAffiches = 0;
                    while ($fetchEvenements = mysql_fetch_assoc($resEvenements)) {
                        $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array()); // cette fonction va afficher les evenements liés au groupe d'adresse
                        $html.=$retourEvenement['html'];
                        $nbGroupesAdressesAffiches+=count($retourEvenement['listeGroupeAdressesAffichees']);
                        if (isset($retourEvenement['listeGroupeAdressesAffichees'][0])) {
                            $groupeAdresse = $retourEvenement['listeGroupeAdressesAffichees'][0];
                        }
                    }

                    if ($nbGroupesAdressesAffiches==1) {
                        $html.=$this->getFormComment($groupeAdresse, $this->getCommentairesFields(), '');
                        $html.=$this->getListeCommentaires($groupeAdresse);
                    }
                }
            }
        }
        // popup pour la description de la source
        $s = new archiSource();
        $html.=$s->getPopupDescriptionSource();

        return $html;
    }
891993
public String getDescription() {
        if (fullDescription == null) {
            if (description == null || isExtensionListInDescription()) {
                fullDescription =
                      description == null ? "(" : description + " (";    // Construit la description a partir des extentions.
                Enumeration<String> extensions = filters.keys();
                if (extensions != null) {
                    fullDescription += "." + extensions.nextElement();
                    while (extensions.hasMoreElements()) {
                        fullDescription += ", ." + extensions.nextElement();
                    }
                }
                fullDescription += ")";
            } else {
                fullDescription = description;
            }
        }
        return fullDescription;
    }
98653
public function afficheAjoutAdressesMultiple($idEvenementGroupeAdresse = 0)
    {
        $html="";
        $t=new Template('modules/archi/templates/');
        $t->set_filenames((array('ajoutAdressesMultiple'=>'nouveauDossier.tpl')));



        // initialisation de l'objet googlemap pour la recuperation des coordonnees
        $paramsGoogleMap = array('googleMapKey'=>$this->googleMapKey);

        $googleMap = new googleMap($paramsGoogleMap);

        $html.= $googleMap->getJsFunctions();
        $html.= $googleMap->getJSInitGeoCoder();

        /*$jsToExecute="document.getElementById('formAjoutDossier').action='".$this->creerUrl('enregistreGroupeAdresses','',array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse))."';testAdresseValideAndSubmit('formAjoutDossier');";

		$arrayJsCoordonneesFromGoogleMap = $googleMap->getJSRetriveCoordonnees(array(
				'nomChampLatitudeRetour'=>'latitude',
				'nomChampLongitudeRetour'=>'longitude',
				'getAdresseFromElementById'=>true,
				'jsAdresseValue'=>"document.getElementById('numero0').value+' '+document.getElementById('rue0txt').value+' '+document.getElementById('villetxt').value",
				'jsToExecuteIfOK'=>$jsToExecute,
				'jsToExecuteIfNoAddressFound'=>"document.getElementById('latitude').value='';document.getElementById('longitude').value='';".$jsToExecute
		));

		$html.= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
		*/

        // recapitulatif de(s) l'adresse(s) deja liee(s)
        $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
        $t->assign_vars(array('recapitulatifAdresse'=>$this->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));

        // affichage du block d'adresses
        $t->assign_block_vars('isNotAjoutSousEvenement', array());

        // recuperation des adresses de l'evenement groupe d'adresse
        $resAdresses = $this->getAdressesFromEvenementGroupeAdresses($idEvenementGroupeAdresse);




        $authentification = new archiAuthentification();

        if ($authentification->estAdmin()) {
            $t->assign_vars(array('displayQuartiers'=>'table-row'));
            $t->assign_vars(array('displaySousQuartiers'=>'table-row'));
        } else {
            $t->assign_vars(array('displayQuartiers'=>'none'));
            $t->assign_vars(array('displaySousQuartiers'=>'none'));
        }



        // parcours des adresses recuperées de la base de données pour voir si certaines viennent d'autres quartier , ville ou sousquartier ==> si c'est le cas il faudra gerer l'affichage plusieurs formulaire , un par groupe de sousquartier identiques
        if (mysql_num_rows($resAdresses)>0) {
            mysql_data_seek($resAdresses, 0);
        }

        $arrayVilles        =array();
        $arrayQuartiers     =array();
        $arraySousQuartiers =array();

        $i=0;
        while ($fetchAdressesVerif = mysql_fetch_assoc($resAdresses)) {
            $arrayVilles[]=$fetchAdressesVerif['idVille'];
            $arrayQuartiers[]=$fetchAdressesVerif['idQuartier'];
            $arraySousQuartiers[]=$fetchAdressesVerif['idSousQuartier'];

            // on en profite pour recuperer les coordonnées longitudes et latitudes
            if ($i==0) {
                $longitude = $fetchAdressesVerif['longitude'];
                $latitude = $fetchAdressesVerif['latitude'];
                // on les renseigne dans le formulaire
                $t->assign_vars(array('longitude'=>$longitude,'latitude'=>$latitude));
            }

            $i++;
        }

        $arrayVilles   = array_unique($arrayVilles);
        $arrayQuartiers = array_unique($arrayQuartiers);
        $arraySousQuartiers = array_unique($arraySousQuartiers);
        if (count($arrayVilles)>1 || count($arrayQuartiers)>1 || count($arraySousQuartiers)>1) {
            echo "Attention il y a des adresses qui ne font pas partie du même quartier.<br>";
            // affichage de plusieurs formulaires pour chaque adresse de rue qui n'appartient pas au meme ensemble
            // a faire ?? ou limiter les groupes d'adresses au adresses appartenant à la meme rue
        } else {
            // toutes les adresses appartiennent au meme quartier, sousQuartier,ville
            // on reprend le premier enregistrement de la requete pour chercher les infos ville, quartier, sousquartier a assigner au formulaire
            if (mysql_num_rows($resAdresses)>0) {
                mysql_data_seek($resAdresses, 0);
            }
            $fetchInfosAdresse = mysql_fetch_assoc($resAdresses);

            // l'adresse concerne t elle une rue, un quartier , un sous quartier, une ville ...
            // pour l'instant on considere que cela concerne une rue avec son numero
            if ($fetchInfosAdresse['idRue']!='0') {
            // recherche de la ville, du quartier et sous quartier

                $infosNomsAdresse   = $this->getAdresseComplete($fetchInfosAdresse['idRue'], 'rue');
                $infosIds           = $this->getArrayAdresseFrom($fetchInfosAdresse['idRue'], 'rue');

                $t->assign_vars(array(
                        'ville'=>$infosIds['ville'],
                        'villetxt'=>$infosNomsAdresse['ville']
                ));

                // assignation du quartier
                $resQuartiers=$this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '".$infosIds['ville']."' order by nom");
                while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                    $selected="";
                    if ($infosIds['quartier']==$fetchQuartiers['idQuartier']) {
                        $selected = " selected";
                    }

                    if ($fetchQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array(
                                'nom'=>$fetchQuartiers['nom'],
                                'id'=>$fetchQuartiers['idQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }

                $t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value,'listeSousQuartier')"));
                // assignation du sousQuartier
                $resSousQuartiers=$this->connexionBdd->requete("SELECT idSousQuartier,nom FROM sousQuartier WHERE idQuartier = '".$infosIds['quartier']."' order by nom");
                while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                    $selected="";
                    if ($infosIds['sousQuartier']==$fetchSousQuartiers['idSousQuartier']) {
                        $selected=" selected";
                    }

                    if ($fetchSousQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array(
                                'nom'=>$fetchSousQuartiers['nom'],
                                'id'=>$fetchSousQuartiers['idSousQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }
            } elseif ($fetchInfosAdresse['idSousQuartier']!='0') {
            // recherche de la ville, du quartier et sous quartier

                $infosNomsAdresse   = $this->getAdresseComplete($fetchInfosAdresse['idSousQuartier'], 'sousQuartier');
                $infosIds           = $this->getArrayAdresseFrom($fetchInfosAdresse['idSousQuartier'], 'sousQuartier');

                $t->assign_vars(array(
                        'ville'=>$infosIds['ville'],
                        'villetxt'=>$infosNomsAdresse['ville']
                ));

                // assignation du quartier
                $resQuartiers=$this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '".$infosIds['ville']."' order by nom");
                while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                    $selected="";
                    if ($infosIds['quartier']==$fetchQuartiers['idQuartier']) {
                        $selected = " selected";
                    }

                    if ($fetchQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array(
                                'nom'=>$fetchQuartiers['nom'],
                                'id'=>$fetchQuartiers['idQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }

                $t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value,'listeSousQuartier')"));
                // assignation du sousQuartier
                $resSousQuartiers=$this->connexionBdd->requete("SELECT idSousQuartier,nom FROM sousQuartier WHERE idQuartier = '".$infosIds['quartier']."' order by nom");
                while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                    $selected="";
                    if ($infosIds['sousQuartier']==$fetchSousQuartiers['idSousQuartier']) {
                        $selected=" selected";
                    }

                    if ($fetchSousQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array(
                                'nom'=>$fetchSousQuartiers['nom'],
                                'id'=>$fetchSousQuartiers['idSousQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }
            } elseif ($fetchInfosAdresse['idQuartier']!='0') {
            // recherche de la ville, du quartier et sous quartier

                $infosNomsAdresse   = $this->getAdresseComplete($fetchInfosAdresse['idQuartier'], 'quartier');
                $infosIds           = $this->getArrayAdresseFrom($fetchInfosAdresse['idQuartier'], 'quartier');

                $t->assign_vars(array(
                        'ville'=>$infosIds['ville'],
                        'villetxt'=>$infosNomsAdresse['ville']
                ));

                // assignation du quartier
                $resQuartiers=$this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '".$infosIds['ville']."' order by nom");
                while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                    $selected="";
                    if ($infosIds['quartier']==$fetchQuartiers['idQuartier']) {
                        $selected = " selected";
                    }

                    if ($fetchQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array(
                                'nom'=>$fetchQuartiers['nom'],
                                'id'=>$fetchQuartiers['idQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }

                $t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value,'listeSousQuartier')"));
                // assignation du sousQuartier
                $resSousQuartiers=$this->connexionBdd->requete("SELECT idSousQuartier,nom FROM sousQuartier WHERE idQuartier = '".$infosIds['quartier']."' order by nom");
                while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                    $selected="";
                    if ($infosIds['sousQuartier']==$fetchSousQuartiers['idSousQuartier']) {
                        $selected=" selected";
                    }

                    if ($fetchSousQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array(
                                'nom'=>$fetchSousQuartiers['nom'],
                                'id'=>$fetchSousQuartiers['idSousQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }
            } elseif ($fetchInfosAdresse['idVille']!='0') {
                $infosNomsAdresse   = $this->getAdresseComplete($fetchInfosAdresse['idVille'], 'ville');
                $infosIds           = $this->getArrayAdresseFrom($fetchInfosAdresse['idVille'], 'ville');

                $t->assign_vars(array(
                        'ville'=>$infosIds['ville'],
                        'villetxt'=>$infosNomsAdresse['ville']
                ));

                // assignation du quartier
                $resQuartiers=$this->connexionBdd->requete("SELECT idQuartier,nom FROM quartier WHERE idVille = '".$infosIds['ville']."' order by nom");
                while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
                    $selected="";
                    if ($infosIds['quartier']==$fetchQuartiers['idQuartier']) {
                        $selected = " selected";
                    }

                    if ($fetchQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array(
                                'nom'=>$fetchQuartiers['nom'],
                                'id'=>$fetchQuartiers['idQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }

                $t->assign_vars(array('onChangeListeQuartier'=>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('quartiers').value,'listeSousQuartier')"));
                // assignation du sousQuartier
                $resSousQuartiers=$this->connexionBdd->requete("SELECT idSousQuartier,nom FROM sousQuartier WHERE idQuartier = '".$infosIds['quartier']."' order by nom");
                while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
                    $selected="";
                    if ($infosIds['sousQuartier']==$fetchSousQuartiers['idSousQuartier']) {
                        $selected=" selected";
                    }

                    if ($fetchSousQuartiers['nom']!='autre') {
                        $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array(
                                'nom'=>$fetchSousQuartiers['nom'],
                                'id'=>$fetchSousQuartiers['idSousQuartier'],
                                'selected'=>$selected
                        ));
                    }
                }
            }
        }


        // parcours des adresses

        $numLigne=0;
        if (isset($this->variablesPost['idUnique'])) {
            foreach ($this->variablesPost['idUnique'] as $indice => $valueIdUnique) {
                if ((isset($this->variablesGet['supprAdresse']) && $this->variablesGet['supprAdresse']==$valueIdUnique)) {
                    //
                } else {
                    $arrayAdresse[$numLigne]['idAdresse']   =0;
                    $arrayAdresse[$numLigne]['txt']         = $this->variablesPost['ruetxt'][$valueIdUnique];
                    $arrayAdresse[$numLigne]['id']          = $this->variablesPost['rue'][$valueIdUnique];
                    $arrayAdresse[$numLigne]['numero']      = $this->variablesPost['numero'][$valueIdUnique];
                    $arrayAdresse[$numLigne]['indicatif']   = $this->variablesPost['indicatif'][$valueIdUnique];
                    $arrayAdresse[$numLigne]['longitude']   = $this->variablesPost['longitude'][$valueIdUnique];
                    $arrayAdresse[$numLigne]['latitude']    = $this->variablesPost['latitude'][$valueIdUnique];
                    $numLigne++;
                }
            }

            if (isset($this->variablesPost['ajouterAdresse'])) {
                $arrayAdresse[$numLigne]['idAdresse']   =0;
                $arrayAdresse[$numLigne]['txt']         = "";
                $arrayAdresse[$numLigne]['id']          = "";
                $arrayAdresse[$numLigne]['numero']      = "";
                $arrayAdresse[$numLigne]['indicatif']   = "";
                $arrayAdresse[$numLigne]['longitude']   = "";
                $arrayAdresse[$numLigne]['latitude']    = "";
                $numLigne++;
            }

            if (count($this->variablesPost['idUnique'])==1 && isset($this->variablesPost['enleverAdresse'])) {
                $arrayAdresse[$numLigne]['idAdresse']   =0;
                $arrayAdresse[$numLigne]['txt']         = "";
                $arrayAdresse[$numLigne]['id']          = "";
                $arrayAdresse[$numLigne]['numero']      = "";
                $arrayAdresse[$numLigne]['indicatif']   = "";
                $arrayAdresse[$numLigne]['longitude']   = "";
                $arrayAdresse[$numLigne]['latitude']    = "";
                $numLigne++;
            }
        } else {
            $resAdresses = $this->getAdressesFromEvenementGroupeAdresses($idEvenementGroupeAdresse);
            if (mysql_num_rows($resAdresses)>0 && !isset($this->variablesPost['ajouterAdresse'])) {
                mysql_data_seek($resAdresses, 0);
                while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) {
                    $arrayAdresse[$numLigne]['idAdresse']  =  $fetchAdresses['idAdresse'];
                    $arrayAdresse[$numLigne]['txt']         = $fetchAdresses['nomRue'];
                    $arrayAdresse[$numLigne]['id']          = $fetchAdresses['idRue'];
                    $arrayAdresse[$numLigne]['numero']      = $fetchAdresses['numero'];
                    $arrayAdresse[$numLigne]['indicatif']   = $fetchAdresses['idIndicatif'];
                    $arrayAdresse[$numLigne]['prefixe']     = $fetchAdresses['prefixeRue'];
                    $arrayAdresse[$numLigne]['longitude']   = $fetchAdresses['longitude'];
                    $arrayAdresse[$numLigne]['latitude']    = $fetchAdresses['latitude'];
                    $numLigne++;
                }
            } else {
                $arrayAdresse[$numLigne]['idAdresse']   =0;
                $arrayAdresse[$numLigne]['txt']         = "";
                $arrayAdresse[$numLigne]['id']          = "";
                $arrayAdresse[$numLigne]['numero']      = "";
                $arrayAdresse[$numLigne]['indicatif']   = "";
                $arrayAdresse[$numLigne]['prefixe']     = "";
                $arrayAdresse[$numLigne]['longitude']   = "";
                $arrayAdresse[$numLigne]['latitude']    = "";
                $numLigne++;
            }
        }

        $configArrayRetrieveCoordonneesGoogleMap = array();

        for ($i=0; $i<$numLigne; $i++) {
        // affichage des indicatifs pour chaque adresse
            $nomRue = $arrayAdresse[$i]["txt"];
            if (isset($arrayAdresse[$i]['prefixe']) && $arrayAdresse[$i]['prefixe']!='') {
                $nomRue = $arrayAdresse[$i]['prefixe'].' '.$arrayAdresse[$i]["txt"];
            }


            $coordonnees = $this->getCoordonneesFrom($arrayAdresse[$i]['idAdresse'], 'idAdresse');



            $t->assign_block_vars("isNotAjoutSousEvenement.adresses", array(
                    'idUnique'                  => $i,
                    'idAdresse'                 => $arrayAdresse[$i]['idAdresse'],
                    'onClickBoutonChoixRue'     => "document.getElementById('paramChampAppelantRue').value= 'rue".$i."';document.getElementById('iFrameRue').src='".$this->creerUrl('', 'afficheChoixRue', array('noHeaderNoFooter'=>1))."&archiIdVille='+document.getElementById('ville').value+'&archiIdQuartier='+document.getElementById('quartiers').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers').value;document.getElementById('calqueRue').style.display='block';document.getElementById('calqueRue').style.top=(getScrollHeight()+50)+'px'",
                    "onClickBoutonSupprAdresse" => "document.getElementById('formAjoutDossier').action='".$this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse,'supprAdresse'=>$i))."'",
                    "nomRue"                => $nomRue,
                    "rue"                   => $arrayAdresse[$i]["id"],
                    "numero"                => $arrayAdresse[$i]["numero"],
                    "longitude"             =>$coordonnees['longitude'],
                    "latitude"              =>$coordonnees['latitude']
            ));

            // gestion des indicatifs de chaque adresse
            $reqIndicatif = "select idIndicatif, nom from indicatif";
            $resIndicatif = $this->connexionBdd->requete($reqIndicatif);
            while ($fetchIndicatif = mysql_fetch_assoc($resIndicatif)) {
                $selected="";
                //(isset($this->variablesPost['indicatif'.$i]) && $this->variablesPost['indicatif'.$i]!='' && $this->variablesPost['indicatif'.$i]==$fetchIndicatif['idIndicatif'])     ||
                if (($arrayAdresse[$i]['indicatif']==$fetchIndicatif['idIndicatif'])) {
                    $selected = " selected";
                }
                $t->assign_block_vars("isNotAjoutSousEvenement.adresses.indicatifs", array(
                        "id"        =>  $fetchIndicatif['idIndicatif'],
                        "nom"       =>  $fetchIndicatif['nom'],
                        "selected"  =>  $selected
                ));
            }




            $configArrayRetrieveCoordonneesGoogleMap[$i] = array(
                    'nomChampLatitudeRetour'=>'latitude_'.$i,
                    'nomChampLongitudeRetour'=>'longitude_'.$i,
                    'getAdresseFromElementById'=>true,
                    'jsAdresseValue'=>"document.getElementById('numero".$i."').value+' '+document.getElementById('rue".$i."txt').value+' '+document.getElementById('villetxt').value",
                    'jsToExecuteIfNoAddressFound'=>""
            );
        }

        $jsToExecute="document.getElementById('formAjoutDossier').action='".$this->creerUrl('enregistreGroupeAdresses', '', array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse), false, false)."';testAdresseValideAndSubmit('formAjoutDossier');";
        $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSMultipleRetriveCoordonnees(array('jsToExecuteIfOK'=>$jsToExecute,'jsCodeForWaitingWhileLocalization'=>"document.getElementById('popupAttente').style.top=(getScrollHeight()+200)+'px';document.getElementById('popupAttente').style.display='block';"), $configArrayRetrieveCoordonneesGoogleMap);
        $html.= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
        // ***********************************************************************************
        // assignation des boutons
        $t->assign_vars(array(
                'formAction'                    => $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse)),

                'popupVilles'                   => $this->getPopupChoixVille('nouveauDossier'),

                'popupRues'                     => $this->getPopupChoixRue('nouveauDossier'),

                'onClickBoutonAjouterAdresse'           => "document.getElementById('formAjoutDossier').action='".$this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse))."'",
                'onClickBoutonEnleverAdresse'           => "document.getElementById('formAjoutDossier').action='".$this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses'=>$idEvenementGroupeAdresse))."'",
                'onClickBoutonValider'                  => $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'],

                'typeBoutonValidation'=>"button",

                'onClickBoutonChoixVille'       =>"document.getElementById('paramChampAppelantVille').value='ville';document.getElementById('calqueVille').style.display='block';",

                'onChangeListeQuartier'         =>"appelAjax('".$this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter'=>1))."&archiIdQuartier='+document.getElementById('listeQuartier').value,'listeSousQuartiers')",
                'popupAttente'                  =>$this->getPopupAttente()
        ));


        // ***********************************************************************************
        // messages d'aide contextuelle
        $helpMessages = $this->getHelpMessages('helpAdresse');

        foreach ($helpMessages as $fieldName => $message) {
            $t->assign_vars(array($fieldName=>$message));
        }
        // ***********************************************************************************


        ob_start();
        $t->pparse('ajoutAdressesMultiple');
        $html.=ob_get_contents();
        ob_end_clean();

        return $html;
    }
246707
public function apply($imageRessource)
  {
    $startWidth = imagesx($imageRessource);
    $startHeight = imagesy($imageRessource);

    // On effectue au préalable un resize
    $xratio = $startWidth / $this->width;
    $yratio = $startHeight / $this->height;
    if ($xratio == $yratio) {
      if ($startHeight == $this->height && $startWidth == $this->width) {
        return $imageRessource;
      }
      $newWidth  = $this->width;
      $newHeight = $this->height;
    } else if($xratio > $yratio) {
      $newHeight = $this->height;
      $newWidth  = $startWidth * $newHeight / $startHeight;
    } else {
      $newWidth  = $this->width;
      $newHeight = $startHeight * $newWidth / $startWidth;
    }

    if (isset($newHeight)) {
      $resizedTmp = Image::createEmptyContainer($newWidth, $newHeight);
      imagecopyresampled($resizedTmp, $imageRessource, 0, 0, 0, 0, $newWidth, $newHeight, $startWidth, $startHeight);
    }
    imagedestroy($imageRessource);

    // On coupe les cotés ou le haut
    $startWidth = imagesx($resizedTmp);
    $startHeight = imagesy($resizedTmp);

    if ($startWidth == $this->width && $startHeight == $this->height) {

      // Cas particulier, aucune opération complémentaire nécessaire
      return $resizedTmp;

    } else if ($startWidth == $this->width) {

      // On a redimensionné sur la largeur. On coupe le haut et le bas
      $resized = Image::createEmptyContainer($this->width, $this->height);
      $xdecay = 0;
      $ydecay = null;

      if($this->verticalPosition == self::VERTICAL_TOP){
        $ydecay = 0;
      } else if ($this->verticalPosition == self::VERTICAL_BOTTOM) {
        $ydecay = $startHeight - $this->height;
      } else if ($this->verticalPosition == self::VERTICAL_CENTER) {
        $ydecay = ($startHeight - $this->height) / 2;
      }

      imagecopyresampled($resized, $resizedTmp, 0, 0, $xdecay, $ydecay, $this->width, $this->height, $this->width, $this->height);
      imagedestroy($resizedTmp);
      return $resized;

    } else {

      // On a redimensionné sur la hauteur. On coupe à droite et à gauche
      $resized = Image::createEmptyContainer($this->width, $this->height);
      $xdecay = null;
      $ydecay = 0;

      if($this->horizontalPosition == self::HORIZONTAL_LEFT){
        $xdecay = 0;
      }else if($this->horizontalPosition == self::HORIZONTAL_RIGHT){
        $xdecay = $startWidth - $this->width;
      }else if($this->horizontalPosition == self::HORIZONTAL_CENTER){
        $xdecay = ($startWidth - $this->width) / 2;
      }

      imagecopyresampled($resized, $resizedTmp, 0, 0, $xdecay, $ydecay, $this->width, $this->height, $this->width, $this->height);
      imagedestroy($resizedTmp);
      return $resized;

    }
  }