Afficher le formulaire d'ajout/édition de parcours

@param array $params Paramètres

@return string HTML
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;
    }
797662
private function buildQueryString(array $params)
    {
        $flattened = [];
        foreach ($params as $key => $value) {
            $flattened[] = $key . '=' . $value;
        }
        $queryString = implode('&', $flattened);

        return $queryString;
    }
3167
public function formulaireActualites($params = array())
    {
        $html = "";
        $f    = new formGenerator();
        $d    = new dateObject();
        $c    = new calqueObject();
        $this->addToJsHeader("<script>".$c->getJSScrollHeight()."</script>");
        $html                                    .= $c->getDiv(array('width'=>900, 'lienSrcIFrame'=>'', 'titre'=>'Prévisualisation'));
        $idActualite                              = 0;
        $boutonNouveau                            = "";
        $boutonSupprimer                          = "";
        $boutonPrevisualiser                      = "<input type='button' name='previsualisation' value='Prévisualisation' onclick=\"tinyMCE.triggerSave(true,true);document.getElementById('".$c->getJSDivId()."').style.top=(50+getScrollHeight())+'px';document.getElementById('".$c->getJSIFrameId()."').src='".$this->creerUrl('', 'previsualisationActualite', array())."';".$c->getJSOpenPopup()."\">";
        $boutonValiderEtEnvoiMailPrevisualisation = "<input type='button' name='valideEtEnvoi' id='valideEtEnvoi' value=\"Envoyer le mail tout de suite\" onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1';document.getElementById('formActu').submit();\">
        <input type='button' name='valideEtPrev' id='valideEtPrev' value='"._("Prévisualiser le mail")."' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">
        <input type='button' name='testMail' id='testMail' value='"._("Envoyer un mail de test")."' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1&testMail=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">
        ";
        if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite']!='') {
            $idActualite           = $this->variablesGet['archiIdActualite'];
            $reqActu               = "SELECT date,titre, sousTitre,photoIllustration, texte,urlFichier, fichierPdf, desactive,texteMailHebdomadaire,envoiMailHebdomadaire FROM actualites WHERE idActualite='".$idActualite."'";
            $resActu               = $this->connexionBdd->requete($reqActu);
            $fetchActu             = mysql_fetch_assoc($resActu);
            $date                  = $d->toFrenchAffichage($fetchActu['date']);
            $titre                 = $fetchActu['titre'];
            $sousTitre             = $fetchActu['sousTitre'];
            $illustration          = $fetchActu['photoIllustration'];
            $description           = $fetchActu['texte'];
            $urlFichier            = $fetchActu['urlFichier'];
            $fichierPdf            = $fetchActu['fichierPdf'];
            $isDesactivated        = $fetchActu['desactive'];
            $texteMailHebdomadaire = $fetchActu['texteMailHebdomadaire'];
            $isEnvoi               = $fetchActu['envoiMailHebdomadaire'];
            $formAction            = $this->creerUrl('modifierActu', 'adminActualites', array('archiIdActualite'=>$idActualite));
            $boutonNouveau         = "<input type='button' name='nouveauButton' value='Nouveau' onclick=\"location.href='".$this->creerUrl('', 'adminActualites', array())."'\">";
            $boutonSupprimer       = "<input type='button' name='supprimerBouton' value='Supprimer' onclick=\"location.href='".$this->creerUrl('supprimerActu', 'adminActualites', array("idActuSuppr"=>$idActualite))."'\">";
        } else {
            $date                  = date("d/m/Y");
            $titre                 = "";
            $sousTitre             = "";
            $illustration          = "";
            $description           = "";
            $urlFichier            = "";
            $fichierPdf            = "";
            $isDesactivated        = 0;
            $texteMailHebdomadaire = "";
            $isEnvoi               = 0;
            $formAction            = $this->creerUrl('ajouterActu', 'adminActualites', array('check'=>1));

            // check sert juste a ne pas avoir a gerer le ? ou le & dans l'url quand on rajoute un parametre en js
        }
        $idActualitePathImage = "";
        if ($idActualite!=0) {
            $idActualitePathImage = $idActualite;
        }

        // bibliotheques d'images
        $fileObject    = new fileObject();
        $arrayFiles    = $fileObject->getListeFichiersArrayFrom($this->getCheminPhysique()."images/actualites/".$idActualite."/");
        $listeFichiers = "";
        $t             = new tableau();
        foreach ($arrayFiles as $indiceFichier=>$fichier) {
            if (strtolower($fileObject->getExtensionFromFile($fichier))=='jpg' || strtolower($fileObject->getExtensionFromFile($fichier))=='gif' || strtolower($fileObject->getExtensionFromFile($fichier))=='png') {
                $t->addValue("<a onclick='injectInTinyMce(\"<img src=\\\"".$this->getUrlImage()."actualites/".$idActualite."/".str_replace("'", "\\\'", $fichier)."\\\" border=0>\");'><img src=\"".$this->getUrlImage()."actualites/".$idActualite."/".$fichier."\" border=0 width=100 height=100></a>");
                $t->addValue("$fichier");
            } else {
                $t->addValue("&nbsp;");
                $t->addValue("$fichier");
            }
        }
        $listeFichiers = $t->createTable(2);
        $gestionBibliothequeImages = "Bibliothèque d'images de l'actualité <span style='font-size:11px;'>(cliquez sur une image pour l'inserer à la position du curseur)</span> : <div id='listeFichiers' style='background-color:#87CEFF;width:300px;height:200px;overflow:scroll;'>".$listeFichiers."</div>";
        $this->addToJsHeader(
            "<script>
                function injectInTinyMce(txt)
                {
                    tinyMCE.execInstanceCommand('texte','mceInsertContent',false,txt);
                }
                
                function goRedim(idActualite)
                {
                    // validation du formulaire pour creer l'identifiant de l'actu et pouvoir ranger les photos
                    document.getElementById('formActu').submit();
                }
            </script>"
        );

        // on ne gere pas de timestamp , on assume que seul l'admin fera des mises a jour des actualités
        $applet       = $fileObject->getAppletUploadMultiple(array('cheminApplet'=>$this->getUrlRacine()."/includes/", 'uploadDirPart1'=>$this->getCheminPhysique()."images/", 'uploadDirPart2'=>"uploadMultipleActualites/", 'jsFunctionNameOnExit'=>"goRedim($idActualite)"));
        $configFields = array('idActualite'=>array('libelle'=>"idActualite", 'type'=>'hidden', 'required'=>true, 'value'=>'', 'forceValueTo'=>$idActualite, 'htmlCode'=>'', 'error'=>''), 'desactive'=>array('libelle'=>"désactiver", 'type'=>'singleCheckBox', 'required'=>false, 'value'=>'', 'forceValueTo'=>'1', 'isChecked'=>$isDesactivated, 'htmlCode'=>'', 'error'=>'', 'default'=>''), 'date'=>array('libelle'=>"date", 'withDatePicker'=>true, 'type'=>'date', 'required'=>true, 'value'=>'', 'forceValueTo'=>$date, 'htmlCode'=>'', 'error'=>''), 'titre'=>array('libelle'=>"titre", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$titre, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'sousTitre'=>array('libelle'=>"sous-titre", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$sousTitre, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'photoIllustration'=>array('libelle'=>"illustration", 'type'=>'uploadImage', 'required'=>false, 'value'=>'', 'forceValueTo'=>$illustration, 'physicalImagePathForTestExists'=>$this->getCheminPhysique()."images/actualites/".$idActualitePathImage."/", 'urlImagePathForDisplayInForm'=>$this->getUrlImage()."actualites/".$idActualitePathImage."/", 'htmlCode'=>'', 'error'=>''), 'texte'=>array('libelle'=>"description", 'type'=>'tinyMCE', 'required'=>false, 'value'=>'', 'forceValueTo'=>$description, 'htmlCode'=>"cols=80 rows=30", 'error'=>'', 'htmlCode2'=>$gestionBibliothequeImages."<div><a onclick=\"if(document.getElementById('divApplet').style.display=='none'){document.getElementById('divApplet').style.display='block';}else{document.getElementById('divApplet').style.display='none';}\" style='cursor:pointer;'>Voir/cacher ajouter une image</a></div><div id='divApplet' style='float:left;display:none'>".$applet."</div>"), 'urlFichier'=>array('libelle'=>"url redirection", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$urlFichier, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'fichierPdf'=>array('libelle'=>"fichier pdf", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$fichierPdf, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'texteMailHebdomadaire'=>array('libelle'=>"description mail hebdomadaire <span style='color:red;'>(ne pas oublier de préciser le titre)</span>", 'type'=>'tinyMCE', 'required'=>false, 'value'=>'', 'forceValueTo'=>$texteMailHebdomadaire, 'htmlCode'=>"cols=80 rows=30", 'error'=>''), 'envoiMailHebdomadaire'=>array('libelle'=>"envoi avec la newsletter hebdomadaire", 'type'=>'singleCheckBox', 'required'=>false, 'value'=>'', 'forceValueTo'=>'1', 'isChecked'=>$isEnvoi, 'htmlCode'=>'', 'error'=>'', 'default'=>''));
        $configForm   = array("fields"=>$configFields, 'formAction'=>$formAction, 'codeHtmlAfterSubmitButton'=>$boutonNouveau.$boutonSupprimer.$boutonPrevisualiser.$boutonValiderEtEnvoiMailPrevisualisation, 'formName'=>'formActu');
        $html        .= $f->afficherFromArray($configForm);
        return $html;
    }
48342
public function getNbEvenementsInHistorique($params = array())
    {
        $retour=0;
        if (isset($params['idEvenement'])) {
        //debug("A modifier vis  a vis de l'historique  (en principe la requete est ok");
            $req = "SELECT count(idHistoriqueEvenement) as nb FROM historiqueEvenement WHERE idEvenement=".$params['idEvenement'];
            $res = $this->connexionBdd->requete($req);
            $fetch = mysql_fetch_assoc($res);
            $retour = $fetch['nb'];
        }

        return $retour;
    }
183756
public function getJsGoogleMapNewCenter($params = array())
    {
        //$googleMap = new googleMap(array('googleMapKey'=>$this->googleMapKey));
        $retour="";
        //$retour=  $googleMap->getJsFunctions();
        $rayon = 250;
        if (isset($this->variablesGet['rayon']) && $this->variablesGet['rayon']!='') {
            $rayon = $this->variablesGet['rayon'];
        }


        $arrayConfigCoordonnees = $this->getArrayGoogleMapConfigCoordonneesFromCenter(array('urlRedirectedToParent'=>true,'longitude'=>$this->variablesGet['longitudeCenter'],'latitude'=>$this->variablesGet['latitudeCenter'],'rayon'=>$rayon));


        if (isset($this->variablesGet['noRefresh']) && $this->variablesGet['noRefresh']=='1') {
        } else {
            $retour .="map.clearOverlays();";
        }



        if (isset($this->variablesGet['noRefresh']) && $this->variablesGet['noRefresh']=='1') {
        // pas besoin de replace le markeur central
        } else {
            // on replace le markeur indiquant l'adresse courante
            if (isset($this->variablesGet['latitudeHome']) && isset($this->variablesGet['longitudeHome']) && $this->variablesGet['latitudeHome']!='' && $this->variablesGet['longitudeHome']!='') {
                $retour.="

                var iconHome = new GIcon();

                iconHome.image = \"".$this->getUrlImage()."placeMarker.png\";
                //iconHome.shadow = \"http://labs.google.com/ridefinder/images/mm_20_shadow.png\";
                iconHome.iconSize = new GSize(19, 32);
                iconHome.shadowSize = new GSize(22, 20);
                iconHome.iconAnchor = new GPoint(5, 26);
                iconHome.infoWindowAnchor = new GPoint(5, 1);

                markerHome = new GMarker(new GLatLng(".$this->variablesGet['latitudeHome'].",".$this->variablesGet['longitudeHome']."),{icon:iconHome});
                map.addOverlay(markerHome);
                ";
            }
        }

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


                icon.image = '".$this->getUrlImage()."pointGM.png';
                icon.shadow = '';
                icon.iconSize = new GSize(9, 9);
                icon.shadowSize = new GSize(22, 20);
                icon.iconAnchor = new GPoint(0, 0); // 2,24
                icon.infoWindowAnchor = new GPoint(5, 1);
                var iconMarker = new GIcon(icon);"
                ;
        foreach ($arrayConfigCoordonnees['arrayConfigCoordonnees'] as $indice => $values) {
            $retour.="
                    point$indice = new GLatLng(".$values['latitude'].",".$values['longitude'].");
                    marker$indice = new GMarker(point$indice,iconMarker);
                    overlay$indice = map.addOverlay(marker$indice);";
            $retour.="                  var eLabel$indice = new ELabel(point$indice,\"".str_replace("\"", "&quot;", $values['label'])."\",\"styleLabelGoogleMap\");
                    eLabel$indice.pixelOffset = new GSize(20,-10);
                    map.addOverlay(eLabel$indice);
                    eLabel$indice.hide();";
            $retour.="function onClickFunction$indice(overlay, point){currentMarker = marker$indice; currentLabel=eLabel$indice; ".$values['jsCodeOnClickMarker']."}";
                    $retour.="GEvent.addListener(marker$indice, 'click', onClickFunction$indice);";


            if (isset($values['jsCodeOnMouseOverMarker'])) {
                $retour.="function onMouseOverFunction$indice(overlay,point){currentMarker = marker$indice; currentLabel = eLabel$indice; ".$values['jsCodeOnMouseOverMarker']."}";
                $retour.="GEvent.addListener(marker$indice,'mouseover',onMouseOverFunction$indice);";
            }

            if (isset($values['jsCodeOnMouseOutMarker'])) {
                $retour.="function onMouseOutFunction$indice(overlay,point){currentMarker = marker$indice; currentLabel = eLabel$indice; ".$values['jsCodeOnMouseOutMarker']."}";
                $retour.="GEvent.addListener(marker$indice,'mouseout',onMouseOutFunction$indice);";
            }
        }

        return $retour;
    }
608719
final public static function js(array $params)
    {
        return ("<script type='text/javascript' src='".
            FEnv::get("host.web.components.apps").strtolower(FEnv::get("framework.env"))."/".
            strtolower(FEnv::get("app.call"))."/".
            ((isset($params['path']))? $params['path']."." : "")."js'></script>");
    }
819397
private static function formatParameters(array $params)
    {
        return '[' . implode(', ', array_map(static function ($param) {
            if (is_resource($param)) {
                return (string) $param;
            }

            $json = @json_encode($param);

            if (! is_string($json) || $json === 'null' && is_string($param)) {
                // JSON encoding failed, this is not a UTF-8 string.
                return sprintf('"%s"', preg_replace('/.{2}/', '\\x$0', bin2hex($param)));
            }

            return $json;
        }, $params)) . ']';
    }
277732
protected function formatOptions(array &$params)
    {
        if (!is_array($params)) {
            return $params;
        }

        foreach ($params as $param => $value) {
            $params[$param] = Html::tag('strong', '\'' . $param . '\' => ') . (string)$value;
        }

        return $params;
    }
413320
public function getJsScrollDivWithPage($params = array())
		{
			$html="";
			$identifiantDivToScroll = "DIV_MOVE";
			if(isset($params['identifiantDivToScroll']) && $params['identifiantDivToScroll']!='')
			{
				$identifiantDivToScroll = $params['identifiantDivToScroll'];
			}
			
			$conditionsToScrollBegin="";
			$conditionsToScrollEnd="";
			if(isset($params['conditionsToScrollBegin']) && $params['conditionsToScrollBegin']!='')
			{
				$conditionsToScrollBegin=$params['conditionsToScrollBegin']."{"; // les accolades de la condition sont ajout�es automatiquement
				$conditionsToScrollEnd="}";
			}
			

			$baliseJsDebut="<script  >";
			$baliseJsFin="</script>";
			if(isset($params['withoutJsBalises']) && $params['withoutJsBalises']==true)
			{
				$baliseJsDebut="";
				$baliseJsFin="";
			}
			
		
			$html.="$baliseJsDebut
		     //---------------------------------------------------------
		     // Nom Document : gf_scroll_div.js
		     // Auteur : G.Ferraz
		     // Objet : menu flottant
		     // Creation : 01.01.2007
		     //---------------------------------------------------------
		     // Mise � Jour : 01.11.2007
		     //---------------------------------------------------------
		     // OUTILS /////////////////////////////
		     //---------------------------------------------
		     function Add_Event( obj_, event_, func_, mode_){
		     if( obj_.addEventListener)
		     obj_.addEventListener( event_, func_, mode_? mode_:false);
		     else
		     obj_.attachEvent( 'on'+event_, func_);
		     }
		     //----------------------
		     function GetScrollPage(){
		     var Left;
		     var Top;
		     var DocRef;
		    
		     if( window.innerWidth){
		     with( window){
		     Left = pageXOffset;
		     Top = pageYOffset;
		     }
		     }
		     else{ // Cas Explorer a part
		     if( document.documentElement && document.documentElement.clientWidth)
		     DocRef = document.documentElement;
		     else
		     DocRef = document.body;
		    
		     with( DocRef){
		     Left = scrollLeft;
		     Top = scrollTop;
		     }
		     }
		     return({top:Top, left:Left});
		     }
		     //---------------------------
		     function ObjGetPosition(obj_){
		     var PosX = 0;
		     var PosY = 0;
		     //-- suivant type en parametre
		     if( typeof(obj_)=='object')
		     var Obj = obj_;
		     else
		     var Obj = document.getElementById( obj_);
		     //-- Si l'objet existe
		     if( Obj){
		     //-- Recup. Position Objet
		     PosX = Obj.offsetLeft;
		     PosY = Obj.offsetTop;
		     //-- Si propriete existe
		     if( Obj.offsetParent){
		     //-- Tant qu'un parent existe
		     while( Obj = Obj.offsetParent){
		     if( Obj.offsetParent){ // on ne prend pas le BODY
		     //-- Ajout position Parent
		     PosX += Obj.offsetLeft;
		     PosY += Obj.offsetTop;
		     }
		     }
		     }
		     }
		     //-- Retour des positions
		     return({left:PosX, top:PosY});
		     }
		     //-------------------------------------
		     // MENU FLOTTANT //////////////////////
		     //-------------------------------------
		     var IdTimer_1;
		     var IdTimer_2;
		     var O_DivScroll;
		     var Rapport = 1.0/20.0; // On divise par 20
		     var Mini = 2* Rapport;
		     //-----------------------
		     function DIV_Scroll( id_){
		     var Obj = document.getElementById( id_);
		     this.Obj = Obj;
		     if( Obj){
		     Obj.style.position = 'absolute'; // IMPERATIF
		     //-- Recup position de depart
		     var Pos = ObjGetPosition( id_);
		     this.PosX = Pos.left;
		     this.PosY = Pos.top;
		     this.DebX = this.PosX;
		     this.DebY = this.PosY;
		     this.NewX = 0;
		     this.NewY = 0;
		     this.Move = DIV_Deplace;
		     }
		     }
		     //---------------------------
		     function DIV_Deplace( x_, y_){
		     if( arguments[0] != null){
		     this.PosX = x_;
		     this.Obj.style.left = parseInt(x_) +'px';
		     }
		     if( arguments[1] != null){
				$conditionsToScrollBegin
				this.PosY = y_;
				this.Obj.style.top = parseInt(y_) +'px';
				$conditionsToScrollEnd
		     }
		     }
		     //---------------------------
		     function DIV_Replace( x_, y_){
		     //-- Calcul Delta deplacement
		     var Delta_X = (x_ -O_DivScroll.PosX) *Rapport;
		     var Delta_Y = (y_ -O_DivScroll.PosY) *Rapport;
		     //-- Test si fin deplacement
		     if((( Delta_Y < Mini)&&( Delta_Y > -Mini))&&
		     (( Delta_X < Mini)&&( Delta_X > -Mini))){
		     clearInterval( IdTimer_1);
		     O_DivScroll.Move( x_, y_);
		     }
		     else{
		     O_DivScroll.Move( O_DivScroll.PosX +Delta_X, O_DivScroll.PosY +Delta_Y);
		     }
		     }
		     //------------------------
		     function DIV_CheckScroll(){
		     var Scroll = GetScrollPage();
		     //-- New position du menu
		     O_DivScroll.NewX = Scroll.left +O_DivScroll.DebX;
		     O_DivScroll.NewY = Scroll.top +O_DivScroll.DebY;
		     //-- Si pas la bonne Position
		     if(( O_DivScroll.PosY != O_DivScroll.NewY)||( O_DivScroll.PosX != O_DivScroll.NewX)){
		     //-- Clear l'encours
		     clearInterval( IdTimer_1);
		     IdTimer_1 = setInterval(\"DIV_Replace(\" + O_DivScroll.NewX +\",\" + O_DivScroll.NewY +\")\", 10);
		     }
		     return( true);
		     }
		     //-----------------------
		     function DIV_InitScroll(){
		     //-- Recup position Objet
		     O_DivScroll = new DIV_Scroll('$identifiantDivToScroll');
		     //-- Lance inspection si existe
		     if( O_DivScroll.Obj)
		     IdTimer_2 = setInterval('DIV_CheckScroll()',100);
		     }
		     //========================================
		     Add_Event( window, 'load', DIV_InitScroll);
		     //-- EOF --
			$baliseJsFin
			";
			
			return $html;
		}
438803
public function getPhotoFromEtape($params = array())
    {
        $retour = array('trouve'=>false);

        if (isset($params['idEtape']) && $params['idEtape']!='' && $params['idEtape']!='0') {
        // recuperation du groupe d'adresse de l'etape
            $req = "SELECT idEvenementGroupeAdresse FROM etapesParcoursArt WHERE idEtape='".$params['idEtape']."'";
            $res = $this->connexionBdd->requete($req);
            $fetch = mysql_fetch_assoc($res);

            if (isset($fetch['idEvenementGroupeAdresse'])) {
                $i = new archiImage();

                $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetch['idEvenementGroupeAdresse']);
                $idEvenementGroupeAdresse = $fetch['idEvenementGroupeAdresse'];

                $format = 'mini';
                if (isset($params['format']) && $params['format']!='') {
                    $format = $params['format'];
                }

                $illustration = $this->getUrlImageFromAdresse($idAdresse, $format, array('idEvenementGroupeAdresse'=>$idEvenementGroupeAdresse));

                $retour = $illustration;
            }
        }
        return $retour;
    }
41703
public function getGoogleMapParcours($params = array())
    {
        $html="";
        $idParcours = 0;
        if (isset($this->variablesGet['archiIdParcours']) && $this->variablesGet['archiIdParcours']!='') {
            $idParcours = $this->variablesGet['archiIdParcours'];
        }

        if (isset($params['idParcours']) && $params['idParcours']!='') {
            $idParcours = $params['idParcours'];
        }

        $width=500;
        if (isset($params['width']) && $params['width']!='') {
            $width = $params['width'];
        }

        if ($idParcours!=0) {
            $gm = new googleMap(array('googleMapKey'=>$this->googleMapKey,'width'=>$width));
            $html.=$gm->getJsFunctions();


            $reqParcours = "SELECT idEtape,idEvenementGroupeAdresse,position FROM etapesParcoursArt WHERE idParcours='".$idParcours."' ORDER BY position ASC";
            $resParcours = $this->connexionBdd->requete($reqParcours);

            $numEtape=1;
            $arrayEtapes = array();
            $i=0;
            while ($fetchParcours = mysql_fetch_assoc($resParcours)) {
                $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetchParcours['idEvenementGroupeAdresse']);
                $coordonnees = $this->getCoordonneesFrom($fetchParcours['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
                $intituleAdresse = $this->getIntituleAdresseFrom($fetchParcours['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); // attention ceci concernera une adresse parmi plusieurs possible dans le groupe d'adresse , a modifier
                $intituleAdresseRechercheGeo = $this->getIntituleAdresseFrom($fetchParcours['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('noQuartier'=>true,'noSousQuartier'=>true));
                $arrayEtapes[$i]['latitude']=$coordonnees['latitude'];
                $arrayEtapes[$i]['longitude']=$coordonnees['longitude'];
                $arrayEtapes[$i]['libelle']='';
                $arrayEtapes[$i]['adresseForGeolocalisation'] = $intituleAdresseRechercheGeo;
                $arrayEtapes[$i]['label']=$intituleAdresse;
                $arrayEtapes[$i]['jsCodeOnMouseOverMarker'] = "currentLabel.show();";
                $arrayEtapes[$i]['jsCodeOnMouseOutMarker'] = "currentLabel.hide();";
                $arrayEtapes[$i]['jsCodeOnClickMarker'] = "location.href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail',"archiIdAdresse"=>$idAdresse,"archiIdEvenementGroupeadresse"=>$fetchParcours['idEvenementGroupeAdresse']), false, false)."';";
                $numEtape++;
                $i++;
            }

            if (isset($params['getCoordonneesParcours']) && $params['getCoordonneesParcours']==true) {
                $html.= $gm->getMap(array('idDivDisplayEtapesText'=>'parcoursDetail','travelMode'=>'walking','listeCoordonneesParcours'=>$arrayEtapes,'urlImageIcon'=>$this->getUrlImage()."pointGM.png",'pathImageIcon'=>$this->getCheminPhysique()."images/pointGM.png",'getCoordonneesParcours'=>true,'actionFormOnSubmitVertices'=>$this->creerUrl('', '', array()),'noDisplayParcoursGoogleAutomaticDescription'=>true));
            } else {
                $polyline=mysql_fetch_object($this->connexionBdd->requete("SELECT trace, levels FROM parcoursArt WHERE idParcours = '$idParcours'"));

                $html.= $gm->getMap(array('idDivDisplayEtapesText'=>'parcoursDetail','travelMode'=>'walking','listeCoordonneesParcours'=>$arrayEtapes,'urlImageIcon'=>$this->getUrlImage()."pointGM.png",'pathImageIcon'=>$this->getCheminPhysique()."images/pointGM.png", "polyline"=>$polyline->trace, "levels"=>$polyline->levels));
            }

            if (isset($this->variablesPost['submitVertices'])) {
            // on recupere donc les vertices du parcours
                // enregistrement dans la table et reperage des etapes

                // d'abord on supprime les valeurs precedentes
                $reqSupprVertices = "DELETE FROM verticesParcours WHERE idParcours='".$idParcours."'";
                $resSupprVertices = $this->connexionBdd->requete($reqSupprVertices);
                foreach ($this->variablesPost['longitudes'] as $indice => $valueLongitude) {
                    $valueLatitude = $this->variablesPost['latitudes'][$indice];

                    $reqAddVertices = "INSERT INTO verticesParcours (idParcours,idEtape,longitude,latitude,position) VALUES ('".$idParcours."','0','".$valueLongitude."','".$valueLatitude."','".($indice+1)."')";
                    $resAddVertices = $this->connexionBdd->requete($reqAddVertices);
                }

                // ensuite on affiche chacun des points avec des marqueurs deplacables
            }
        }

        return $html;
    }
584750
public function getFormulaireGestionDroits($params=array())
    {
        $retour="";
        
        $idProfilCourant = 1;
        if (isset($this->variablesGet['archiIdProfil'])
            && $this->variablesGet['archiIdProfil']!=''
            && $this->variablesGet['archiIdProfil']!='0'
        ) {
            $idProfilCourant = $this->variablesGet['archiIdProfil'];
        }
        
        $reqElements = "SELECT * FROM droitsElementsSite";
        /*"SELECT * FROM droits
         * WHERE idProfil=(SELECT idProfil FROM droitsProfils
         * WHERE libelle='".$params['nomProfil']."')";*/
        $resElements = $this->connexionBdd->requete($reqElements);
        $tableau = new tableau();
        
        $tableau->addValue("Tag élément du site", "style='font-weight:bold;'");
        $tableau->addValue("droits", "style='font-weight:bold;'");
        
        while ($fetchElements = mysql_fetch_assoc($resElements)) {
            $tableau->addValue($fetchElements['libelle']);
            
            $reqProfil = "
                    SELECT d.idDroit as idDroit, d.idProfil as idProfil,
                    d.idElementSite as idElementSite, d.acces as acces,
                    des.libelle as libelleElementSite,dp.libelle as libelleProfil
                    FROM droits d
                    LEFT JOIN droitsElementsSite des
                        ON des.idElementSite = d.idElementSite
                    LEFT JOIN droitsProfils dp ON dp.idProfil = d.idProfil
                    WHERE dp.idProfil='".$idProfilCourant."'
                    AND des.idElementSite='".$fetchElements['idElementSite']."'
                    ";
            
            $resProfil = $this->connexionBdd->requete($reqProfil);
            $fetchProfil=mysql_fetch_assoc($resProfil);
            
            

            $checked="";
            if (isset($fetchProfil['acces']) && $fetchProfil['acces']=='1') {
                $checked="checked";
            }
            $tableau->addValue(
                "<input type='checkbox'name='idElementSite[]'
                value='".$fetchElements['idElementSite']."' $checked>"
            );
        }
        
        $retour = $tableau->createHtmlTableFromArray(2);
        $retour.="<input type='hidden' name='idProfilCourant'
            value='".$idProfilCourant."'>";
        return $retour;
    }
773690
public function getURL($params = []){
      $params = (array)$params;
      return new URL(rtrim(preg_replace('(/+)','/',preg_replace_callback('(:(\w+))',function($m) use ($params){
        return isset($params[$m[1]]) ? $params[$m[1]].'/' : '';
      },strtr($this->URLPattern,['('=>'',')'=>'']))),'/')?:'/');
    }
429235
public static function getModelEquation(array $params): string
    {
        return sprintf('y = %fx^%f', $params[self::$A], $params[self::$B]);
    }
36544
public function getResult(...$params): string
    {
        $response = $this->getResponse(...$params);
        return $response->getBody()->getContents();
    }
1265460
public function getBoutonsMiseEnFormeTextArea($params = array())
    {

        $formName='formulaire';
        if (isset($params['formName']) && $params['formName']!='') {
            $formName = $params['formName'];
        }

        $fieldName = 'champsTextArea';
        if (isset($params['fieldName']) && $params['fieldName']!='') {
            $fieldName = $params['fieldName'];
        }

        $mouseOverGras = "";
        $mouseOutGras = "";
        if (isset($params['msgGras']) && $params['msgGras']!='') {
            $mouseOverGras = "getContextHelp('".$params["msgGras"]."');";
            $mouseOutGras = "closeContextHelp();";
        }

        $mouseOverUnderline = "";
        $mouseOutUnderline = "";
        if (isset($params['msgUnderline']) && $params['msgUnderline']!='') {
            $mouseOverUnderline = "getContextHelp('".$params["msgUnderline"]."');";
            $mouseOutUnderline = "closeContextHelp();";
        }


        $mouseOverItalic = "";
        $mouseOutItalic = "";
        if (isset($params['msgItalic']) && $params['msgItalic']!='') {
            $mouseOverItalic = "getContextHelp('".$params["msgItalic"]."');";
            $mouseOutItalic = "closeContextHelp();";
        }


        $mouseOverQuote = "";
        $mouseOutQuote = "";
        if (isset($params['msgQuote']) && $params['msgQuote']!='') {
            $mouseOverQuote = "getContextHelp('".$params["msgQuote"]."');";
            $mouseOutQuote = "closeContextHelp();";
        }

        $mouseOverUrlInterne = "";
        $mouseOutUrlInterne = "";
        if (isset($params['msgUrlInterne']) && $params['msgUrlInterne']!='') {
            $mouseOverUrlInterne = "getContextHelp('".$params["msgUrlInterne"]."');";
            $mouseOutUrlInterne = "closeContextHelp();";
        }

        $mouseOverUrlExterne = "";
        $mouseOutUrlExterne = "";
        if (isset($params['msgUrlExterne']) && $params['msgUrlExterne']!='') {
            $mouseOverUrlExterne = "getContextHelp('".$params["msgUrlExterne"]."');";
            $mouseOutUrlExterne = "closeContextHelp();";
        }

        $idDivApercu = "apercu";
        if (isset($params['idDivPrevisualisation']) && $params['idDivPrevisualisation']!='') {
            $idDivApercu = $params['idDivPrevisualisation'];
        }



        $boutonsHTML = "<div style=''>";
        $gras = "<input type=\"button\" value=\"b\" style=\"width:50px;font-weight:bold\" onclick=\"bbcode_ajout_balise('b',  '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverGras\" onMouseOut=\"$mouseOutGras\"/>";
        $boutonsHTML.=$gras;
        $italic = "
    <input type=\"button\" value=\"i\" style=\"width:50px;font-style:italic\" onclick=\"bbcode_ajout_balise('i',  '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverItalic\" onMouseOut=\"$mouseOutItalic\"/>";
        $boutonsHTML.=$italic;
        $underline = "
    <input type=\"button\" value=\"u\" style=\"width:50px;text-decoration:underline;\" onclick=\"bbcode_ajout_balise('u',  '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverUnderline\" onMouseOut=\"$mouseOutUnderline\"/>";
        $boutonsHTML.=$underline;
        $quote = "
    <input type=\"button\" value=\"quote\" style=\"width:50px\" onclick=\"bbcode_ajout_balise('quote',  '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverQuote\" onMouseOut=\"$mouseOutQuote\"/>";
        $boutonsHTML.=$quote;
        //<!--<input type=\"button\" value=\"code\" style=\"width:50px\" onclick=\"bbcode_ajout_balise('code',  'formAjoutCommentaire',  'commentaire');bbcode_keyup(this, 'apercu');\" onMouseOver=\"getContextHelp('{msgCode}');\" onMouseOut=\"closeContextHelp();\" onkeyup=\"bbcode_keyup(this, 'apercu');\"/>-->

        if (!isset($params['noUrlInterneButton']) || $params['noUrlInterneButton']==false) {
            $urlInterne = "<input type=\"button\" value=\"url interne\"  style=\"width:75px\" onclick=\"bbcode_ajout_balise('url',   '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverUrlInterne\" onMouseOut=\"$mouseOutUrlInterne\" onkeyup=\"bbcode_keyup(this, '$idDivApercu');\"/>";
            $boutonsHTML.=$urlInterne;
        }

        $urlExterne = "<input type=\"button\" value=\"url externe\"  style=\"width:80px\" onclick=\"bbcode_ajout_balise('urlExterne',   '$formName',  '$fieldName');bbcode_keyup(this, '$idDivApercu');\" onMouseOver=\"$mouseOverUrlExterne\" onMouseOut=\"$mouseOutUrlExterne\" onkeyup=\"bbcode_keyup(this, '$idDivApercu');\"/>";
        $boutonsHTML.=$urlExterne;


        $boutonsHTML.="</div>";

        return array('boutonsHTML'=>$boutonsHTML, 'divAndJsAfterForm'=>"<div id='$idDivApercu'></div><div id='helpCalque' style='background-color:#FFFFFF; border:2px solid #000000;padding:10px;float:left;display:none;'><img src='images/aide.jpg' style='float:left;padding-right:3px;' valign='middle'><div id='helpCalqueTxt' style='padding-top:7px;'></div></div><script type='text/javascript' >
                                    bbcode_keyup(document.forms['$formName'].elements['$fieldName'],  '$idDivApercu');setTimeout('majDescription()', 1000);
                                    function majDescription()
                                    {
                                        bbcode_keyup(document.forms['$formName'].elements['$fieldName'],  '$idDivApercu');
                                        setTimeout('majDescription()', 500);
                                    }</script>");
    }
1188784
private function mode($params) {

		$mode = 'params';

	 	if(count($params) > 0 && 0 === count(array_filter(array_keys($params), 'is_string'))) {
	 		$mode = 'bind';
	 	}

	 	return $mode;
	}