si on precise un idParcours en parametre on regarde alors si ce parcours est actif
437519
public function isParcoursActif($params = array())
    {
        $retour = false;

        if (isset($params['idParcours']) && $params['idParcours']!='') {
            $req = "SELECT isActif FROM parcoursArt WHERE idParcours = '".$params['idParcours']."'";
            $res = $this->connexionBdd->requete($req);
            if (mysql_num_rows($res)>0) {
                $fetch = mysql_fetch_assoc($res);
                if ($fetch['isActif']=='1') {
                    $retour = true;
                }
            }
        } else {
            // est ce qu'un parcours est actif
            $req = "SELECT 0 FROM parcoursArt WHERE isActif='1'";
            $res = $this->connexionBdd->requete($req);
            if (mysql_num_rows($res)>0) {
                $retour = true;
            }
        }


        return $retour;
    }
533602
public function buildSession($p_params){
        try {
            $v_code_user = $p_params["code_user"];
            $v_key = "";

            //Detruit les veilles clés
            $params = new SimpleObject\OdaPrepareReqSql();
            $params->sql = "DELETE FROM `api_tab_session`
                WHERE 1=1
                AND `datas` like '%\"code_user\":\"".$v_code_user."\"%'
                AND (`dateCreation` + INTERVAL `periodeValideMinute` MINUTE) < NOW()
                AND `periodeValideMinute` != 0
            ;";
            $params->typeSQL = OdaLibBd::SQL_SCRIPT;
            $retour = $this->BD_AUTH->reqODASQL($params);

            //Vérifie la présence d'une clé
            $params = new SimpleObject\OdaPrepareReqSql();
            $params->sql = "SELECT *
                FROM `api_tab_session` a
                WHERE 1=1
                AND a.`datas` like '%\"code_user\":\"".$v_code_user."\"%'
                AND (a.`dateCreation` + INTERVAL a.`periodeValideMinute` MINUTE) > NOW()
            ;";
            $params->typeSQL = OdaLibBd::SQL_GET_ONE;
            $retour = $this->BD_AUTH->reqODASQL($params);

            if($retour->data){
                $v_key = $retour->data->key;
            }else{
                //Check log pass
                $checkPass = true;
                if(!OdaLib::startsWith($p_params['password'],"authByGoogle-")){
                    $checkPass = password_verify($p_params['password'], $p_params['dbPassword']);
                }
                if($checkPass){
                    //Construit une nouvelle clé
                    $v_strDate = \date('YmdHis');
                    $v_key = \md5($v_code_user."_".$v_strDate);
                    $json = new stdClass();
                    $json->code_user = $v_code_user;
                    $json->date = $v_strDate;

                    $params = new SimpleObject\OdaPrepareReqSql();
                    $params->sql = "INSERT INTO `api_tab_session`(
                            `id` ,
                            `key` ,
                            `datas` ,
                            `dateCreation` ,
                            `periodeValideMinute`
                        )
                        VALUES (
                            NULL , '".$v_key."',  '".\json_encode($json)."',  NOW(), ".$p_params['sessionTimeOutMinute']."
                        )
                    ;";
                    $params->typeSQL = OdaLibBd::SQL_INSERT_ONE;
                    $retour = $this->BD_ENGINE->reqODASQL($params);
                }else{
                    $this->dieInError('Auth impossible.(Password wrong)', self::STATE_ERROR_AUTH);
                }
            }

            return $v_key;
        } catch ( Exception $ex ) {
            $this->object_retour->strErreur = $ex.'';
            $this->object_retour->statut = self::STATE_ERROR;
            die();
        }
    }
