Supprimer une étape d'un parcous

@param array $params Paramètres

@return void
961573
public function supprimerEtapeParcours($params = array())
    {
        $auth = new archiAuthentification();
        if ($auth->estConnecte()) {
            if (isset($this->variablesGet['archiIdEtapeSupprimer']) && $this->variablesGet['archiIdEtapeSupprimer']!='') {
                $req = "DELETE FROM etapesParcoursArt WHERE idEtape='".$this->variablesGet['archiIdEtapeSupprimer']."'";
                $res = $this->connexionBdd->requete($req);
            }
        } else {
            echo "Vous n'êtes pas connecté.";
        }
    }
1176611
public function prepareParms($params)
    {
        if (is_array($params)) {
            foreach ($params as $key => $value) {
                array_push($this->setParams, $value);
            }
        } else {
            array_push($this->setParams, $params);
        }
    }
1309622
public function execute (Array $params)
    {
        try {
            $this->_validateParameters($params);
            
            // スケルトンファイルを取得する
            $skeleton = $this->_getSkeletonFile();

            // スケルトンファイルのコンテンツを置換
            $skeleton = str_replace('${command}', $this->command_name, $skeleton);
            file_put_contents(LIB.'/'.APP.'/Commands/'.$this->command_name.'.php', $skeleton);

            $this->log($this->command_name.' command is created!', 'success');
        
        } catch (\Exception $e) {
            $this->errorLog($e->getMessage());
        }
    }
65697
protected function sortParams(): void
    {
        $sorted = [];
        foreach ($this->params as $paramName => $paramSet) {
            if (0 != strlen($paramSet->prefix)) {
                $sorted[$paramName] = $paramSet;
            }
        }
        foreach ($this->params as $paramName => $paramSet) {
            if (0 == strlen($paramSet->prefix)) {
                $sorted[$paramName] = $paramSet;
            }
        }
        $this->params = $sorted;
    }
1285604
public function setSqlParameters(array $params)
    {
        $this->params = $params;

        $this->stmt = null;
        $this->rowCount = null;
    }
