renvoi l'idVille a partir du nom de la ville en parametre
19318
public function getIdVilleFromNomVille($nomVille = '')
    {
        $retour = 0;
        $req = "SELECT idVille FROM ville WHERE nom LIKE \"%".$nomVille."%\"";
        $res = $this->connexionBdd->requete($req);
        if (mysql_num_rows($res)>0) {
            $fetch = mysql_fetch_assoc($res);
            $retour = $fetch['idVille'];
        }

        return $retour;
    }
598921
def ajAssims(self):
        
        for lin in lignesFichier(self.path("assimilations.la")):
            ass1, ass2 = tuple(lin.split(':'))
            self.lemmatiseur._assims[ass1] = ass2
            self.lemmatiseur._assimsq[atone(ass1)] = atone(ass2)
515141
public function setOnClickEvent($params = array())
    {
        // ajoute un evenement
        $html="<script langage='javascript'>";

        if (isset($params['jsCode'])) {
            //$html.="function onClickFunction(overlay,  point)";
            $html.="GEvent.addListener(map,  'click',  function(overlay,  point){if (point){".$params['jsCode']."}});";
        } else {
            // fonctions permettant de renvoyer l'adresse a partir du point cliqué sur la carte,  on enleve le numero de l'adresse par javascript pour n'avoir que la rue
            $html.="
                function IsNumeric(input) {
                   return (input - 0) == input && input.length > 0;
                }

                function convertToUrlAdressSeach(str) {
                    var stop = false;
                    var posIni=0;
                    i=0;
                    if (IsNumeric(str.charAt(0)))
                    {
                        for(i=0; i<str.length && !stop ; i++)
                        {
                            if ( str.charAt(i)==' ')
                            {
                                stop=true;
                                posIni = i;

                            }
                        }
                    }

                    return str.substring(i, str.length);
                }


                function showAddress(response) {
                  map.clearOverlays();
                  if (!response || response.Status.code != 200) {
                    alert('Status Code:' + response.Status.code);
                  } else {
                    place = response.Placemark[0];
                    point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
                    marker = new GMarker(point);
                    map.addOverlay(marker);
                    marker.openInfoWindowHtml(
                        '<b>orig latlng:</b>' + response.name + '<br/>' +
                        '<b>latlng:</b>' + place.Point.coordinates[1] + ', ' + place.Point.coordinates[0] + '<br>' +
                        '<b>Status Code:</b>' + response.Status.code + '<br>' +
                        '<b>Status Request:</b>' + response.Status.request + '<br>' +
                        '<b>Address:</b>' + place.address + '<br>' +
                        '<b>Accuracy:</b>' + place.AddressDetails.Accuracy + '<br>' +
                        '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);

                        ".$params['jsAction']."
                        //ex : location.href = '?archiAffichage=recherche&submit=Rechercher&motcle='+convertToUrlAdressSeach(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName);


                        // place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName === 'Alsace'
                        // place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName === 'Bas Rhin'
                        // place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName === 'Strasbourg'
                        // place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName === '3 boulevard du president wilson'

                  }
                }


                map.disableDoubleClickZoom();
                GEvent.addListener(map,  'click',  function(overlay,  point){\n
                map.clearOverlays();\n
                if (point) {\n
                map.addOverlay(new GMarker(point));\n
                map.panTo(point);\n
                document.getElementById('debug').value = point.lat() + ' ' + point.lng();\n
                geocoder.getLocations(point,  showAddress);



            }});";
        }


        $html.="</script>";
        return $html;
    }
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;
    }
944834
public function enregistreAdressesLieesAEvenement()
    {
        if (isset($this->variablesGet['idEvenement']) && $this->variablesGet['idEvenement']!='') {
        // d'abord il faut supprimer les ancienne liaisons de positions d'evenements auquel n'appartiennent pas les evenements , ceux ci seront ensuite remis en place avec la fonction majPositionsEvenements
            $reqEvenementLie = "SELECT idEvenement,idEvenementGroupeAdresse FROM _evenementAdresseLiee WHERE idEvenement='".$this->variablesGet['idEvenement']."'";
            $resEvenementLie = $this->connexionBdd->requete($reqEvenementLie);
            while ($fetchEvenementLie = mysql_fetch_assoc($resEvenementLie)) {
                $idEvenement = $fetchEvenementLie['idEvenement'];
                $idEvenementGA = $fetchEvenementLie['idEvenementGroupeAdresse'];

                // suppression des liaisons precedentes une par une
                $reqSuppr = "DELETE FROM _evenementAdresseLiee WHERE idEvenement='".$idEvenement."' AND idEvenementGroupeAdresse='".$idEvenementGA."'";
                $resSuppr = $this->connexionBdd->requete($reqSuppr);
                // maj des positions du groupe d'adresse concerne, si le groupe d'adresse ne comporte plus l'adresse
                if (!isset($this->variablesPost['listeIdGroupesAdressesLiees'])
                || !is_array($this->variablesPost['listeIdGroupesAdressesLiees'])
                || count($this->variablesPost['listeIdGroupesAdressesLiees'])==0
                || !in_array($idEvenementGA, $this->variablesPost['listeIdGroupesAdressesLiees'])
                ) {
                // si l'une des conditions est remplie , on peut mettre a jour les groupes d'adresses qui ne seront plus liés pour qu'ils ne tiennent plus compte de la position (un simple refresh des positions)
                    // vu que cette fonction quand elle fait un refresh supprime d'abord tous les enregistrements des positions concernée et les regeneres , elle supprimera donc les anciennes adresses liées
                    // sinon si l'evenement groupe d'adresses est dans la liste des groupes d'adresses liés , pas besoin de rafraichir (sinon cela effacerait la position de l'evenement puisqu'on vient de l'effacer de la liste (on va le remettre un peu plus bas dans le code)
                    $this->majPositionsEvenements(array('idEvenementGroupeAdresse'=>$idEvenementGA,'refreshAfterDelete'=>true));
                }
            }


            // ajout des liaisons vers les adresses selectionnées
            // d'abord on verifie qu'il n'y a pas de doublons dans la liste , car c'est possible

            $arrayIdAdresses = array();

            if (isset($this->variablesPost['listeIdGroupesAdressesLiees'])) {
                foreach ($this->variablesPost['listeIdGroupesAdressesLiees'] as $indice => $value) {
                    $arrayIdGroupesAdresses[] = $value;
                }

                $arrayIdGroupesAdresses=array_unique($arrayIdGroupesAdresses);

                foreach ($arrayIdGroupesAdresses as $indice => $value) {
                    $reqAjout = "INSERT INTO _evenementAdresseLiee (idEvenement,idEvenementGroupeAdresse) VALUES ('".$this->variablesGet['idEvenement']."','".$value."')";
                    $resAjout = $this->connexionBdd->requete($reqAjout);


                    // on met a jour les positions des evenements sur chacun des groupes d'adresses lié, la fonction de mise a jour se comporte alors comme si on ajoute un nouvel element, pour que celui ci soit bien placé (si on fais un refresh simple avec cette fonction, elle ne positionnera pas le nouvel evenement
                    $this->majPositionsEvenements(array('idEvenementGroupeAdresse'=>$value,'idNouvelEvenement'=>$this->variablesGet['idEvenement']));
                }
            }
        }

        //Dirty redirect but form  is not well handle so have to use dirty method
        unset($this->variablesGet['archiAction']);
        header("Location: ".$this->creerUrl('', '', $this->variablesGet, false, false));
    }