1364681
private Path<?> buildPropertyPathForAnyType(Root<T> root, String stringPath) {
		
		// Si la racine est nulle
		if(root == null) return null;
		
		// Si la chaine est vide
		if(stringPath == null || stringPath.trim().length() == 0) return null;
		
		// Le Path à retournet
		Path<?> path = null;
		
		// On splitte sur le séparateur de champs
		String[] hierarchicalPaths = stringPath.trim().split("\\.");
		
		// Obtention du premier chemin
		path = root.get(hierarchicalPaths[0]);
		
		// Si la taille est > 1
		if(hierarchicalPaths.length > 1) {

			// Parcours
			for (int i = 1; i < hierarchicalPaths.length; i++) {
				
				// Le chemin
				String unitPath = hierarchicalPaths[i];
				
				// Si le path est vide ou est une suite d'espace
				if(unitPath == null || unitPath.trim().length() == 0) continue;
				
				// Acces à la ppt
				path = path.get(unitPath.trim());
			}
		}
		
		// On retourne le Path
		return path;
	}
435530
public function ajouter()
    {
        $authentifie = new archiAuthentification();
        $formulaire = new formGenerator();
        if ($authentifie->estConnecte()) {
            $tabForm=$this->getAdresseFields();
            $this->connexionBdd->getLock(array('historiqueAdresse'));
            $errors = $formulaire->getArrayFromPost($tabForm); // recupere les donnees POST suivant les champs de tabForm , tabForm est passé en référence, il contient donc les valeurs des champs a la sortie de la fonction
            $this->nettoieCoordonneesAdresse($tabForm); // permet de garder l'id de la rue, quartier, sousQuartier le plus bas dans la hierarchie , a partir duquel on peut retrouver le reste

            if (count($errors)==0) {
            // on regarde si l'adresse existe deja parmis les adresses valides (non "archivees")
                $sql = "SELECT ha1.idAdresse as idAdresse
						FROM historiqueAdresse ha1, historiqueAdresse ha2
						WHERE ha2.idAdresse = ha1.idAdresse
						AND ha1.idRue='".$tabForm['rue']['value']."'
								AND ha1.idSousQuartier='".$tabForm['sousQuartier']['value']."'
										AND ha1.idQuartier='".$tabForm['quartier']['value']."'
												AND ha1.idVille='".$tabForm['ville']['value']."'
														AND ha1.idPays='".$tabForm['pays']['value']."'
																AND ha1.numero = '".$tabForm['numero']['value']."'
																		AND ha1.date='".$tabForm['date']['value']."'
																				AND ha1.idIndicatif='".$tabForm['indicatif']['value']."'
																						GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse
																						HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)";

                //debug($sql);

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

                if (mysql_num_rows($resCheckExist)>1) {
                    echo "plusieurs adresse existe concernant cette adresse, pas d'ajout, veuillez prevenir l'administrateur.<br>";
                } elseif (mysql_num_rows($resCheckExist)==1) {
                    echo "l'adresse existe deja dans la base";
                    // recuperation de l'id existant
                    $fetchAdresseExistante=mysql_fetch_array($resCheckExist);
                } else {
                    // ajout
                    // recherche du nouvel idAdresse
                    $resIdAdresse = $this->connexionBdd->requete("select max(idAdresse) as maxIdAdresse from historiqueAdresse");
                    $nouvelIdAdresse=0;
                    if (mysql_num_rows($resIdAdresse)>0) {
                        $fetchNouvelIdAdresse = mysql_fetch_array($resIdAdresse);
                        $nouvelIdAdresse = $fetchNouvelIdAdresse["maxIdAdresse"] + 1;
                    }

                    $sql = "INSERT INTO historiqueAdresse (idUtilisateur,idAdresse,date,description,nom,idRue,numero,idQuartier,idSousQuartier,idPays,idVille) VALUES (
							'".$authentifie->getIdUtilisateur()."',
							'".$nouvelIdAdresse."',
							\"".$this->date->toBdd($tabForm['date']['value'])."\",
							\"".$tabForm['description']['value']."\",
							\"".$tabForm['nom']['value']."\",
							'".$tabForm['rue']['value']."',
							'".$tabForm['numero']['value']."',
							'".$tabForm['quartier']['value']."',
							'".$tabForm['sousQuartier']['value']."',
							'".$tabForm['pays']['value']."',
							'".$tabForm['ville']['value']."'
							)";

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

                    $cache = new cacheObject();
                    $cache->refreshCache();
                }
            } else {
                echo $this->afficheFormulaire($tabForm);
            }




            $this->connexionBdd->freeLock(array('historiqueAdresse'));
        } else {
            echo "erreur : Vous devez etre authentifié pour faire un ajout<br>";
        }
    }