952510
public function getDernieresAdresses($params = array()){
		$tDernieresAdresses = new Template($this->getCheminPhysique().$this->cheminTemplates);
		$tDernieresAdresses->set_filenames(array('encartDernieresAdresses'=>'encartAccueil.tpl'));
		 
		$tDernieresAdresses->assign_vars(array('titre'=>_("Nouvelles adresses"), "type"=>"dernieresAdresses"));
		 
		if (count($params['dernieresAdresses'])>0) {
			$tDernieresAdresses->assign_vars(array('lienVersTout'=>"<a href='".$this->creerUrl('', 'recherche', array_merge(array('motcle'=>'', 'submit'=>'Rechercher'), $arrayIdVilleGeneral, $archiIdPaysGeneral))."'>"._("Toutes les adresses")."</a>"));
		} else {
			// il n'y a pas de "dernieres adresses" affichées ,  on envoi donc l'affichage par defaut
			$tDernieresAdresses->assign_vars(array('lienVersTout'=>"<a href='".$this->creerUrl('', 'ajoutNouveauDossier', array_merge($arrayIdVilleGeneral, $archiIdPaysGeneral))."'>"._("Ajouter une adresse")."</a>"));
				
			$tDernieresAdresses->assign_block_vars("premiereAdresseAvecPhoto", array());
			$tDernieresAdresses->assign_vars(
					array(
							'photoAdresse1'=>"",
							'descriptionAdresse1'=>"<div>"._("Il n'y a pas encore de nouvelles adresses pour cette localité")."</div>"
					)
			);
		}
		 
		foreach ($params['dernieresAdresses'] as $indice => $value) {
			$intituleAdresse = $adresse->getIntituleAdresseAccueil($value, array('ifTitreAfficheTitreSeulement'=>true));
			$intituleAdresseAlt = strip_tags(str_replace("\"", "'", $intituleAdresse));
			if (isset($params['indiceEvenementsPremierePositions']['dernieresAdresses']) && $indice == $params['indiceEvenementsPremierePositions']['dernieresAdresses']) {
				 
				$urlImage = $this->getUrlRacine().'resizeImage.php?id='.$params['imagesEvenementsPremieresPositions']['dernieresAdresses']['idHistoriqueImage'];
				 
				$tDernieresAdresses->assign_block_vars("premiereAdresseAvecPhoto", array());
				if ($params['imagesEvenementsPremieresPositions']['dernieresAdresses']['idHistoriqueImage']!='') {
					$tDernieresAdresses->assign_vars(
							array(
									'photoAdresse1'=>"<a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail', "archiIdAdresse"=>$value['idAdresse'], "archiIdEvenementGroupeAdresse"=>$value['idEvenementGroupeAdresse']))."'><img style='border:1px #000000 solid;margin-right:2px;float:left;' src='".$urlImage."' alt='".$intituleAdresseAlt."' title='".$intituleAdresseAlt."'></a>",
									'descriptionAdresse1'=>"<div><a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail', "archiIdAdresse"=>$value['idAdresse'], "archiIdEvenementGroupeAdresse"=>$value['idEvenementGroupeAdresse']))."' style='font-size:12px;'>".date('d/m/Y', strtotime($value['dateCreationAdresse'])).' '.$intituleAdresse."</a><br>".($string->sansBalises(stripslashes($string->coupureTexte($value['description'], 20))))."</div>"
							)
					);
				}
				else {
					$tDernieresAdresses->assign_vars(
							array(
									'photoAdresse1'=>"",
									'descriptionAdresse1'=>"<div><a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail', "archiIdAdresse"=>$value['idAdresse'], "archiIdEvenementGroupeAdresse"=>$value['idEvenementGroupeAdresse']))."' style='font-size:12px;'>".date('d/m/Y', strtotime($value['dateCreationAdresse'])).' '.$intituleAdresse."</a><br>".($string->sansBalises(stripslashes($string->coupureTexte($value['description'],  20))))."</div>"
							)
					);
						
				}
			}
			else {
				$tDernieresAdresses->assign_block_vars('listeAdressesSuivantes', array('lien'=>"<a href='".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail', "archiIdAdresse"=>$value['idAdresse'], "archiIdEvenementGroupeAdresse"=>$value['idEvenementGroupeAdresse']))."' style='font-size:12px;'><span class='date'>".date('d/m/Y', strtotime($value['dateCreationAdresse'])).'</span> '.$intituleAdresse."</a>"));
			}
		}
		ob_start();
		$tDernieresAdresses->pparse('encartDernieresAdresses');
		$htmlDerniersAdresses = ob_get_contents();
		ob_end_clean();
		return $htmlDerniersAdresses;
	}
385129
public function setParams( $params )
    {
        if ( $params instanceof Traversable )
        {
            $params = iterator_to_array( $params );
        }
        else if ( is_object( $params ) && ! $params instanceof ArrayAccess )
        {
            $params = (array) $params;
        }

        return parent::setParams( $params );
    }
90339
public function enregistrerOrdresEtapes($params = array())
    {
        $imObj      = new imageObject();
        $ordreArray = $imObj->getArrayFromPostDragAndDrop();
        $i          = 1;
        foreach ($ordreArray as $indice=>$idEtape) {

            // l'indice commence a 1 
            $reqUpdate = "UPDATE etapesParcoursArt SET position='".$i."' WHERE idEtape='".$idEtape."'";
            $resUpdate = $this->connexionBdd->requete($reqUpdate);
            $i++;
        }
    }
446171
public function deplacerEvenementVersGroupeAdresse($params = array())
    {
        $idEvenementADeplacer = 0;
        if (isset($this->variablesGet['idEvenementADeplacer'])) {
            $idEvenementADeplacer = $this->variablesGet['idEvenementADeplacer'];
        }

        if (isset($params['idEvenementADeplacer'])) {
            $idEvenementADeplacer = $params['idEvenementADeplacer'];
        }

        $deplacerVersIdGroupeAdresse = 0;
        if (isset($this->variablesGet['deplacerVersIdGroupeAdresse'])) {
            $deplacerVersIdGroupeAdresse = $this->variablesGet['deplacerVersIdGroupeAdresse'];
        }

        if (isset($params['deplacerVersIdGroupeAdresse'])) {
            $deplacerVersIdGroupeAdresse = $params['deplacerVersIdGroupeAdresse'];
        }

        if ($idEvenementADeplacer!='0' && $idEvenementADeplacer!='' && $deplacerVersIdGroupeAdresse!='0' && $deplacerVersIdGroupeAdresse!='') {
        // recuperation de l'idEvenementGroupeAdresse precedent
            $reqGAPrecedent = "SELECT idEvenement FROM _evenementEvenement WHERE idEvenementAssocie = '".$idEvenementADeplacer."'";
            $resGAPrecedent = $this->connexionBdd->requete($reqGAPrecedent);
            $arrayIdEvenementGAPrecedent=array();
            while ($fetchGAPrecedent = mysql_fetch_assoc($resGAPrecedent)) {
                $arrayIdEvenementGAPrecedent[] = $fetchGAPrecedent['idEvenement'];
            }

            if (count($arrayIdEvenementGAPrecedent)==1 && $arrayIdEvenementGAPrecedent[0]!='' && $arrayIdEvenementGAPrecedent[0]!='0') {
            // on supprime la liaison précédente avec le groupe d'adresse précédent
                $reqSupprEvenementEvenement = "DELETE FROM _evenementEvenement WHERE idEvenement = '".$arrayIdEvenementGAPrecedent[0]."' AND idEvenementAssocie='".$idEvenementADeplacer."'";
                $resSupprEvenementEvenement = $this->connexionBdd->requete($reqSupprEvenementEvenement);

                // il faut alors rafraichir les positions des evenements du groupe d'adresse, pour qu'elles se suivent bien
                $this->majPositionsEvenements(array('idEvenementGroupeAdresse'=>$arrayIdEvenementGAPrecedent[0],'refreshAfterDelete'=>true));



                // on ajoute la liaison de l'evenement et du nouveau groupe d'adresse dans la table _evenementEvenement
                $reqEvenementEvenement = "INSERT INTO _evenementEvenement (idEvenement,idEvenementAssocie) VALUES ('".$deplacerVersIdGroupeAdresse."','".$idEvenementADeplacer."')";
                $resEvenementEvenement = $this->connexionBdd->requete($reqEvenementEvenement);

                // et on rafraichit les positions des evenements du groupe d'adresses de destination avec le nouvel evenement ajouté
                $this->majPositionsEvenements(array('idEvenementGroupeAdresse'=>$deplacerVersIdGroupeAdresse,'idNouvelEvenement'=>$idEvenementADeplacer));

                // est ce que le groupe d'adresse précédent est vide ?
                $reqLiaisonAdresseEvenement = "SELECT idEvenement FROM _adresseEvenement WHERE idEvenement='".$arrayIdEvenementGAPrecedent[0]."' AND idEvenement NOT IN (SELECT idEvenement FROM _evenementEvenement)";
                $resLiaisonAdresseEvenement = $this->connexionBdd->requete($reqLiaisonAdresseEvenement);
                if (mysql_num_rows($resLiaisonAdresseEvenement)>0) {
                    $reqSupprLiaison = "DELETE FROM _adresseEvenement WHERE idEvenement='".$arrayIdEvenementGAPrecedent[0]."'";
                    $resSupprLiaison = $this->connexionBdd->requete($reqSupprLiaison);
                    // pour les positions, s'il n'y avait plus d'evenement, les positions on d'abord ete supprimé dans la fonction de rafraichissement
                }
            } else {
                $e = new objetErreur();
                $e->ajouter(_("Evenement impossible à deplacer, veuillez contacter l'administrateur"));
                echo $e->afficher();
            }
        }
    }
1138072
public function getArrayEncartAdressesImmeublesAvantApres($params = array())
    {
        $html = "";


        $t = new Template('modules/archi/templates/');
        $t->set_filenames(array('encartAdresse'=>'encartAdresseDetailAdresse.tpl'));


        $i = new archiImage();
        if (isset($this->variablesGet['archiIdAdresse'])) {
            $idAdresseCourante = $this->variablesGet['archiIdAdresse'];
        } else {
            $idAdresseCourante = $this->getIdAdresseFromIdEvenementGroupeAdresse($params['idEvenementGroupeAdresse']);
        }
        // recherche de l'image principale courante , sinon celle de position 1 , sinon celle par defaut
        // image centrale = image2
        $arrayImage2 = $this->getUrlImageFromAdresse(0, 'moyen', array('idEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse']));
        $isPhotoCentrale = false;
        $dimensions = array();
        if ($arrayImage2['trouve']) {
            $isPhotoCentrale = true;
           // list($w,$h) = getimagesize($this->getCheminPhysique()."images/moyen/".$arrayImage2['dateUpload']."/".$arrayImage2['idHistoriqueImage'].".jpg");
            //TODO : Change back URL for production
            list($w,$h) = getimagesize("images/moyen/".$arrayImage2['dateUpload']."/".$arrayImage2['idHistoriqueImage'].".jpg");
            $newWGrand = round(75*$w/100);
            $newHGrand = round(75*$h/100);

            $newWPetit = round(35*$w/100);
            $newHPetit = round(35*$h/100);

            $t->assign_vars(array('image2'=>"<div id='divImagePetit2' style='display:none;'><img src='".$arrayImage2['url']."' alt='' width=$newWPetit height=$newHPetit id='image2Petit'></div><div id='divImageGrand2' style='display:block;'><img src='images/moyen/".$arrayImage2['dateUpload']."/".$arrayImage2['idHistoriqueImage'].".jpg' alt=''  id='image2Grand' itemprop='image'></div>"));
        } else {
            // image par defaut , si aucune image liee a l'adresse
            $isPhotoCentrale = true;
            list($w,$h) = getimagesize($this->getUrlRacine()."resizeImage.php");
            $newWGrand = round(75*$w/100);
            $newHGrand = round(75*$h/100);

            $newWPetit = round(35*$w/100);
            $newHPetit = round(35*$h/100);
            $t->assign_vars(array('image2'=>"<div id='divImagePetit2' style='display:none;'><img src='resizeImage.php' alt='' width=$newWPetit height=$newHPetit id='image2Petit'></div><div id='divImageGrand2' style='display:block;'><img src='resizeImage.php' alt='' width=$newWGrand height=$newHGrand id='image2Grand'></div>"));
        }


        // fabrication de la liste des adresses affichées sur l'encart
        // adresse courante affichée en rouge:
        //$txtAdresseCourante = $this->getIntituleAdresseFrom($idAdresseCourante,'idAdresse',array('noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true));

        // recherche des autres adresses du groupe d'adresse courant
        //$txtAutreAdressesGroupeAdresse = "";
        $txtAdresses = "";
        $reqAdresseDuGroupeAdresse = "
            SELECT ha1.idAdresse as idAdresse,ha1.numero as numero, ha1.idRue as idRue, IF(ha1.idIndicatif='0','',i.nom) as nomIndicatif, ha1.idQuartier as idQuartier, ha1.idSousQuartier as idSousQuartier
            FROM historiqueAdresse ha2, historiqueAdresse ha1
            LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse
            LEFT JOIN indicatif i ON i.idIndicatif = ha1.idIndicatif
            WHERE ha2.idAdresse = ha1.idAdresse
            AND ae.idEvenement ='".$params['idEvenementGroupeAdresse']."'

            GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse
            HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
            ORDER BY ha1.numero,ha1.idRue
        ";//AND ha1.idAdresse<>'".$idAdresseCourante."'



        $resAdresseDuGroupeAdresse = $this->connexionBdd->requete($reqAdresseDuGroupeAdresse);
        if (mysql_num_rows($resAdresseDuGroupeAdresse)>0) {
            $arrayNumero = array();
            while ($fetchAdressesGroupeAdresse = mysql_fetch_assoc($resAdresseDuGroupeAdresse)) {
                $isAdresseCourante = false;
                if ($idAdresseCourante == $fetchAdressesGroupeAdresse['idAdresse']) {
                    $isAdresseCourante = true;
                }

                if ($fetchAdressesGroupeAdresse['idRue']=='0' || $fetchAdressesGroupeAdresse['idRue']=='') {
                    if ($fetchAdressesGroupeAdresse['idQuartier']!='' && $fetchAdressesGroupeAdresse['idQuartier']!='0') {
                        $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idAdresse'], 'idAdresse', array('noSousQuartier'=>true,'noQuartier'=>false,'noVille'=>true))][] = array('indicatif'=>$fetchAdressesGroupeAdresse['nomIndicatif'],'numero'=>$fetchAdressesGroupeAdresse['numero'],'url'=>$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$fetchAdressesGroupeAdresse['idAdresse'],'archiIdEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse'])),'isAdresseCourante'=>$isAdresseCourante);
                    }

                    if ($fetchAdressesGroupeAdresse['idSousQuartier']!='' && $fetchAdressesGroupeAdresse['idSousQuartier']!='0') {
                        $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idAdresse'], 'idAdresse', array('noSousQuartier'=>false,'noQuartier'=>true,'noVille'=>true))][] = array('indicatif'=>$fetchAdressesGroupeAdresse['nomIndicatif'],'numero'=>$fetchAdressesGroupeAdresse['numero'],'url'=>$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$fetchAdressesGroupeAdresse['idAdresse'],'archiIdEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse'])),'isAdresseCourante'=>$isAdresseCourante);
                    }
                } else {
                    $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idRue'], 'idRueWithNoNumeroAuthorized', array('noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true))][] = array('indicatif'=>$fetchAdressesGroupeAdresse['nomIndicatif'],'numero'=>$fetchAdressesGroupeAdresse['numero'],'url'=>$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$fetchAdressesGroupeAdresse['idAdresse'],'archiIdEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse'])),'isAdresseCourante'=>$isAdresseCourante);
                }
                //$txtAutreAdressesGroupeAdresse .= "<br><a href='".$this->creerUrl('','',array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$fetchAutresAdressesGroupeAdresse['idAdresse'],'archiIdEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse']))."'>".$this->getIntituleAdresseFrom($fetchAutresAdressesGroupeAdresse['idAdresse'],'idAdresse',array('noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true))."</a>";
            }
        }

        // affichage adresses regroupees
        foreach ($arrayNumero as $intituleRue => $arrayInfosNumero) {
            $isSelectedRue = false;
            $isUnSeulNumeroSurGroupeAdresse = false;
            if (count($arrayInfosNumero)==1) {
            // s'il n'y a qu'un seul numero dans le groupe d'adresse de la rue courante , on fait le lien href sur tout le texte de l'adresse , pas seulement sur le numero
                if ($arrayInfosNumero[0]['numero']=='0') {
                    $arrayInfosNumero[0]['numero'] = '';
                }

                if ($arrayInfosNumero[0]['isAdresseCourante']==true) {
                    $txtAdresses.="<a href='".$arrayInfosNumero[0]['url']."' style='font-weight:bold;'>".$arrayInfosNumero[0]['numero'].$arrayInfosNumero[0]['indicatif']." ".$intituleRue."</a><span style='color:#4b4b4b'>-</span>";
                    $isUnSeulNumeroSurGroupeAdresse = true;
                } else {
                    $txtAdresses.="<a href='".$arrayInfosNumero[0]['url']."'>".$arrayInfosNumero[0]['numero'].$arrayInfosNumero[0]['indicatif']." ".$intituleRue."</a><span style='color:#4b4b4b'>-</span>";
                    $isUnSeulNumeroSurGroupeAdresse = true;
                }
            } else {
                foreach ($arrayInfosNumero as $indice => $infosNumero) {
                    if ($infosNumero['isAdresseCourante']==true) {
                        if ($infosNumero['numero']=='' || $infosNumero['numero']=='0') {
                            $isSelectedRue = true;
                        } else {
                            $txtAdresses.="<a href='".$infosNumero['url']."'>".$infosNumero['numero'].$infosNumero['indicatif']."</a><span style='color:#4b4b4b'>-</span>";
                            $isSelectedRue = true;
                        }
                    } else {
                        if ($infosNumero['numero']=='' || $infosNumero['numero']=='0') {
                        //rien
                        } else {
                            $txtAdresses.="<a href='".$infosNumero['url']."'>".$infosNumero['numero'].$infosNumero['indicatif']."</a><span style='color:#4b4b4b'>-</span>";
                        }
                    }
                }
            }

            $txtAdresses = pia_substr($txtAdresses, 0, -(pia_strlen("<span style='color:#4b4b4b'>-</span>")));

            if (!$isUnSeulNumeroSurGroupeAdresse) {
                if ($isSelectedRue) {
                    $txtAdresses.="<span >".$intituleRue."</span><br>";
                } else {
                    $txtAdresses.="<span style='color:#4B4B4B;'>".$intituleRue."</span><br>";
                }
            } else {
                $txtAdresses.="<br>";
            }
        }

        $txtAdresses = pia_substr($txtAdresses, 0, -(pia_strlen("<br>")));

        $t->assign_vars(array('adresse2'=>$txtAdresses));


        // ensuite on recherche les groupes d'adresses autour de l'adresse courante, sans afficher les adresses du meme groupe d'adresse que le courant
        $arrayIdAdresses = $this->getArrayIdAdressesNearCurrentAdresse(array('idAdresse'=>$idAdresseCourante,'idEvenementGroupeAdresseCourant'=>$params['idEvenementGroupeAdresse']));
        if (isset($arrayIdAdresses['avant']['idAdresse'])) {
            $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'avant','idAdresse'=>$arrayIdAdresses['avant']['idAdresse'],'idEvenementGroupeAdresse'=>$arrayIdAdresses['avant']['idEvenementGroupeAdresse']));
            $t->assign_vars(array('image1'=>$infosImageAvant['image']));
            $t->assign_vars(array('adresse1'=>$infosImageAvant['adresse']));
        }

        if (isset($arrayIdAdresses['apres']['idAdresse'])) {
            $infosImageApres = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'apres','idAdresse'=>$arrayIdAdresses['apres']['idAdresse'],'idEvenementGroupeAdresse'=>$arrayIdAdresses['apres']['idEvenementGroupeAdresse']));
            $t->assign_vars(array('image3'=>$infosImageApres['image']));
            $t->assign_vars(array('adresse3'=>$infosImageApres['adresse']));
        }


        // si une adresse avant ou apres n'a pas ete trouvée , on va chercher les adresses les plus proches qui ne sont pas dans cette rue (car si elles sont dans cette rue , elles sont forcement dans le parcours
        if ((isset($arrayIdAdresses['apres']['idAdresse']) && !isset($arrayIdAdresses['avant']['idAdresse'])) || (!isset($arrayIdAdresses['apres']['idAdresse']) && isset($arrayIdAdresses['avant']['idAdresse']))) {
            $arrayCoordonnees = $this->getCoordonneesFrom($idAdresseCourante, 'idAdresse');
            $arrayRue = $this->getIdRuesFrom($idAdresseCourante, 'idAdresse');
            $idVilleAdresseCourante = $this->getIdVilleFrom($idAdresseCourante, 'idAdresse'); // idVilleCourante pour rester dans les adresses de la ville en cours , et pas avoir en resultat une adresse d'une autre ville

            if ($arrayCoordonnees['latitude']=='') {
                $arrayCoordonnees['latitude']=0;
            }
            if ($arrayCoordonnees['longitude']=='') {
                $arrayCoordonnees['longitude']=0;
            }


            $reqAdresseProche = "
                SELECT ha1.idAdresse as idAdresse, ((acos(sin(".$arrayCoordonnees['latitude']."*PI()/180) * sin(ha1.latitude*PI()/180) + cos(".$arrayCoordonnees['latitude']."*PI()/180) * cos(ha1.latitude*PI()/180) * cos((".$arrayCoordonnees['longitude']." - ha1.longitude)*PI()/180))/ pi() * 180.0)* 60 * 1.1515 * 1.609344)*1000 as distance, ae.idEvenement as idEvenementGroupeAdresse
                FROM historiqueAdresse ha2, historiqueAdresse ha1
                LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse
                LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement
                LEFT JOIN rue r ON r.idRue = ha1.idRue
                LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier
                LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                LEFT JOIN ville v ON v.idVille = q.idVille
                WHERE
                    ha2.idAdresse = ha1.idAdresse
                AND ha1.idRue<>'".$arrayRue[0]."'
                AND v.idVille = '".$idVilleAdresseCourante."'
                GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse,ee.idEvenement
                HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) AND count(ee.idEvenement)>0
                ORDER BY distance ASC
                LIMIT 1
            ";
            $resAdresseProche = $this->connexionBdd->requete($reqAdresseProche);
            $fetchAdresseProche = mysql_fetch_assoc($resAdresseProche);

            // affichage de l'adresse
            if (!isset($arrayIdAdresses['avant']['idAdresse'])) {
                $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'avant','idAdresse'=>$fetchAdresseProche['idAdresse'],'idEvenementGroupeAdresse'=>$fetchAdresseProche['idEvenementGroupeAdresse']));
                $t->assign_vars(array('image1'=>$infosImageAvant['image']));
                $t->assign_vars(array('adresse1'=>$infosImageAvant['adresse']));
            } elseif (!isset($arrayIdAdresses['apres']['idAdresse'])) {
                $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'apres','idAdresse'=>$fetchAdresseProche['idAdresse'],'idEvenementGroupeAdresse'=>$fetchAdresseProche['idEvenementGroupeAdresse']));
                $t->assign_vars(array('image3'=>$infosImageAvant['image']));
                $t->assign_vars(array('adresse3'=>$infosImageAvant['adresse']));
            }
        } elseif (!isset($arrayIdAdresses['apres']['idAdresse']) && !isset($arrayIdAdresses['avant']['idAdresse'])) { // s'il n'y pas ni adresse avant ni adresse apres, on prend l'adresse la plus proche qui n'est pas dans la rue , on la met a gauche , l'adresse la plus proche suivante on la met a droite
            $arrayCoordonnees = $this->getCoordonneesFrom($idAdresseCourante, 'idAdresse');
            $arrayRue = $this->getIdRuesFrom($idAdresseCourante, 'idAdresse');
            $idVilleAdresseCourante = $this->getIdVilleFrom($idAdresseCourante, 'idAdresse'); // idVilleCourante pour rester dans les adresses de la ville en cours , et pas avoir en resultat une adresse d'une autre ville

            if ($arrayCoordonnees['latitude']=='') {
                $arrayCoordonnees['latitude']=0;
            }
            if ($arrayCoordonnees['longitude']=='') {
                $arrayCoordonnees['longitude']=0;
            }

            $reqAdressesProches = "
                SELECT DISTINCT ae.idEvenement as idEvenementGroupeAdresse
                FROM _adresseEvenement ae
                LEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse
                LEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse
                LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement
                LEFT JOIN rue r ON r.idRue = ha1.idRue
                LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier
                LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                LEFT JOIN ville v ON v.idVille = q.idVille
                WHERE
                    ha2.idAdresse = ha1.idAdresse
                AND ha1.idRue<>'".$arrayRue[0]."'
                AND v.idVille = '".$idVilleAdresseCourante."'
                GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse,ee.idEvenement
                HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)  AND count(ee.idEvenement)>0
                ORDER BY ((acos(sin(".$arrayCoordonnees['latitude']."*PI()/180) * sin(ha1.latitude*PI()/180) + cos(".$arrayCoordonnees['latitude']."*PI()/180) * cos(ha1.latitude*PI()/180) * cos((".$arrayCoordonnees['longitude']." - ha1.longitude)*PI()/180))/ pi() * 180.0)* 60 * 1.1515 * 1.609344)*1000 ASC

            ";

            $resAdressesProches = $this->connexionBdd->requete($reqAdressesProches);


            $fetchAdressesProches = mysql_fetch_assoc($resAdressesProches);

            $idAdresseAvant = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetchAdressesProches['idEvenementGroupeAdresse']);

            $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'avant','idAdresse'=>$idAdresseAvant,'idEvenementGroupeAdresse'=>$fetchAdressesProches['idEvenementGroupeAdresse']));
            if (isset($infosImageAvant['image'])) {
                $t->assign_vars(array('image1'=>$infosImageAvant['image']));
            }
            if (isset($infosImageAvant['adresse'])) {
                $t->assign_vars(array('adresse1'=>$infosImageAvant['adresse']));
            }

            $fetchAdressesProches = mysql_fetch_assoc($resAdressesProches);
            $idAdresseApres = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetchAdressesProches['idEvenementGroupeAdresse']);
            $infosImageApres = $this->getArrayInfosImageAvantOrApres(array('positionImage'=>'apres','idAdresse'=>$idAdresseApres,'idEvenementGroupeAdresse'=>$fetchAdressesProches['idEvenementGroupeAdresse']));
            if (isset($infosImageApres['image'])) {
                $t->assign_vars(array('image3'=>$infosImageApres['image']));
            }
            if (isset($infosImageApres['adresse'])) {
                $t->assign_vars(array('adresse3'=>$infosImageApres['adresse']));
            }
        }

        $titre = $this->getIntituleAdresseFrom($params['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('afficheTitreSiTitreSinonRien'=>true));
        if ($titre!='') {
            $t->assign_block_vars('isTitre', array('titre'=>$titre));
        }

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

        // javascript a mettre dans le header , on le retourne donc dans la fonction
        $jsHeader = "
            <script  >
            function imageOver(numImage)
            {
                if(numImage==1)
                {
                    if(document.getElementById('divImagePetit1'))
                    {
                        document.getElementById('divImagePetit1').style.display='none';
                        document.getElementById('divImageGrand1').style.display='block';
                    }

                    if(document.getElementById('divImagePetit2'))
                    {
                        document.getElementById('divImageGrand2').style.display='none';
                        document.getElementById('divImagePetit2').style.display='block';
                    }

                    if(document.getElementById('divImagePetit3'))
                    {
                        document.getElementById('divImageGrand3').style.display='none';
                        document.getElementById('divImagePetit3').style.display='block';
                    }
                }

                if(numImage==2)
                {
                    /*document.getElementById('divImagePetit1').style.display='none';
                    document.getElementById('divImageGrand2').style.display='none';
                    document.getElementById('divImageGrand3').style.display='none';
                    document.getElementById('divImageGrand1').style.display='block';
                    document.getElementById('divImagePetit2').style.display='block';
                    document.getElementById('divImagePetit3').style.display='block';*/
                }

                if(numImage==3)
                {
                    if(document.getElementById('divImagePetit1'))
                    {
                        document.getElementById('divImagePetit1').style.display='none';
                        document.getElementById('divImageGrand1').style.display='block';
                    }

                    if(document.getElementById('divImagePetit2'))
                    {
                        document.getElementById('divImageGrand2').style.display='none';
                        document.getElementById('divImagePetit2').style.display='block';
                    }

                    if(document.getElementById('divImagePetit3'))
                    {
                        document.getElementById('divImageGrand3').style.display='block';
                        document.getElementById('divImagePetit3').style.display='none';
                    }
                }
            }

            function imageOut(numImage)
            {
                if(numImage==1)
                {
                    if(document.getElementById('divImagePetit2'))
                    {
                        document.getElementById('divImagePetit2').style.display='block';
                        document.getElementById('divImageGrand2').style.display='none';
                    }

                    if(document.getElementById('divImagePetit3'))
                    {
                        document.getElementById('divImagePetit3').style.display='block';
                        document.getElementById('divImageGrand3').style.display='none';
                    }
                }
                else
                if(numImage==2)
                {
                    if(document.getElementById('divImagePetit1'))
                    {
                        document.getElementById('divImagePetit1').style.display='block';
                        document.getElementById('divImageGrand1').style.display='none';
                    }

                    if(document.getElementById('divImagePetit3'))
                    {
                        document.getElementById('divImagePetit3').style.display='block';
                        document.getElementById('divImageGrand3').style.display='none';
                    }

                }
                else
                if(numImage==3)
                {
                    if(document.getElementById('divImagePetit1'))
                    {
                        document.getElementById('divImagePetit1').style.display='block';
                        document.getElementById('divImageGrand1').style.display='none';
                    }

                    if(document.getElementById('divImagePetit2'))
                    {
                        document.getElementById('divImagePetit2').style.display='block';
                        document.getElementById('divImageGrand2').style.display='none';
                    }
                }
                else
                {

                    if(document.getElementById('divImagePetit1'))
                    {
                        document.getElementById('divImagePetit1').style.display='block';
                        document.getElementById('divImageGrand1').style.display='none';
                    }

                    if(document.getElementById('divImagePetit2'))
                    {
                        document.getElementById('divImagePetit2').style.display='none';
                        document.getElementById('divImageGrand2').style.display='block';
                    }

                    if(document.getElementById('divImagePetit3'))
                    {
                        document.getElementById('divImagePetit3').style.display='block';
                        document.getElementById('divImageGrand3').style.display='none';
                    }
                }


            }
            </script>
        ";

        $this->addToJsHeader($jsHeader);


        return array('html'=>$html,'isPhotoCentrale'=>$isPhotoCentrale);
    }
648135
private function initialize($params = array())
	{
		if (count($params) > 0)
		{
			foreach ($params as $key => $value)
			{
				if (isset($this->{$key}))
				{
					$this->{$key} = $value;
				}
				else if (strpos($key, 'CURLOPT_') === 0) 
				{
					curl_setopt($this->ch, $key, $value);    
				}
			}
		}
	}
464215
public function bench_compilers(array $params): void
    {
        /** @var Compiler $compiler */
        $compiler = $this->compilers[$params["compiler"]];

        new Router($this->routes, $compiler);
    }
176310
public function addParams(array $params)
    {
        foreach ($params as $k => $v) {
            $this->addParam($k, $v);
        }
        return $this;
    }
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;
    }
876418
public function addParamsNavStart($params = [])
    {
        if (is_array($params) && !empty($params))
        {
            $this->navStartParams = array_merge(is_array($this->navStartParams) ? $this->navStartParams : array(), $params);
        }
    }
913116
protected function setParams(array $params) {
		parent::setParams($params);
		if($this->autoinc===true){
			$this->notNull=false;
		}
	}
713378
public function setParams(array $params)
    {
        foreach ($params as $param) {
            $this->config->setEndpoint(
                str_replace('{' . $param['placeholder'] . '}', $param['value'], $this->config->getConfig()['endpoint'])
            );
        }

        $this->parentParams = $params;
    }