541837
public function getHtml($params = array())
	{
		$html="";
		$maxValue = $this->getMaxValue(); // cette valeur va permettre de calculer l'echelle la plus pratique a utiliser
		
		$nbChiffres = pia_strlen($maxValue);
		
		$unite='1';
		for($i=0 ; $i<$nbChiffres-2 ; $i++)
		{
			$unite.='0';
		}
		
		$roundedValue = round($maxValue,-$nbChiffres+2)+$unite;
		
		
		$hauteur = 200;
		if(isset($params['hauteur']) && $params['hauteur']!='')
		{
			$hauteur = $params['hauteur'];
		}
		
		
		$colWidth=20;
		if(isset($params['colWidth']) && $params['colWidth']!='')
		{
			$colWidth=$params['colWidth'];
		}
		
		// echelle
		$heightEchelle = $hauteur;
		
		$html.="<table cellspacing=0 cellpadding=0 border=0 height=".($heightEchelle+50+50)."><tr><td valign=bottom>";
		$html.="<table border=0 cellspacing=0 cellpadding=0 style='background-color:white;' height=".($heightEchelle+50).">";
		$html.="<tr>";
		$html.="<td valign=top>";
		$html.=" <table height=$heightEchelle width=60 border=0 cellspacing=0 cellpadding=0 style=''><tr><td width=60 valign=bottom>";
		$html.="<div style='position:relative;'>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/4)."px;left:0;width:60px;text-align:right;'>".round($roundedValue/4)."_</div>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/2)."px;left:0;width:60px;text-align:right;'>".round($roundedValue/2)."_</div>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/(4/3))."px;left:0;width:60px;text-align:right;'>".round($roundedValue/(4/3))."_</div>";
		$html.="<div style='position:absolute;bottom:0px;left:0;width:60px;text-align:right;'>0_</div>";
		$html.="<div style='position:absolute;bottom:".$heightEchelle."px;left:0;width:60px;text-align:right;'>".$roundedValue."_</div>";
		$html.="</div>";
		$html.="</td><td style='background-color:black;' width=2></td></tr></table>";
		$html.="</td>";
		
		foreach($this->listeValues as $indice => $value)
		{
			if(is_array($value))
			{

				if(!isset($this->listeModesAffichage[$indice]) || $this->listeModesAffichage[$indice]!='cumul')
				{
					asort($value);
				}
		
				$html.="<td valign=bottom height=200>";
				
				$html.="<table cellspacing=0 cellpadding=0 border=0  width=$colWidth style=''>";
				$valPrecedente = 0;
				$arrayHtmlGraph = array();
				foreach($value as $index => $values)
				{
					if(isset($this->listeModesAffichage[$indice]) && $this->listeModesAffichage[$indice]=='cumul')
					{
						// dans ce cas on cumul les barres , on affiche la premiere puis la seconde au dessus
						$height1 = round($value[$index]*$hauteur/$roundedValue);
						$arrayHtmlGraph[] = "<tr><td style='".$this->listeStyles[$indice][$index]."' height=".$height1."></td></tr>";
					}
					else
					{
						// dans ce cas on affiche les barres les une derriere les autres , et ont chacune comme ordonnee 0 au depart
						$height1 = round((($value[$index] - $valPrecedente) * $hauteur) / $roundedValue);
						$arrayHtmlGraph[] = "<tr><td style='".$this->listeStyles[$indice][$index]."' height=".$height1."></td></tr>";
						$valPrecedente = $value[$index] - $valPrecedente;
					}
				}
				
				// et on affiche a l'envers
				for($i=count($arrayHtmlGraph)-1 ; $i>=0 ; $i--)
				{
					$html.=$arrayHtmlGraph[$i];
				}
				
				$html.="<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>".$this->listeLibelles[$indice]."</td></tr>";//
				$html.="</table>";
				$html.="</td>";
			}
			else
			{
				$html.="<td valign=bottom height=200>";
				$height = round($value * $hauteur / $roundedValue);
				$html.="<table cellspacing=0 cellpadding=0 border=0 height=".($height+50)." width=$colWidth style='".$this->listeStyles[$indice]."'>";
				$html.="<tr>";
				$html.="<td valign=top></td>";
				$html.="</tr>";
				$html.="<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>".$this->listeLibelles[$indice]."</td></tr>";//
				$html.="</table>";
				$html.="</td>";
			}
		}
		
		$html.="</tr>";
		$html.="</table>";
		$html.="</tr>";
		$html.="</table>";
		
		
		return $html;
	}