1098513
static function ajouter_argument_balise($element, $p) {

		// Toujours un parametre 0 vide s'il n'existe pas.
		if (!isset($p->param[0][0])) {
			if (!isset($p->param[0])) {
				$p->param[0] = array();
			}
			$p->param[0][0] = '';
		}

		$zero = array_shift($p->param[0]);
		array_unshift($p->param[0], $element);
		array_unshift($p->param[0], $zero);

		return $p;
	}
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;
    }
631681
public static function chartPointProvider($iNbPartcipant)
    {
        $liste       = [];
        $pointRecord = 100 * $iNbPartcipant;
        $nb          = 80;// % différence entre deux positions
        $compteur    = 0;// compteur de position

        // 1er
        $liste[1] = $pointRecord;

        for ($i = 2; $i <= $iNbPartcipant; $i++) {
            $pointRecord = (int)($pointRecord * $nb / 100);
            $liste[$i]   = $pointRecord;
            $compteur++;

            if ($nb < 85) {
                if ($compteur === 2) {
                    $nb++;// le % augmente donc la différence diminue
                    $compteur = 0;
                }
            } elseif ($nb < 99) {
                $nb++;
            }
        }

        return $liste;
    }
604300
public function getModels()
    {
        $tables = $this->driver->getTablesNames();
        $pivotTables = $this->getConfig('pivot_tables', []);

        foreach ($tables as $table) {
            // Crée l'instance du modèle pour la table correspondante
            $this->models[$table] = $this->createModel($table);

            // Crée l'instance du pivot si la table est définie ou reconnue comme tel
            if (array_key_exists($table, $pivotTables)) {
                if ($pivotTables[$table] !== null) {
                    $this->pivots[$table] = new Pivot($table, $pivotTables[$table]);
                }
            }
            elseif (in_array($table, $pivotTables) || strpos($table, '_has_') !== false) {
                $this->pivots[$table] = new Pivot($table);
            }
        }

        // Ajoute les relations 1-n et 1-1 selon les contraintes définies dans la BDD
        foreach ($this->models as $model) {
            $this->addRelationsAccordingToConstraints($model);
        }

        // Ajoute les relations n-n via les instances des pivots
        foreach ($this->pivots as $pivot) {
            $pivot->addBelongsToManyRelationsToRelatedModels();
        }

        // Ajoute les relations polymorphiques selon les informations renseignées dans la config
        foreach ($this->getConfig('polymorphic_relations', []) as $relation => $relatedTables) {
            list($table, $morphName) = explode('.', $relation);

            $this->addPolymorphicRelations($this->models[$table], $morphName, $relatedTables);
        }

        return $this->models;
    }
738473
public function getIntituleAdresseAccueil($fetch = array(), $params = array())
    {
        $titre="";
        $sqlGA="";
        $classCSS="";
        if (isset($fetch['idEvenementGroupeAdresse']) && $fetch['idEvenementGroupeAdresse']!='' && $fetch['idEvenementGroupeAdresse']!='0') {
            $sqlGA="AND ae.idEvenement = ".$fetch['idEvenementGroupeAdresse'];
        }

        if (isset($params['displayFirstTitreAdresse']) && $params['displayFirstTitreAdresse']==true || (isset($params['ifTitreAfficheTitreSeulement']) && $params['ifTitreAfficheTitreSeulement']==true)) {
            $classCSS='';
            if (isset($params['classCSSTitreAdresse'])) {
                $classCSS="class='".$params['classCSSTitreAdresse']."'";
            }

            // avec ce parametre , on va aller chercher le premier titre rencontré sur la liste des evenements du groupe d'adresse de l'adresse
            $idAdresse = $fetch['idAdresse'];


            $trouve = false;

            // on regarde d'abord s'il existe un titre pour le groupe d'adresse
            // vu qu'un evenement groupe d'adresse est unique , on ne va pas grouper dans la requete
            $reqVerif = "
			SELECT idEvenementRecuperationTitre
			FROM evenements he
			LEFT JOIN _adresseEvenement ae ON ae.idAdresse = $idAdresse
			WHERE he.idEvenement = ae.idEvenement
			$sqlGA
			";


            $resVerif = $this->connexionBdd->requete($reqVerif);
            if (mysql_num_rows($resVerif)>0) {
                $fetchVerif = mysql_fetch_assoc($resVerif);
                if ($fetchVerif['idEvenementRecuperationTitre']=='0') {
                    $trouve=false;
                } elseif ($fetchVerif['idEvenementRecuperationTitre']=='-1') {
                    $params['ifTitreAfficheTitreSeulement']=true;
                    $titre='';
                    $trouve=true;
                } elseif ($fetchVerif['idEvenementRecuperationTitre']!='0' && $fetchVerif['idEvenementRecuperationTitre']!='-1') {
                    $reqTitre = "
							SELECT he1.titre as titre
							FROM evenements he2, evenements he1
							WHERE he2.idEvenement = he1.idEvenement
							AND he1.idEvenement = '".$fetchVerif['idEvenementRecuperationTitre']."'
									GROUP BY he1.idEvenement
									";
                    $resTitre = $this->connexionBdd->requete($reqTitre);

                    $fetchTitre = mysql_fetch_assoc($resTitre);
                    $titre = "<span $classCSS>".stripslashes($fetchTitre['titre'])."</span> ";
                    $trouve=true;
                }
            }

            if (!$trouve) {
                $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 he1.idTypeEvenement <>'6'
						AND ae.idAdresse = '".$idAdresse."'
						$sqlGA
						GROUP BY he1.idEvenement
						ORDER BY he1.dateDebut,he1.idEvenement
						LIMIT 1

						";
                $resTitre = $this->connexionBdd->requete($reqTitre);
                if (mysql_num_rows($resTitre)==1) {
                    $fetchTitre = mysql_fetch_assoc($resTitre);
                    $titre = "<span $classCSS>".stripslashes($fetchTitre['titre'])."</span> ";
                }
            }
        }



        $nomAdresse = "";
        if (isset($fetch['numero']) && $fetch['numero']!='' && $fetch['numero']!='0') {
            $nomAdresse .= $fetch['numero'];
        }


        // recherche de l'indicatif
        if (isset($fetch['idIndicatif']) && $fetch['idIndicatif']!='0') {
            $reqIndicatif = "SELECT nom FROM indicatif WHERE idIndicatif='".$fetch['idIndicatif']."'";
            $resIndicatif = $this->connexionBdd->requete($reqIndicatif);
            $fetchIndicatif = mysql_fetch_assoc($resIndicatif);

            $nomAdresse .=$fetchIndicatif['nom'];
        }

        if (isset($fetch['prefixeRue'])) {
            if (pia_substr($fetch['prefixeRue'], 0, pia_strlen($fetch['prefixeRue']))=="'") {
                $nomAdresse.=' '.$fetch['prefixeRue'].ucfirst($fetch['nomRue']);
            } else {
                $nomAdresse.=' '.$fetch['prefixeRue'].' '.ucfirst($fetch['nomRue']);
            }
        }

        if ((!isset($params['noQuartier']) || $params['noQuartier']==false) && $fetch['nomRue']=='') {
            if (isset($fetch['nomQuartier']) && $fetch['nomQuartier']!='autre') {
                if (isset($params['noQuartierCentreVille']) && $params['noQuartierCentreVille']==true && pia_strtolower($fetch['nomQuartier'])=="centre ville") {
                    //$nomAdresse .= ' '.ucfirst($fetch['nomQuartier']);
                } else {
                    $nomAdresse .= ' '.ucfirst($fetch['nomQuartier']);
                }
            }
        }

        if ((!isset($params['noSousQuartier']) || $params['noSousQuartier']==false) && $fetch['nomRue']=='') {
            if (isset($fetch['nomSousQuartier']) && $fetch['nomSousQuartier']!='autre') {
                $nomAdresse .= ' '.ucfirst($fetch['nomSousQuartier']);
            }
        }

        if (isset($fetch['nomVille']) && $fetch['nomRue']=='') { //  && $fetch['nomVille']!='Strasbourg'
            $nomAdresse.= ' '.ucfirst($fetch['nomVille']);
        }

        $nomAdresse = trim($nomAdresse);

        $retour="";
        if (isset($params['ifTitreAfficheTitreSeulement']) && $params['ifTitreAfficheTitreSeulement']==true && $titre!='' && $titre!="<span $classCSS></span> ") {
            $retour = $titre;
        } else {
            if ($titre=="<span $classCSS></span> ") {
                $titre = "";
            }
            $retour = $titre.$nomAdresse;
        }


        return $retour;
    }