578036
def getEnable(self, name, default=False, parent_search=False, multikeys_search=False):
		
		# valeur
		value = self.get(name, default, parent_search, multikeys_search)
		if type(value) != str:
			return (value == 1 or value)

		# test de retour
		return value.lower() in ["true", "t", "1", "oui", "vrai", "v", "on", "o", "yes", "y", "si", "s", "da", "d", "ja", "j"]
394757
@Override
	public void initialize(Length annotation) {
		
		// On initialise les parametres
		min = annotation.min();
		max = annotation.max();
		acceptNullObject = annotation.acceptNullObject();
		trimString = annotation.trimString();
	}
495230
public function getHtmlFromAdressesNoPauseWithGeoLocalization()
    {
        $html="<div id='".$this->googleMapNameId."' style='width: ".$this->googleMapWidth."px; height: ".$this->googleMapHeight."px;'>Veuillez patienter pendant le chargement de la carte...</div>";

        $html.="<script  >";

        /*if (count($this->coordonnees)>0) {
            foreach ($this->coordonnees as $indice => $value) {
                if (isset($value['link'])) {
                    $html.="tabAdresses[".$indice."]=\"".$value['link']."\";\n";
                }
            }
        }*/

        $html.="</script>";
        //$html.="<div id='".$this->googleMapNameId."' style='width: ".$this->googleMapWidth."px; height: ".$this->googleMapHeight."px;'>Veuilliez patienter pendant le chargement de la carte...</div>";

        if ($this->debugMode)
            $displayDebug='block';
        else
            $displayDebug='none';

        //$html.="<div style='width:500px; height:300px;overflow:scroll;display:".$displayDebug.";' id='debugGoogleMap'></div>";
        $html.="<script>load();</script>";

        // fonction appelant les affichages de coordonnées ,  appels regroupées dans une fonction qui groupe les coordonnées par paquet ,  afin de ne pas trop en envoyer a la fois
        /*if (count($this->coordonnees)>0) {
            $html.="<script  >";
            $html.="var numPaquet=0;\n";
            $html.="var timer;\n";
            $html.="startTimerPaquets();\n";
            $html.="function startTimerPaquets()\n";
            $html.="{";
            $html.="afficheCoordonneesParPaquets();\n";
            $html.="timer = setInterval(\"afficheCoordonneesParPaquets()\", ".$this->setTimeOutPaquets.");\n";
            $html.="}\n";

            $html.="function afficheCoordonneesParPaquets(){\n";
            $i=0;
            $numPaquet = 0;
            foreach ($this->coordonnees as $indice => $value) {
                $image = ", \"http://www.google.com/mapfiles/marker.png\"";//
                if (isset($value['imageFlag']) && $value['imageFlag']!='') {
                    $image = ", \"".$value['imageFlag']."\"";
                }

                if ($i%10==0) {
                    $html.="if (numPaquet==".$numPaquet.")\n";
                    $html.="{\n";
                    $iDebut = $i;
                }

                $html.=" getCoordonnees(\"".$value['adresse']."\", ".$indice." ".$image.");\n";

                if ($i==$iDebut+9 || $i==count($this->coordonnees)-1 ) {
                    $html.="}\n";
                    $numPaquet++;
                }
                $i++;
            }


            $html.="if (numPaquet>".$numPaquet.")\n";
            $html.="{\n";
            $html.="clearInterval(timer);\n";
            $html.="}\n";
            $html.="numPaquet++;\n";
            $html.="}\n";
            $html.="</script>";
        }*/


        $html.="<script language = 'javascript'>";
        foreach ($this->coordonnees as $indice => $values) {
            if (isset($values['latitude']) && $values['latitude']!='' && isset($values['longitude']) && $values['longitude']!='') {
                $urlImage = $values['imageFlag'];
                if (!isset($values['imageHeight']) && !isset($values['imageWidth'])) {
                    list($imageSizeX,  $imageSizeY,  $typeImage,  $attrImage) = getimagesize($values['pathToImageFlag']);
                } else {
                    $imageSizeX = $values['imageWidth'];
                    $imageSizeY = $values['imageHeight'];
                }

                $html.="
                    var icon = new GIcon();
                    //icon.image = image;


                    icon.image = \"$urlImage\";
                    //icon.shadow = \"https://labs.google.com/ridefinder/images/mm_20_shadow.png\";
                    icon.iconSize = new GSize($imageSizeX,  $imageSizeY);
                    icon.shadowSize = new GSize(22,  20);
                    icon.iconAnchor = new GPoint(2,  24);
                    icon.infoWindowAnchor = new GPoint(5,  1);
                    var iconMarker = new GIcon(icon);";



                $html.="

                    point$indice = new GLatLng(".$values['latitude'].", ".$values['longitude'].");
                    marker$indice = new GMarker(point$indice, iconMarker);
                    overlay$indice = map.addOverlay(marker$indice);
                    //marker$indice.openInfoWindowHtml(\"".$values['link']."\");

                    ";

                $html.="
                            function onClickFunction$indice(overlay,  point){marker$indice.openInfoWindowHtml(\"".$values['link']."\");}";

                $html.="GEvent.addListener(marker$indice,  'click',  onClickFunction$indice);";
            }


        }

        $html.="</script>";



        if ($this->debugMode)
            $displayDebug='block';
        else
            $displayDebug='none';

        $html.="<div style='width:500px; height:300px;overflow:scroll;display:".$displayDebug.";' id='debugGoogleMap'></div>";
        return $html;
    }
673609
function toBeziere(val){
  var retVal = [val]

  switch(val[0]){
    case 'M': // special handling for M
      this.pos = this.start = [val[1], val[2]]
      return retVal
    case 'L':
      val[5] = val[3] = val[1]
      val[6] = val[4] = val[2]
      val[1] = this.pos[0]
      val[2] = this.pos[1]
      break
    case 'Q':
      val[6] = val[4]
      val[5] = val[3]
      val[4] = val[4] * 1/3 + val[2] * 2/3
      val[3] = val[3] * 1/3 + val[1] * 2/3
      val[2] = this.pos[1] * 1/3 + val[2] * 2/3
      val[1] = this.pos[0] * 1/3 + val[1] * 2/3
      break
    case 'A':
      retVal = arcToBeziere(this.pos, val)
      val = retVal[0]
      break
  }

  val[0] = 'C'
  this.pos = [val[5], val[6]]
  this.reflection = [2 * val[5] - val[3], 2 * val[6] - val[4]]

  return retVal

}
883824
function (v, paramd) {
    var nd = {};

    var _add = function(v) {
        if (!_.is.String(v)) {
            return false;
        }

        var vmatch = v.match(/^([-a-z0-9]*):.+/);
        if (!vmatch) {
            return false;
        }
        
        var nshort = vmatch[1];
        var nurl = _namespace[nshort];
        if (!nurl) {
            return false;
        }

        nd[nshort] = nurl;

        return true;
    };
    var _walk = function(o) {
        if (_.is.Object(o)) {
            for (var key in o) {
                if (!_add(key)) {
                    continue;
                } else if (!key.match(/^iot/)) {
                    continue;
                } else if (key === "iot:help") {
                    continue;
                }

                var sv = o[key];
                if (_walk(sv)) {
                    nd[key] = {
                        "@id": _ld_expand(key),
                        "@type": "@id"
                    };
                }
            }
        } else if (_.is.Array(o)) {
            var any = false;
            o.map(function(sv) {
                _add(sv);
                any |= _walk(sv);
            });
            return any;
        } else if (_.is.String(o)) {
            if (_add(o)) {
                return true;
            }
        }
    };

    _walk(v);

    if (!v["@context"]) {
        v["@context"] = {};
    }

    _.extend(v["@context"], nd);

    return v;
}
1221979
public function getHtmlFromAdresses()
    {
        $html="<div id='".$this->googleMapNameId."' style='width: ".$this->googleMapWidth."px; height: ".$this->googleMapHeight."px;'>Veuilliez patienter pendant le chargement de la carte...</div>";

        $html.="<script  >";

        if (count($this->coordonnees)>0) {
            foreach ($this->coordonnees as $indice => $value) {
                if (isset($value['link'])) {
                    $html.="tabAdresses[".$indice."]=\"".$value['link']."\";\n";
                }
            }
        }

        $html.="</script>";
        //$html.="<div id='".$this->googleMapNameId."' style='width: ".$this->googleMapWidth."px; height: ".$this->googleMapHeight."px;'>Veuilliez patienter pendant le chargement de la carte...</div>";

        if ($this->debugMode)
            $displayDebug='block';
        else
            $displayDebug='none';

        //$html.="<div style='width:500px; height:300px;overflow:scroll;display:".$displayDebug.";' id='debugGoogleMap'></div>";
        $html.="<script>load();</script>";

        // fonction appelant les affichages de coordonnées ,  appels regroupées dans une fonction qui groupe les coordonnées par paquet ,  afin de ne pas trop en envoyer a la fois
        if (count($this->coordonnees)>0) {
            $html.="<script>";
            $html.="var numPaquet=0;\n";
            $html.="var timer;\n";
            $html.="startTimerPaquets();\n";
            $html.="function startTimerPaquets()\n";
            $html.="{";
            $html.="afficheCoordonneesParPaquets();\n";
            $html.="timer = setInterval(\"afficheCoordonneesParPaquets()\", ".$this->setTimeOutPaquets.");\n";
            $html.="}\n";

            $html.="function afficheCoordonneesParPaquets(){\n";
            $i=0;
            $numPaquet = 0;
            foreach ($this->coordonnees as $indice => $value) {
                $image = ", \"https://www.google.com/mapfiles/marker.png\"";//
                if (isset($value['imageFlag']) && $value['imageFlag']!='') {
                    $image = ", \"".$value['imageFlag']."\"";
                }

                if ($i%10==0) {
                    $html.="if (numPaquet==".$numPaquet.")\n";
                    $html.="{\n";
                    $iDebut = $i;
                }

                $html.=" getCoordonnees(\"".$value['adresse']."\", ".$indice." ".$image.");\n";

                if ($i==$iDebut+9 || $i==count($this->coordonnees)-1 ) {
                    $html.="}\n";
                    $numPaquet++;
                }
                $i++;
            }


            $html.="if (numPaquet>".$numPaquet.")\n";
            $html.="{\n";
            $html.="clearInterval(timer);\n";
            $html.="}\n";
            $html.="numPaquet++;\n";
            $html.="}\n";
            $html.="</script>";
        }



        if ($this->debugMode)
            $displayDebug='block';
        else
            $displayDebug='none';

        $html.="<div style='width:500px; height:300px;overflow:scroll;display:".$displayDebug.";' id='debugGoogleMap'></div>";
        return $html;
    }
820562
public function getActualites($params = array()){
		$tActualites = new Template($this->getCheminPhysique().$this->cheminTemplates);
		$tActualites->set_filenames(array('encartActualites'=>'encartAccueil.tpl'));

		$tActualites->assign_vars(array('titre'=>_("Actualités"), "type"=>"actualites"));
		$i=0;

		if (count($params['actualites'])>0) {
			$tActualites->assign_vars(array('lienVersTout'=>"<a href='".$this->creerUrl('', 'toutesLesActualites', array())."'>"._("Toutes les actualités")."</a>"));
		}


		// s'il y a un parcours plus récent que la derniere actu ,  on affiche le parcours comme une actualité ( ...je sais mais bon ,  va comprendre....)
		$reqDateDerniereActualite = "SELECT max(date) as maxDate FROM actualites WHERE desactive<>'1'";
		$resDateDerniereActualite = $this->connexionBdd->requete($reqDateDerniereActualite);

		$indiceGlobalNbActu = 0;
		$isParcoursToDisplay = false; // est ce que l'on va afficher un parcours plutot qu'une actu en place principale sur l'encars des actus
		if (mysql_num_rows($resDateDerniereActualite)>0) {
				
				
			$fetchDateDerniereActualite = mysql_fetch_assoc($resDateDerniereActualite);
			$dateActu = $fetchDateDerniereActualite['maxDate'];
			// voyons maintenant s'il y a un parcours ajouté actif plus recent
			$reqParcoursActif = "SELECT idParcours,  dateAjoutParcours, libelleParcours, commentaireParcours FROM parcoursArt WHERE dateAjoutParcours>'".$dateActu."' AND isActif='1' ORDER BY dateAjoutParcours DESC,  idParcours DESC LIMIT 1";
			$resParcoursActif = $this->connexionBdd->requete($reqParcoursActif);
				
			if (mysql_num_rows($resParcoursActif)>0) {
				$isParcoursToDisplay = true;
				$fetchParcoursActif = mysql_fetch_assoc($resParcoursActif);

				// recuperation d'une photo appartenant a une adresse du parcours (en principe dans le meilleur des cas la premiere photo de la premiere etape)
				$reqEtapes = "SELECT idEtape, commentaireEtape FROM etapesParcoursArt WHERE idParcours = '".$fetchParcoursActif['idParcours']."'";
				$resEtapes = $this->connexionBdd->requete($reqEtapes);
				if (mysql_num_rows($resEtapes)>0) {
					$trouvePhoto = false;
						
					while (!$trouvePhoto && $fetchEtape = mysql_fetch_assoc($resEtapes)) {
						$arrayPhoto = $adresse->getPhotoFromEtape(array('idEtape'=>$fetchEtape['idEtape'], 'format'=>'moyen'));
						$trouvePhoto = $arrayPhoto['trouve'];
					}
						
					mysql_data_seek($resEtapes, 0);
						
					$commentaire = "";
					if ($fetchParcoursActif['commentaireParcours']!='') {
						$bbCode = new bbCodeObject();
						$trouveCommentaire = true;
						$commentaire = $bbCode->convertToDisplay(array('text'=>$fetchParcoursActif['commentaireParcours']));
					} else {
						$trouveCommentaire = false;
					}
						
					while (!$trouveCommentaire && $fetchEtape = mysql_fetch_assoc($resEtapes)) {
						if ($fetchEtape['commentaireEtape']!='') {
							$trouveCommentaire = true;
							$commentaire = $fetchEtape['commentaireEtape'];
						}
					}
						
						
					if ($trouvePhoto) {
						$s = new stringObject();

						// si une photo pour le dernier parcours a ete trouvee ,  alors on affiche le parcours en actu principale
						$i=1; // pour que la boucle des actus commence a 1 et ne remplace pas l'actu principale
						$indiceGlobalNbActu = 1; // pour que l'on affiche pas la derniere actu ramenee par la fonction sinon il y en aurait une de plus que dans les autres encars


						$urlImage = $arrayPhoto['url'];

						$url = $this->creerUrl('', 'detailParcours', array('archiIdParcours'=>$fetchParcoursActif['idParcours']));


						$dimensionImage = "";

						$tActualites->assign_block_vars("premiereAdresseAvecPhoto", array());
						$tActualites->assign_vars(
								array(
										"photoAdresse1"=>"<a href='".$url."'><img alt='' style='border:1px #000000 solid;margin-right:2px;float:left;'  src='".$urlImage."' $dimensionImage ></a>",
										"descriptionAdresse1"=>"<a href='".$url."'>".$d->toFrenchAffichage($fetchParcoursActif['dateAjoutParcours'])." ".stripslashes($fetchParcoursActif['libelleParcours'])."</a><br>".$s->coupureTexte($s->sansBalisesHtml(stripslashes($commentaire)), 10)."<br>".mysql_num_rows($resEtapes)." étapes... <a href='".$url."' style='font-size:11px;'>lire la suite</a>"
								)
						);

					}
				}
			}
		}



		foreach ($params['actualites'] as $indice => $value) {
			if ($indiceGlobalNbActu<5) {
				if ($i==0) {
					// premiere actualite
					@list($w, $h) = getimagesize($this->getCheminPhysique()."images/actualites/".$value['idActualite']."/".$value['photoIllustration']);
						
					if ($w>$h) {
						$dimensionImage = "width=130";    // modif par fabien pour que l'image soit au même format que les autres rubriques (01/02/2013)
					} else {
						$dimensionImage = "height=130";
					}
						
					$urlImage = $this->getUrlRacine()."images/actualites/".$value['idActualite']."/".$value['photoIllustration'];
						
					if ($value['urlFichier']!='')
						$url = $value['urlFichier'];
					else
						$url = $this->creerUrl('', 'afficherActualite', array('archiIdActualite'=>$value['idActualite']));
						
					$tActualites->assign_block_vars("premiereAdresseAvecPhoto", array());
					$tActualites->assign_vars(
							array(
									"photoAdresse1"=>"<a href='".$url."'><img alt='' style='border:1px #000000 solid;margin-right:2px;float:left;' src='".$urlImage."' $dimensionImage></a>",
									"descriptionAdresse1"=>"<a href='".$url."'>".$d->toFrenchAffichage($value['date'])." ".stripslashes($value['titre'])."</a><br>".stripslashes($string->coupureTexte($string->sansBalisesHtml($value['texte']), 20))." <a href='".$url."' style='font-size:11px;'>lire la suite</a>"
							)
					);
						
				} else {
					if ($value['urlFichier']!='')
						$url = $value['urlFichier'];
					else
						$url = $this->creerUrl('', 'afficherActualite', array('archiIdActualite'=>$value['idActualite']));
						
					// by fabien le 23/03/2012 : ajout de stripslashes pour virer les \ sur la page d'acceuil
						
					$tActualites->assign_block_vars('listeAdressesSuivantes', array('lien'=>"<a style='font-size:12px;' href='".$url."'><span class='date'>".$d->toFrenchAffichage($value['date'])."</span> ".stripslashes($value['titre'])."</a>"));
				}

				$i++;
			}
			$indiceGlobalNbActu++;
		}

		ob_start();
		$tActualites->pparse('encartActualites');
		$htmlActualites = ob_get_contents();
		ob_end_clean();
		return $htmlActualites;
	}
1330912
public function getUrlImageFromVille($idVille, $format = 'mini')
    {
        $url="";

        switch ($format) {
            case 'mini':
                $chemin = $this->getUrlImage("mini");
                break;
            case 'moyen':
                $chemin = $this->getUrlImage("moyen");
                break;
            case 'grand':
                $chemin = $this->getUrlImage("grand");
                break;
        }



        $queryQuartier = "
				SELECT idRue
				FROM rue
				WHERE idSousQuartier in(SELECT idSousQuartier FROM sousQuartier WHERE idQuartier in
				(SELECT idQuartier FROM quartier WHERE idVille = '".$idVille."'))

						";

        $resQuartier = $this->connexionBdd->requete($queryQuartier);
        $arrayRues=array();
        while ($fetchQuartier = mysql_fetch_assoc($resQuartier)) {
            $arrayRues[] = $fetchQuartier['idRue'];
        }

        if (count($arrayRues)>0) {
            $sqlRues_reqEvenement = " AND ha.idRue in ('".implode("','", $arrayRues)."') ";
            $sqlRues_reqAdresse = " ai.idAdresse in (select idAdresse FROM historiqueAdresse where  idRue in ('".implode("','", $arrayRues)."')) ";
        } else {
            $sqlRues_reqEvenement = " AND ha.idVille='".$idVille."' ";
            $sqlRues_reqAdresse = " ai.idAdresse in (select idAdresse FROM historiqueAdresse where  idVille ='".$idVille."') ";
        }

        $queryAdresse = "
				SELECT hi.idHistoriqueImage as idHistoriqueImage , hi.idImage as idImage, hi.nom as nom , hi.dateUpload as dateUpload , hi.dateCliche as dateCliche
				FROM historiqueImage hi2, historiqueImage hi
				RIGHT JOIN _adresseImage ai ON ai.idImage = hi.idImage
				WHERE ".$sqlRues_reqAdresse."
						AND hi2.idImage = hi.idImage
						GROUP BY hi.idImage, hi.idHistoriqueImage
						HAVING hi.idHistoriqueImage = max(hi2.idHistoriqueImage)
						LIMIT 1
						";

        $resAdresse = $this->connexionBdd->requete($queryAdresse);
        if (mysql_num_rows($resAdresse)==1) {
            $fetchAdresse = mysql_fetch_assoc($resAdresse);
            $url = $chemin.$fetchAdresse['dateUpload'].'/'.$fetchAdresse['idHistoriqueImage'].".jpg";
        } else {
            // on recherche une image appartenant a un evenement de l'adresse
            // recherche des evenements de l'adresse:
            //$queryEvenements ="SELECT idEvenement FROM _adresseEvenement WHERE idAdresse = '".$idAdresse."'";

            $queryEvenements="
					SELECT ae.idEvenement as idEvenement
					FROM historiqueAdresse ha2, historiqueAdresse ha
					RIGHT JOIN _adresseEvenement ae ON ae.idAdresse = ha.idAdresse
					WHERE ha2.idAdresse = ha.idAdresse
					".$sqlRues_reqEvenement."
							GROUP BY ha.idAdresse , ha.idHistoriqueAdresse
							HAVING ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
							";


            //echo $queryEvenements."<br>";
            $resEvenements = $this->connexionBdd->requete($queryEvenements);
            $arrayListeEvenementsGroupeAdresse=array();
            while ($fetchEvenement = mysql_fetch_assoc($resEvenements)) {
                $arrayListeEvenementsGroupeAdresse[] = $fetchEvenement['idEvenement'];
            }

            if (count($arrayListeEvenementsGroupeAdresse)>0) {
            // on recherche les evenements du groupe d'adresses
                $listeEvenementsGroupeAdresse = implode("','", $arrayListeEvenementsGroupeAdresse);
                $queryEvenementAssocies = "
						SELECT idEvenementAssocie FROM _evenementEvenement WHERE idEvenement in ('".$listeEvenementsGroupeAdresse."')
								";

                $resEvenementsAssocies = $this->connexionBdd->requete($queryEvenementAssocies);

                $arrayListeEvenementsAssocies=array();
                while ($fetchEvenementsAssocies = mysql_fetch_assoc($resEvenementsAssocies)) {
                    $arrayListeEvenementsAssocies[] = $fetchEvenementsAssocies['idEvenementAssocie'];
                }

                $listeEvenementsAssocies = implode("','", $arrayListeEvenementsAssocies);

                $queryImage = " SELECT hi.idImage as idImage , hi.idHistoriqueImage as idHistoriqueImage, hi.dateUpload as dateUpload
						FROM historiqueImage hi2, historiqueImage hi
						RIGHT JOIN _evenementImage ei ON ei.idImage = hi.idImage
						WHERE ei.idEvenement in ('".$listeEvenementsAssocies."')
								AND hi2.idImage = hi.idImage
								GROUP BY hi.idImage , hi.idHistoriqueImage
								HAVING hi.idHistoriqueImage = max(hi2.idHistoriqueImage)
								LIMIT 1
								"; // on limit a 1 sinon cela peut prendre du temps

                $resImage = $this->connexionBdd->requete($queryImage);
                if (mysql_num_rows($resImage)>0) {
                    $fetchImage = mysql_fetch_assoc($resImage);
                    $url = $chemin.$fetchImage['dateUpload'].'/'.$fetchImage['idHistoriqueImage'].".jpg";
                }
            }
        }
        return $url;
    }
15577
public function getHtmlFormulaireParcours($params = array())
    {
        $html                = "";
        $bbCode              = new bbCodeObject();
        $recherche           = new archiRecherche();
        $idParcours          = 0;
        $libelleParcours     = "";
        $titre               = "Ajout d'un parcours";
        $formAction          = $this->creerUrl('ajouterParcours', 'adminListeParcours', array());
        $checkedActif        = false;
        $dateAjout           = date("d/m/Y");
        $commentaireParcours = "";
        $idSource            = "0";
        $libelleSource       = "";
        if (isset($this->variablesGet['archiIdParcours']) && $this->variablesGet['archiIdParcours']!='') {
            $d                   = new dateObject();
            $titre               = "Modification d'un parcours";
            $idParcours          = $this->variablesGet['archiIdParcours'];
            $reqParcours         = "
            SELECT p.idParcours as idParcours,p.libelleParcours as libelleParcours,p.isActif as isActif,p.dateAjoutParcours as dateAjoutParcours,p.commentaireParcours as commentaireParcours,
                    s.nom as nomSource, tp.nom as nomTypeSource, s.idSource as idSource
            FROM parcoursArt p
            LEFT JOIN source s ON s.idSource = p.idSource
            LEFT JOIN typeSource tp ON tp.idTypeSource = s.idTypeSource
            WHERE p.idParcours = '".$idParcours."'";
            $resParcours         = $this->connexionBdd->requete($reqParcours);
            $fetchParcours       = mysql_fetch_assoc($resParcours);
            $libelleParcours     = $fetchParcours['libelleParcours'];
            $commentaireParcours = $fetchParcours['commentaireParcours'];
            $libelleSource       = stripslashes($fetchParcours['nomSource']." (".$fetchParcours['nomTypeSource'].")");
            $idSource            = $fetchParcours['idSource'];
            $dateAjout           = $d->toFrenchAffichage($fetchParcours['dateAjoutParcours']);
            if ($fetchParcours['isActif']==1) {
                $checkedActif = true;
            }
            $formAction = $this->creerUrl('modifierParcours', 'adminListeParcours', array());
        }
        $html        .= "<h1>$titre</h1>";
        $arrayBBCode  = $bbCode->getBoutonsMiseEnFormeTextArea(array('formName'=>'formParcours', 'fieldName'=>'commentaireParcours'));
        //coords
        $reqListeEtapes              = "SELECT idEvenementGroupeAdresse FROM etapesParcoursArt WHERE idParcours = '".$idParcours."'";
        $resListeEtapes              = $this->connexionBdd->requete($reqListeEtapes);
        $a = new archiAdresse();
        while ($fetchListeEtapes = mysql_fetch_assoc($resListeEtapes)) {
            $coords=$a->getCoordonneesFrom($fetchListeEtapes['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
            $points[]=$coords["latitude"].", ".$coords["longitude"];
        }
        $html.="<br/><br/>";
        include_once "includes/class.polylineEncoder.php";
        foreach ($points as $key => $point) {
            $points[$key] = explode(',', $point);
        }

        $encoder = new PolylineEncoder();
        @$polyline = $encoder->encode($points);
        $reqTrace              = "SELECT trace, levels FROM `parcoursArt` WHERE `idParcours` = ".mysql_escape_string($idParcours);
        $resTrace              = $this->connexionBdd->requete($reqTrace);
        $trace = mysql_fetch_assoc($resTrace);
        //
        $configFields = array(
            'idParcours'=>array('libelle'=>'idParcours', 'type'=>'hidden', 'error'=>'', 'value'=>'', 'default'=>$idParcours, 'htmlCode'=>''),
            'dateAjoutParcours'=>array('libelle'=>'date ajout', 'type'=>'date', 'error'=>'', 'value'=>'', 'default'=>$dateAjout, 'htmlCode'=>'', 'withDatePicker'=>true),
            'isActif'=>array('libelle'=>'est actif', 'type'=>'singleCheckBox', 'error'=>'', 'value'=>'', 'default'=>'', 'htmlCode'=>'', 'isChecked'=>$checkedActif, 'forceValueTo'=>'1'),
            'libelleParcours'=>array('libelle'=>'libelle', 'type'=>'text', 'error'=>'', 'value'=>'', 'default'=>$libelleParcours, 'htmlCode'=>"style='width:300px;'"),
            'commentaireParcours'=>array('libelle'=>'commentaire', 'type'=>'bigText', 'error'=>'', 'value'=>'', 'default'=>$commentaireParcours, 'htmlCode'=>"style='width:400px;height:200px;'", 'htmlCodeBeforeField'=>$arrayBBCode['boutonsHTML'], 'htmlCode2'=>$arrayBBCode['divAndJsAfterForm']),
            'idSourcetxt'=>array('libelle'=>'source', 'type'=>'text', 'error'=>'', 'value'=>'', 'default'=>$libelleSource, 'htmlCode'=>'', 'htmlCode2'=>"<input type='button' name='choixSource' onclick=\"document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='idSource';\" value='Choisir'>"),
            'idSource'=>array('libelle'=>'idSource', 'type'=>'hidden', 'error'=>'', 'value'=>'', 'default'=>$idSource, 'htmlCode'=>""),
            "polyline"=>array("libelle"=>_("Liste des coordonnées")." ("._("à utiliser avec")." <a href='https://developers.google.com/maps/documentation/utilities/polylineutility'>Interactive Polyline Encoder</a>)", "type"=>"text", "default"=>$polyline->points, "htmlCode"=>"readonly onclick='this.select();'", "error"=>""),
            "levels"=>array("libelle"=>_("Niveaux"), "type"=>"text", "default"=>$polyline->levels, "htmlCode"=>"readonly onclick='this.select();'", "error"=>""),
            "trace"=>array("libelle"=>_("Coordonnées détaillées"), "type"=>"text", "default"=>$trace["trace"], "htmlCode"=>"", "error"=>""),
            "newLevels"=>array("libelle"=>_("Niveaux détaillés"), "type"=>"text", "default"=>$trace["levels"], "htmlCode"=>"", "error"=>"")
        );
        $configForm   = array('fields'=>$configFields, 'formAction'=>$formAction, 'formName'=>'formParcours');
        $f            = new formGenerator();
        $html        .= $f->afficherFromArray($configForm);
        $this->addToJsHeader($recherche->getPopupChoixSource('ajoutModifParcoursAdmin'));
        
        
        return $html;
    }
828237
public function gestionSondage($params = array())
	{
		$t = new Template($this->getCheminPhysique().$this->cheminTemplates);

		if (isset($params['modeAffichage']) && $params['modeAffichage']=='resultatAccueil') {
			$t->set_filenames(array('sondage'=>'sondageRESULTAT.tpl'));
		} else {
			$t->set_filenames(array('sondage'=>'sondageTEMPORAIRE.tpl'));


			$c = new calqueObject();
			$t->assign_vars(
					array('jsScroll'=>$c->getJsScrollDivWithPage(
							array(
									'conditionsToScrollBegin'=>"if ((document.getElementById('texteSuite').style.display=='block' && y_<4650) || (document.getElementById('texteSuite').style.display=='none' && y_<100))",
									'identifiantDivToScroll'=>"divScroll"
							)
					))
			);

			// verification : est ce que la personne a deja participé aujourd'hui
			$ip = $_SERVER['REMOTE_ADDR'];
			if (trim($ip)=='') {
				// on assigne une ip temporaire,  soit un nombre aleatoire pour pouvoir comptabiliser le vote quand meme ,  on pourra toujours les supprimer si quelqu'un exagere
				$ip = rand(0, 1000000);
			}

			$reqVerif = "SELECT idResultat FROM sondagesResultats WHERE ip like '$ip' AND date=CURDATE()";
			$resVerif = $this->connexionBdd->requete($reqVerif);
			if ( isset($params['modeAffichage']) && $params['modeAffichage']=='noFormulaire' || mysql_num_rows($resVerif)>0) {
				$t->assign_block_vars('resultatsSondage', array('resultats'=>$this->afficheResumeSondage(array('idSondage'=>1))));
			} else {
				// nouvelle participation
				// recuperation des propositions
				$reqPropositions = "SELECT idProposition, libelleProposition FROM sondagesPropositions WHERE idSondage='1'";
				$resPropositions = $this->connexionBdd->requete($reqPropositions);
				$t->assign_block_vars('afficheFormSondage', array());
				while ($fetchPropositions = mysql_fetch_assoc($resPropositions)) {
					$t->assign_block_vars('afficheFormSondage.propositions', array('idProposition'=>$fetchPropositions['idProposition'], 'libelleProposition'=>$fetchPropositions['libelleProposition']));
				}


				$t->assign_vars(array('formAction'=>$this->creerUrl('enregistrerEntreeSondage', 'afficheAccueil')));

			}
		}

		if (isset($params['afficheToutLeTexte']) && $params['afficheToutLeTexte']==true) {
			$displaySuite = "block";
			$styleAccueil = "";
			$lienSuite = "";
		} else {
			$displaySuite = "none";
			$styleAccueil = "border:3px solid #000000;padding:5px;";
			if (isset($params['modeAffichage']) && $params['modeAffichage']=='resultatAccueil') {
				$lienSuite = "<a href='".$this->creerUrl('', 'afficheSondageResultatGrand')."'>"._("Lire la suite")."</a>";
			} else {
				$lienSuite = "<a href='".$this->creerUrl('', 'afficheSondageGrand')."'>"._("Lire la suite")."</a>";
			}
		}

		if (isset($params['modeAffichage']) && $params['modeAffichage']=='resultatAccueil') {

			$t->assign_vars(
					array(
							'pictoSrc'=>'',
							'displaySuite'=>$displaySuite,
							'lienSuite'=>$lienSuite,
							'styleAccueil'=>$styleAccueil,
							'urlIconePdf'=>$this->urlImages.'logo_pdf.jpg',
							'urlDocumentPdf'=>$this->urlImages.'publicite/avenirFinancementArchiStrasbourg.pdf',
							'resultats'=>$this->afficheResumeSondage(array('idSondage'=>1)),
							'urlArticlePresentation'=>$this->creerUrl('', 'afficheSondageGrand')
					)
			);
		} else {
			$t->assign_vars(
					array(
							'pictoSrc'=>$this->urlImages.'pictoSondage.jpg',
							'displaySuite'=>$displaySuite,
							'lienSuite'=>$lienSuite,
							'styleAccueil'=>$styleAccueil,
							'urlIconePdf'=>$this->urlImages.'logo_pdf.jpg',
							'urlDocumentPdf'=>$this->urlImages.'publicite/avenirFinancementArchiStrasbourg.pdf'
					)
			);
		}

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


		return $html;
	}
1023919
public function afficheHistoriqueEvenement($params = array())
    {
        $html="";
        $adresse = new archiAdresse();
        if (isset($params['idEvenement'])) {
            $req = "SELECT idHistoriqueEvenement FROM historiqueEvenement WHERE idEvenement=".$params['idEvenement']." order by dateCreationEvenement ASC";
            $res = $this->connexionBdd->requete($req);

            $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($params['idEvenement']);
            if ($idPerson=archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                $person= new archiPersonne();
                $infos=$person->getInfosPersonne($idPerson);
                $html.="<h2 class='h1'><a href='".$this->creerUrl('', '', array('archiAffichage'=>'evenementListe', 'selection'=>"personne", 'id'=>$idPerson))."'>".$infos["prenom"]." ".$infos["nom"]."</a></h2>";
            } else {
                $html.=$adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
            }
            $html.=$this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $params['idEvenement']);
            $html.="<h2>"._("Historique de mise à jour")."</h2><br>";

            while ($fetch = mysql_fetch_assoc($res)) {
                $arrayAfficher = $this->afficher(null, 'consultationHistoriqueEvenement', $fetch['idHistoriqueEvenement']);
                $html.="<div class='divConsultationHistoriqueEvenement'>".$arrayAfficher['html']."</div>";
                //$html.=$this->getListCommentairesEvenements($fetch['idHistoriqueEvenement']);
                //$html.=$this->getFormulaireCommentairesHistorique($fetch['idHistoriqueEvenement'],$this->getCommentairesFields());
            }
        }

        return $html;
    }