126686
public function enregistreSelectionTitreGroupeAdresse($params = array())
    {
        if (isset($this->variablesGet['idEvenementTitreSelection']) && $this->variablesGet['idEvenementTitreSelection']!='' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse']!='') {
            $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresse'];
            $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse);
            //debug("Modifier la requete et les param de la fonction : utiliser _adresseEvenement et l'idAdresse pour trouver touts les evenements liés");
            //Modifier la requete et les param de la fonction : utiliser _adresseEvenement et l'idAdresse pour trouver touts les evenements liés
            $req = "update evenements set idEvenementRecuperationTitre=".$this->variablesGet['idEvenementTitreSelection']." WHERE idEvenement=$idEvenementGroupeAdresse";
            $res = $this->connexionBdd->requete($req);
            header("Location: ".$this->creerUrl('', '', array('archiAffichage'=>'adresseDetail', 'archiIdAdresse'=>$idAdresse, 'archiIdEvenementGroupeAdresse'=>$idEvenementGroupeAdresse), false, false));
        }
    }
602850
public static void main(String[] args) throws IOException {

		
		// TODO : le pcm mutate est bien différent du pcm de base, mais les changements ne sont pas pris en compte. A travailler !
		
		// inputpath = args[0];
		inputpath = "off_output/pcms/test_paget/input";
		outputpath = "off_output/pcms/test_paget/output";

		try {


			Stream<Path> paths = Files.walk(Paths.get(inputpath));

			paths.forEach(filePath -> {
				
				if (Files.isRegularFile(filePath) && filePath.toString().endsWith(".pcm")) {
					System.out.println("> PCM read from " + filePath);
				     
					//File pcmFile = new File(filePath.toString());

					PCMContainer pcmC = null ;
					//PCMContainer pcmC = JSONtoPCM.JSONFormatToPCM(JSONReader.importJSON(filePath.toString())) ;
					//PCMLoader loader = new KMFJSONLoader();
					//List<PCMContainer> pcmContainers = null;
					try {
						pcmC = JSONtoPCM.JSONFormatToPCM(JSONReader.importJSON(filePath.toString())) ;
					} catch (Exception e) {
						e.printStackTrace();
					}

//					for (PCMContainer pcmContainer : pcmContainers) {
//						// Get the PCM
						
						PCMInfoContainerMuted pcmic = null;
						
						try {
							System.out.println(pcmic.toString());
							pcmic = new PCMInfoContainerMuted(pcmC);
						} catch (Exception e) {
							e.printStackTrace();
						}
						if (pcmic != null) {
							if (pcmic.isSameSizePcm()) {
								System.out.println("> PCM muted is the same");
							} else {
								pcmC.setPcm(pcmic.getMutedPcm().getPcm());
								KMFJSONExporter pcmExporter = new KMFJSONExporter();
								String pcmString = pcmExporter.export(pcmC);
								
								Path p = Paths.get(outputpath + "muted_" ) ;//filePath.getFileName());
								try {
									Files.write(p, pcmString.getBytes());
								} catch (Exception e) {
									e.printStackTrace();
								}
								System.out.println("> PCM exported to " + p);
							}
						}
						else {
							System.out.println("> PCM corrompu");
						}

				}

			});
			// mongoClient.close();
			paths.close();

		} catch (Exception e) {
			// mongoClient.close();
			e.printStackTrace();
		}
	}
999118
public function afficheSelectSousQuartier($params = array())
    {
        $html="";
        $t=new Template('modules/archi/templates/');
        $t->set_filenames((array('listeSousQuartiers'=>'listeSousQuartiers.tpl')));


        $a = new archiAuthentification();
        $u = new archiUtilisateur();

        $sqlWhereVillesModerees = "";
        if ($a->getIdProfil()==3) { // l'utilisateur est un moderateur , on affiche que les quartiers qu'il peut moderer suivant les villes qu'il peut moderer
            $arrayIdVilles = $u->getArrayVillesModereesPar($a->getIdUtilisateur());

            if (count($arrayIdVilles)>0) {
                $sqlWhereVillesModerees = " AND idQuartier IN (SELECT idQuartier FROM quartier WHERE idVille in (".implode(",", $arrayIdVilles).")) ";
            } else {
                $sqlWhereVillesModerees = " AND idQuartier =0 "; // si le moderateur n'a pas de ville a moderer on affiche aucun quartier (sinon la requete les afficheraient tous)
            }
        }

        $identifiantUnique="";

        if (isset($params['identifiantUnique'])) {
            $identifiantUnique = $params['identifiantUnique'];
        } elseif (isset($this->variablesGet['identifiantUnique'])) {
            $identifiantUnique=$this->variablesGet['identifiantUnique'];
        }

        $t->assign_vars(array('identifiantUnique'=>$identifiantUnique));

        if ((isset($this->variablesGet['archiIdQuartier']) && $this->variablesGet['archiIdQuartier']!='') || (isset($params['idQuartier']) && $params['idQuartier']!='')) {
            $fromQuartier="";
            if (isset($params['idQuartier']) && $params['idQuartier']!='') {
                $whereQuartier = " AND idQuartier='".$params['idQuartier']."' ";
            } elseif (isset($this->variablesGet['archiIdQuartier']) && $this->variablesGet['archiIdQuartier']!='') {
                $whereQuartier = " AND idQuartier='".$this->variablesGet['archiIdQuartier']."' ";
            }

            $resQuartiers=$this->connexionBdd->requete("select idSousQuartier,nom from sousQuartier where 1=1 and nom<>'autre' ".$sqlWhereVillesModerees." ".$whereQuartier." order by nom");
            while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
            // si un sousQuartier doit etre selectionne par defaut
                $selected="";
                if (isset($params['idSousQuartier']) && $params['idSousQuartier']!='' && $params['idSousQuartier']==$fetchQuartiers['idSousQuartier']) {
                    $selected = " selected ";
                }

                if ($fetchQuartiers['nom']!='autre') {
                    $t->assign_block_vars("sousQuartiers", array(
                                                            'nom'=>$fetchQuartiers['nom'],
                                                            'id'=>$fetchQuartiers['idSousQuartier'],
                                                            'selected'=>$selected
                                                    ));
                }
            }
        } else {
            echo "archiAdresses::afficheSelectQuartier => parametre archiIdVille manquant<br>";
        }

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

        return $html;
    }
896373
protected function doExecute() {

        $container = $this->getContainer();

        // On affecte le logger si besoin.
        if ($container->has('logger')) {
            $this->setLogger($container->get('logger'));
        }

        // Config
        $container->get('config')->merge($this->config);
        $this->setConfiguration($container->get('config'));

        // On récupère la session.
        $session = $container->get('session');
        $this->setSession($session);

        // On nettoie les veilles sessions
        $this->sessionCleanUp();

        // On démarre la session.
        $session->start();

        // Si c'est une requête pour garder en vie la session, on peut quitter ici.
        if ($this->input->get('stayAlive', false, 'bool') === true) {
            echo "1";
            $this->close();
        }

        // On initialise l'état utilisateur.
        if ($session->isNew() || $session->get('state') === null) {
            $session->set('state', new Registry);
        }

        // On tente d'auto-connecter l'utilisateur.
        $this->loginWithCookie();

        // On personnalise l'environnement suivant l'utilisateur dans la session.
        $user = $session->get('user');
        if ($user) {

            $language = $user->params->get('language');
            $helper   = new LanguageHelper;

            // On s'assure que la langue de l'utilisateur existe.
            if ($language && $helper->exists($language, JPATH_ROOT)) {
                $this->set('language', $language);
            }

            $timezone = $user->params->get('timezone');
            if ($timezone) {
                $this->set('timezone', $timezone);
            }

        }

        // On définit le fuseau horaire.
        @date_default_timezone_set($this->get('timezone', 'Europe/Paris'));

        // On récupère le controller.
        $controller = $this->route();

        // On contrôle si l'utilisateur doit changer son mot de passe.
        $this->checkUserRequireReset($controller);

        // On redirige en HTTPS si besoin.
        /*if ($this->get('force_ssl') && !$this->isSSLConnection() && $controller->isSSLEnabled()) {
            $uri = new Uri($this->get('uri.request'));
            $uri->setScheme('https');
            $this->redirect((string)$uri);
        }*/

        // On sauvegarde le controller actif.
        $this->_activeController = strtolower($controller->getName());

        try {

            $profiler = $this->container->has('profiler') ? $this->container->get('profiler') : false;

            if ($profiler) {
                $profiler->mark('beforeControllerExecute');
            }

            // On exécute la logique du controller et on récupère le résultat.
            $result = $controller->execute();

            if ($profiler) {
                $profiler->mark('afterControllerExecute');
            }

            // On effectue le rendu de la page avec le résultat.
            $this->render($result);

        } catch (\Exception $e) {
            $this->raiseError($e->getMessage(), $e->getCode(), $e);
        }

    }
1338856
function CalcBezier(aT, aA1, aA2) {
			return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
		}
1231360
public function enregistreEntreeSondage()
	{
		if (isset($this->variablesPost['choixSondage']) && is_array($this->variablesPost['choixSondage'])) {
			if (count($this->variablesPost['choixSondage'])>0) {
				// on verifie que la personne n'a pas encore fait de proposition aujourd'hui
				$ip = $_SERVER['REMOTE_ADDR'];
				if ($ip!='') {
					$reqVerif = "SELECT idResultat FROM sondagesResultats WHERE ip like '$ip' AND date=CURDATE()";
					$resVerif = $this->connexionBdd->requete($reqVerif);
					if (mysql_num_rows($resVerif)>0) {
						echo "<br><span style='color:red;'>"._("Votre participation a déjà été enregistrée.")."</span><br>";
					} else {
						// enregistrement
						foreach ($this->variablesPost['choixSondage'] as $indice => $idProposition) {
							$reqInsert = "INSERT INTO sondagesResultats (idSondage, date, ip, idProposition) VALUES ('1', now(), '".$ip."', '".$idProposition."')";
							$resInsert = $this->connexionBdd->requete($reqInsert);
						}
					}
				} else {
					echo "<br><span style='color:red;'>"._("Votre vote n'a pas pu être enregistré.")."</span><br>";
				}
			} else {
				echo "<br><span style='color:red;'>"._("Vous n'avez selectionné aucune proposition.")."</span><br>";
			}
		}
	}
1156913
public function afficheFormulaireAdresseLieeEvenement($params = array())
    {
        $html="";
        $a = new archiAdresse();

        $c = new calqueObject();

        // on place la popup dans le code
        $html.=$c->getDiv(array('width'=>700,
                'height'=>400,
                'left'=>200,
                'top'=> 200,
                'lienSrcIFrame'=>$this->creerUrl('', 'recherche', array('noHeaderNoFooter'=>1,'modeAffichage'=>'popupAjoutAdressesLieesSurEvenement')),
                'titrePopup'=>"recherche d'adresses"));

        // rendre la popup deplacable
        $html.="<script  >".$c->getJsToDragADiv()."</script>";

        $html.="
				<script  >
				function retirerGroupeAdresse(idGroupeAdresseValue)
				{
				document.getElementById('listeGroupesAdressesLiees').innerHTML=''; // on vide le div

				if(idGroupeAdresseValue!=0)
				{
				selectField = document.getElementById('listeIdGroupesAdressesLiees');
				divField = document.getElementById('listeGroupesAdressesLiees');
				for(i=0 ; i<selectField.options.length; i++ )
				{
				if(selectField.options[i]!=null)
				{
				if(selectField.options[i].value==idGroupeAdresseValue)
				{
				indiceARetirer = i;
	}
				else
				{
				divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\'#\' style=\'cursor:pointer;\' onclick=\'retirerGroupeAdresse('+selectField.options[i].value+')\'>(-)</a><br>';
	}
	}
	}

				selectField.options[indiceARetirer]=null;
	}

	}

				</script>";

        if (isset($params['idEvenement'])) {
            $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($params['idEvenement']);
            $html.=$a->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
            $html.=$this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $params['idEvenement']);
            $html.="<h1>Lier des adresses</h1>";

            $reqAdresses = $a->getIdAdressesFromIdEvenement(array('idEvenement'=>$params['idEvenement']));
            $resAdresses = $this->connexionBdd->requete($reqAdresses);
            $fetchAdresses = mysql_fetch_assoc($resAdresses); // on prend la premiere adresse


            $codeAppelPopupRechercheAdresseLiee="document.getElementById('".$c->getJSIFrameId()."').src='".$this->creerUrl('', 'recherche', array('noHeaderNoFooter'=>1,'modeAffichage'=>'popupAjoutAdressesLieesSurEvenement'))."';";

            // ensuite on place le code pour l'affichage
            $codeAppelPopupRechercheAdresseLiee.=$c->getJSOpenPopup();

            $html.=_("Ajouter des adresses qui seront liées à cet evenement :")." <a onclick=\"$codeAppelPopupRechercheAdresseLiee\" style='cursor:pointer;'>Ajouter</a><br>";

            $html.="<form action='".$this->creerUrl('enregistreAdressesLieesAEvenement', 'adresseDetail', array('idEvenement'=>$params['idEvenement'],'archiIdAdresse'=>$fetchAdresses['idAdresse']))."' name='formAdressesLiees' method='POST' enctype='multipart/form-data'>";
            $html.="<select name='listeIdGroupesAdressesLiees[]' id='listeIdGroupesAdressesLiees' multiple style='display:none;'>".$this->getAdressesLieesAEvenement(array('modeRetour'=>'optionsListeSelect','idEvenement'=>$params['idEvenement']))."</select>";
            $html.="<div id='listeGroupesAdressesLiees'>".$this->getAdressesLieesAEvenement(array('modeRetour'=>'affichageHTML','idEvenement'=>$params['idEvenement']))."</div>";


            $html.="<input type='submit' value='"._("Enregistrer")."'>";
            $html.="</form>";
        }

        return $html;
    }
749792
private function hydrate($object_data) {

    // Vérification du type de donnée insérée
    if (is_array($object_data)) {                                                                           // SI il s'agit d'un tableau...
      foreach ($object_data as $object_data_key => $object_data_value) {                                    // On parcourt chaque élément du tableau
        if($this->isProperty($object_data_key) || method_exists($this, 'set'.ucfirst($object_data_key))) {  // SI la clé est une propriété de l'objet ou une méthode existante pour l'objet...

          // Retypage à 'Null' en cas de valeur vide
          if ($object_data_value == '') { $object_data_value = null;  }

          $this->{'set'.ucfirst($object_data_key)}($object_data_value);                                     // On appelle le 'setter' correspondant
        }
      }
    } else if (is_a($object_data, get_class($this))) {                                                      // SINON si il s'agit d'un objet...
      foreach ($this->properties() as $properties_key => $properties_value) {                               // Pour chacune de ses propriétés...
        $this->{'set'.ucfirst($properties_value)}($object_data->$properties_value());                       // On appelle le 'setter' correspondant
      }
    } else {
      throw new Exception("le type de donnée inséré à la méthode d'hydratation de la classe '".get_class($this)."' est incorrect", '00010003');
    }
  }