TODO : fait la même requete que getItems !!!!
768029
public function count()
    {
        if (is_null($this->_count)) {
            $this->_count = $this->_builder
                ->getQuery()
                ->count();
        }

        return $this->_count;
    }
605053
function Menu(arg,opt) {
        
        if ($.isPlainObject(arg) || Array.isArray(arg)) { opt = arg; arg = null; }
        
        /**
         * Conteneur du menu contextuel
         */
        if (!arg) arg = document.createElement('ul');
        
        if (arg) this.container = $(arg)[0];
        /**
         * Tableau d'objets MenuItem définissant la liste des éléments du menu
         */
        this.list = [];
        /**
         * Liste des séparateurs d'éléments
         */
        this.dividers = [];
        
        this.keyboardCtrls = new KeyboardCtrls(this);
        
        if (opt) this.set(opt); 
    }
526931
public function getJsToDragADiv()
		{
			$html="";
			$html.="
				var ie".$this->idPopup." = (document.all)? true:false;
				var ns4".$this->idPopup." = (document.layers)? true:false;
				var ns6".$this->idPopup." = (document.getElementById)? true:false;
			";
			
			// fonction start a appeler en premier dans le onload par exemple
			$html.="
			
			function start() {

			if (ie".$this->idPopup.") {
            // lance gereEvenements quand on appuie sur le bouton de la souris
            document.getElementById('".$this->getJSDivId()."').onmousedown= gereEvenements".$this->idPopup."; }else if (ns4".$this->idPopup.") {
            // lance gereEvenements quand on appuie sur le bouton de la souris
            document.captureEvents(Event.MOUSEDOWN);
            document.onmousedown=gereEvenements; }else if (ns6".$this->idPopup.") {
            // lance gereEvenements quand on appuie sur le bouton de la souris
            document.getElementById('".$this->getJSDivId()."').addEventListener('mousedown',gereEvenements".$this->idPopup.", false); }

			}
			
			
			function gereEvenements".$this->idPopup."(e) {

			if (ie".$this->idPopup.") {
            //R�cup�ration de la position de la souris
            window.lastX=event.clientX;
            window.lastY=event.clientY;
            // lance doDrag tant que l'on appuie sur le bouton de la souris en la bougeant
            document.onmousemove=doDrag".$this->idPopup.";
            // lance endDrag quand on relache le bouton de la souris
            document.onmouseup=endDrag".$this->idPopup."; }else if (ns4".$this->idPopup.") {
            //R�cup�ration de la position de la souris
            window.lastX=e.pageX;
            window.lastY=e.pageY;
            // lance doDrag tant que l'on appuie sur le bouton de la souris en la bougeant
            document.captureEvents(Event.MOUSEMOVE)
            document.onmousemove=doDrag".$this->idPopup.";
            // lance endDrag quand on relache le bouton de la souris
            document.captureEvents(Event.MOUSEUP)
            document.onmouseup=endDrag".$this->idPopup."; }else if (ns6".$this->idPopup.") {
            //R�cup�ration de la position de la souris
            window.lastX=e.clientX;
            window.lastY=e.clientY;
            // lance doDrag tant que l'on appuie sur le bouton de la souris en la bougeant
            window.onmousemove=doDrag".$this->idPopup.";
            // lance endDrag quand on relache le bouton de la souris
            window.onmouseup=endDrag".$this->idPopup."; }

			}
			
			function doDrag".$this->idPopup."(e) {
				
			if (ie".$this->idPopup.") {
            // Calcul de l'�cart de position de la souris
            var difX=event.clientX-window.lastX;
            var difY=event.clientY-window.lastY;
            //R�cup�ration de la position du div et ajout de l'�cart de position de la souris
            var newX1 = parseInt(".$this->getJSDivId().".style.left)+difX;
            var newY1 = parseInt(".$this->getJSDivId().".style.top)+difY;
            // Assignation des nouvelles coordonn�es au div
            ".$this->getJSDivId().".style.left=newX1+'px';
            ".$this->getJSDivId().".style.top=newY1+'px';
            //Assignation de l'anci�nne position de la souris
            window.lastX=event.clientX;
            window.lastY=event.clientY; }else if (ns4".$this->idPopup.") {
            // Calcul de l'�cart de position de la souris
            var difX=e.pageX-window.lastX;
            var difY=e.pageY-window.lastY;
            //R�cup�ration de la position du div et ajout de l'�cart de position de la souris
            var newX1 = parseInt(document.layers.".$this->getJSDivId().".left)+difX;
            var newY1 = parseInt(document.layers.".$this->getJSDivId().".top)+difY;
            // Assignation des nouvelles coordonn�es au div
            document.layers.".$this->getJSDivId().".left=newX1;
            document.layers.".$this->getJSDivId().".top=newY1;
            //Assignation de l'anci�nne position de la souris
            window.lastX=e.pageX;
            window.lastY=e.pageY; }else if (ns6".$this->idPopup.") {
            // Calcul de l'�cart de position de la souris
            var difX=e.clientX-window.lastX;
            var difY=e.clientY-window.lastY;
            //R�cup�ration de la position du div et ajout de l'�cart de position de la souris
            var newX1 = parseInt(document.getElementById('".$this->getJSDivId()."').style.left)+difX;
            var newY1 = parseInt(document.getElementById('".$this->getJSDivId()."').style.top)+difY;
            // Assignation des nouvelles coordonn�es au div
            document.getElementById('".$this->getJSDivId()."').style.left=newX1+'px';
            document.getElementById('".$this->getJSDivId()."').style.top=newY1+'px';
            //Assignation de l'anci�nne position de la souris
            window.lastX=e.clientX;
            window.lastY=e.clientY; } 

			}
			
			
			function endDrag".$this->idPopup."(e) {

		    if (ie".$this->idPopup." || ns4".$this->idPopup.") {
				//R�initialisation du onmousemove
				document.onmousemove=null; }else if (ns6".$this->idPopup.") {
				//R�initialisation du onmousemove
				window.onmousemove=null; }

			}
			
			
			start();
			
			";
			return $html;
		
		}
562325
public function getInputsWithout()
    {
        $without = func_get_args();
        foreach ($without as $value) {
            /* Dans le cas ou les colonnes sont normales. */
            if (!\is_array($value)) {
                $inputs[] = $value;

                continue;
            }
            /* Dans le cas ou les colonnes sont dans un tableau. */
            foreach ($value as $fields) {
                $inputs[] = $fields;
            }
        }

        return array_diff_key($this->inputs, array_flip($inputs));
    }
1038249
public function ajoutNouvelleAdresse()
    {
        $newIdPourMail = 0;
        if (isset($this->variablesPost['typeNouvelElement']) && $this->variablesPost['nouvelElement']!='') {
            switch ($this->variablesPost['typeNouvelElement']) {
                case 'newRue':
                    // est ce que ce nom de rue existe deja ?
                    /*                  if(isset($this->variablesPost['sousQuartier']) && $this->variablesPost['sousQuartier']!='0')
					{

					$sql="
					SELECT idRue
					FROM rue
					WHERE idSousQuartier = '".$this->variablesPost['sousQuartier']."'
					AND LOWER(nom) = LOWER(\"".$this->variablesPost['nouvelElement']."\")
					AND LOWER(prefixe) = LOWER(\"".$this->variablesPost['complement']."\")
					";
					$res=$this->connexionBdd->requete($sql);

					if(mysql_num_rows($res)>0)
					{
					$this->erreurs->ajouter("Erreur : il y a déjà un enregistrement de rue du même nom");
					}
					else
					{
					// ajout
					$this->connexionBdd->requete("
					INSERT INTO rue (idSousQuartier,nom,prefixe)
					VALUES ('".$this->variablesPost['sousQuartier']."',\"".$this->variablesPost['nouvelElement']."\",\"".$this->variablesPost['complement']."\")
					");
					}
					}
					else
					{
					$this->erreurs->ajouter("Erreur : Vous n'avez pas précisé le sous-quartier");
					}
					*/

                    $sousQuartier=0;
                    $quartier=0;
                    $ville=0;
                    $pays=0;

                    if (isset($this->variablesPost['sousQuartier']) && $this->variablesPost['sousQuartier']!='0') {
                        $sousQuartier = $this->variablesPost['sousQuartier'];
                        $typeDernier = 'sousQuartier';
                    } elseif (isset($this->variablesPost['quartier']) && $this->variablesPost['quartier']!='0') {
                        $quartier = $this->variablesPost['quartier'];
                        $typeDernier = 'quartier';
                    } elseif (isset($this->variablesPost['ville']) && $this->variablesPost['ville']!='0') {
                        $ville = $this->variablesPost['ville'];
                        $typeDernier = 'ville';
                    } elseif (isset($this->variablesPost['pays']) && $this->variablesPost['pays']!='0') {
                        $pays = $this->variablesPost['pays'];
                        $typeDernier = 'pays';
                    }

                    if (($sousQuartier + $quartier + $ville + $pays)==0) {
                        $this->erreurs->ajouter("Erreur : Il faut au moins préciser un élément auquel appartient la rue.");
                    } else {
                        // recherche du dernier element renseigné
                        switch ($typeDernier) {
                            //************************************************************************************************************************************************************
                            case 'sousQuartier':
                                // ajout d'une rue , il faut preciser un sous quartier
                                // ajoutRue va verifier si la rue n'existe pas deja et renverra un message d'erreur si c'est le cas
                                $newIdPourMail = $this->ajoutRue($this->variablesPost['sousQuartier'], $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                break;
                            //************************************************************************************************************************************************************
                            case 'quartier':
                                // ajout d'une rue , il faut preciser un sous quartier
                                // on doit donc d'abord trouver le sousQuartier 'autre' correspondant au quartier renseigné, s'il n'existe pas , on le cree
                                $reqAutreSousQuartier = "
										SELECT idSousQuartier FROM sousQuartier WHERE nom='autre' AND idQuartier = '".$quartier."'
												";
                                $resAutreSousQuartier = $this->connexionBdd->requete($reqAutreSousQuartier);

                                if (mysql_num_rows($resAutreSousQuartier)==0) {
                                    // pas de valeur 'autre' pour le sous quartier , il faut le creer
                                    $reqAjoutSousQuartierAutre = "insert into sousQuartier (idQuartier,nom) values ('".$quartier."','autre')";
                                    $this->connexionBdd->requete($reqAjoutSousQuartierAutre);
                                    $newId = mysql_insert_id();
                                    $newIdPourMail = $this->ajoutRue($newId, $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                } else {
                                    // sous quartier autre trouve pour le quartier
                                    $fetchAutreSousQuartier = mysql_fetch_assoc($resAutreSousQuartier);

                                    $newIdPourMail = $this->ajoutRue($fetchAutreSousQuartier['idSousQuartier'], $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                }

                                break;
                            //************************************************************************************************************************************************************
                            case 'ville':
                                // ajout d'une rue , il faut preciser un sous quartier
                                // recuperation du quartier 'autre' de la ville puis du sousQuartier 'autre' de ce quartier
                                $reqAutreQuartier = "SELECT idQuartier FROM quartier WHERE nom='autre' and idVille='".$ville."'";
                                $resAutreQuartier = $this->connexionBdd->requete($reqAutreQuartier);

                                if (mysql_num_rows($resAutreQuartier)==0) {
                                    // creation du quartier 'autre' de la ville concernee
                                    $reqAjoutQuartierAutre = "insert into quartier (idVille,nom) values ('".$ville."','autre')";
                                    $resAjoutQuartierAutre= $this->connexionBdd->requete($reqAjoutQuartierAutre);
                                    $idQuartierAutreNew = mysql_insert_id();

                                    // creation du sousQuartier 'autre' de ce nouveau quartier autre
                                    $reqAjoutSousQuartierAutre = "insert into sousQuartier (idQuartier,nom) value ('".$idQuartierAutreNew."','autre')";
                                    $resAjoutSousQuartierAutre = $this->connexionBdd->requete($reqAjoutSousQuartierAutre);
                                    $idSousQuartierAutreNew = mysql_insert_id();

                                    // ajout de la rue
                                    $newIdPourMail = $this->ajoutRue($idSousQuartierAutreNew, $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                } else {
                                    // le quartier autre existe
                                    // recherche du sousQuartier qui lui appartient
                                    $fetchIdQuartier = mysql_fetch_assoc($resAutreQuartier);
                                    $quartier = $fetchIdQuartier['idQuartier'];
                                    $reqAutreSousQuartier = "
											SELECT idSousQuartier FROM sousQuartier WHERE nom='autre' AND idQuartier = '".$quartier."'
													";
                                    $resAutreSousQuartier = $this->connexionBdd->requete($reqAutreSousQuartier);

                                    if (mysql_num_rows($resAutreSousQuartier)==0) {
                                        // pas de valeur 'autre' pour le sous quartier , il faut le creer
                                        $reqAjoutSousQuartierAutre = "insert into sousQuartier (idQuartier,nom) values ('".$quartier."','autre')";
                                        $this->connexionBdd->requete($reqAjoutSousQuartierAutre);
                                        $newId = mysql_insert_id();
                                        $newIdPourMail = $this->ajoutRue($newId, $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                    } else {
                                        // sous quartier autre trouve pour le quartier
                                        $fetchAutreSousQuartier = mysql_fetch_assoc($resAutreSousQuartier);

                                        $newIdPourMail = $this->ajoutRue($fetchAutreSousQuartier['idSousQuartier'], $this->variablesPost['nouvelElement'], $this->variablesPost['complement']);
                                    }
                                }

                                break;
                            //************************************************************************************************************************************************************
                            case 'pays':
                                // ajout d'une rue , il faut preciser un sous quartier
                                echo "ajout d'une rue dans un pays verrouillee. Contactez l'administrateur ou selectionnez d'abord une ville. Si celle ci n'existe pas, contactez nous pour que nous l'ajoutions.";
                                break;
                        }
                    }



                    break;
                case 'newSousQuartier':
                    if (isset($this->variablesPost['quartier']) && $this->variablesPost['quartier']!='0') {
                    // est ce que l'enregistrement existe deja ?
                        $sql="
								SELECT idSousQuartier
								FROM sousQuartier
								WHERE idQuartier = '".$this->variablesPost['quartier']."'
										AND LOWER(nom) = LOWER(\"".$this->variablesPost['nouvelElement']."\")
												";
                        $res=$this->connexionBdd->requete($sql);

                        if (mysql_num_rows($res)>0) {
                            $this->erreurs->ajouter("Erreur : il y a déjà un enregistrement de sous-quartier du même nom");
                        } else {
                            // ajout
                            $this->connexionBdd->requete("
									INSERT INTO sousQuartier (idQuartier,nom)
									VALUES ('".$this->variablesPost['quartier']."',\"".$this->variablesPost['nouvelElement']."\")
									");

                            $newIdPourMail = mysql_insert_id();
                        }
                    } else {
                        $this->erreurs->ajouter("Erreur : Vous n'avez pas précisé le quartier");
                    }
                    break;
                case 'newQuartier':
                    if (isset($this->variablesPost['ville']) && $this->variablesPost['ville']!='0') {
                    // est ce que l'enregistrement existe deja ?
                        $sql="
								SELECT idQuartier
								FROM quartier
								WHERE idVille = '".$this->variablesPost['ville']."'
										AND LOWER(nom) = LOWER(\"".$this->variablesPost['nouvelElement']."\")
												";

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

                        if (mysql_num_rows($res)>0) {
                            $this->erreurs->ajouter("Erreur : il y a déjà un enregistrement de quartier du même nom");
                        } else {
                            // ajout
                            $this->connexionBdd->requete("
									INSERT INTO quartier (idVille,nom)
									VALUES ('".$this->variablesPost['ville']."',\"".$this->variablesPost['nouvelElement']."\")
									");

                            $newIdPourMail = mysql_insert_id();
                        }
                    } else {
                        $this->erreurs->ajouter("Erreur : Vous n'avez pas précisé la ville");
                    }
                    break;
                case 'newVille':
                    if (isset($this->variablesPost['pays']) && $this->variablesPost['pays']!='0') {
                    // est ce que l'enregistrement existe deja ?
                        $sql="
								SELECT idVille
								FROM ville
								WHERE idPays = '".$this->variablesPost['pays']."'
										AND LOWER(nom) = LOWER(\"".$this->variablesPost['nouvelElement']."\")
												";
                        $res=$this->connexionBdd->requete($sql);
                        if (mysql_num_rows($res)>0) {
                            $this->erreurs->ajouter("Erreur : il y a déjà un enregistrement de ville du même nom");
                        } else {
                            // ajout
                            $this->connexionBdd->requete("
									INSERT INTO ville (idPays,nom,codepostal,longitude,latitude)
									VALUES ('".$this->variablesPost['pays']."',\"".$this->variablesPost['nouvelElement']."\",'".$this->variablesPost['codepostal']."','".$this->variablesPost['longitude']."','".$this->variablesPost['latitude']."')
									");

                            $newIdPourMail = mysql_insert_id();
                        }
                    } else {
                        $this->erreurs->ajouter("Erreur : Vous n'avez pas précisé le pays");
                    }
                    break;
                case 'newPays':
                    // est ce que l'enregistrement existe deja ?
                    $sql = "
							SELECT idPays
							FROM pays
							WHERE LOWER(nom)=LOWER(\"".$this->variablesPost['nouvelElement']."\")
									";

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

                    if (mysql_num_rows($res)>0) {
                        $this->erreurs->ajouter("Erreur : il y a déjà un enregistrement de pays du même nom");
                    } else {
                        // ajout
                        $this->connexionBdd->requete("
								INSERT INTO pays (nom) VALUES (\"".$this->variablesPost['nouvelElement']."\")
								");

                        $newIdPourMail = mysql_insert_id();
                    }
                    break;
            }

            // envoi d'un mail aux admins
            if ($newIdPourMail!='0' && $newIdPourMail!='') {
                $tableName="";
                $identifiantName = "";
                // correspondance entre les noms de tables
                switch ($this->variablesPost['typeNouvelElement']) {
                    case "newRue":
                        $tableName = "rue";
                        $identifiantName = "idRue";
                        break;
                    case "newSousQuartier":
                        $tableName = "sousQuartier";
                        $identifiantName = "idSousQuartier";
                        break;
                    case "newQuartier":
                        $tableName = "quartier";
                        $identifiantName = "idQuartier";
                        break;
                    case "newVille":
                        $tableName = "ville";
                        $identifiantName = "idVille";
                        break;
                    case "newPays":
                        $tableName= "pays";
                        $identifiantName = "idPays";
                        break;
                }



                $mail = new mailObject();

                $a = new archiAuthentification();
                $u = new archiUtilisateur();
                $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($a->getIdUtilisateur());
                $message = "Un élément d'adresse a été ajouté par : ".$arrayInfosUtilisateur['nom']." ".$arrayInfosUtilisateur['prenom']."<br>";
                $message .= "type d'élément : ".$tableName."<br><br>";
                $message.="<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>$tableName,'idModification'=>$newIdPourMail))."'>".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>$tableName,'idModification'=>$newIdPourMail))."</a>";

                $messageModerateur="Un élément d'adresse a été ajouté<br>";
                $messageModerateur.="type d'élément : ".$tableName."<br><br>";
                $messageModerateur.="<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>$tableName,'idModification'=>$newIdPourMail))."'>".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>$tableName,'idModification'=>$newIdPourMail))."</a>";

                $mail->sendMailToAdministrators($mail->getSiteMail(), "archi-strasbourg.org : un utilisateur a ajouté un élément d'adresse", $message, " and alerteMail='1' ", true);

                $u = new archiUtilisateur();
                $u->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu'=>$message,'idTypeMailRegroupement'=>2,'criteres'=>" and alerteMail='1' "));

                /*
				 if(in_array($tableName,array('rue','sousQuartier','quartier')))
				 {
				$idVille = $this->getIdVilleFrom($newIdPourMail,$identifiantName);
				$arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($idVille,array("sqlWhere"=>" AND alerteAdresses='1' "));
				if(count($arrayListeModerateurs)>0)
				{
				foreach($arrayListeModerateurs as $indice => $idModerateur)
				{
				if($idModerateur!=$a->getIdUtilisateur() && $u->isAuthorized('admin_rues',$idModerateur) && $u->isAuthorized('admin_sousQuartiers',$idModerateur) && $u->isAuthorized('admin_quartiers',$idModerateur))
				{
				$mailModerateur = $u->getMailUtilisateur($idModerateur);
				$mail->sendMail($mail->getSiteMail(),$mailModerateur,"archi-strasbourg.org : un utilisateur ajouté un élément d'adresse",$messageModerateur,true);
				}
				}
				}
				}*/
            }
        } else {
            $this->erreurs->ajouter("Erreur: le champ 'intitule' est vide");
        }
    }
227056
public function getActualiteDetail($params = array())
	{
		$html = "";
		if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite']!='') {
			$req = "SELECT idActualite,  date, texte,  titre, sousTitre, urlFichier, fichierPdf FROM actualites WHERE idActualite='".$this->variablesGet['archiIdActualite']."'";
			$res = $this->connexionBdd->requete($req);
			if (mysql_num_rows($res)>0) {
				$fetch = mysql_fetch_assoc($res);

				$tab = new tableau();
				if ($fetch['fichierPdf']!='') {
					$tab->addValue("<div style='font-size:9px;'>"._("Pour un plus grand confort de lecture téléchargez la")." <a href='".$this->getUrlImage()."actualites/".$fetch['idActualite']."/".$fetch['fichierPdf']."' target='_blank'>"._("version PDF du texte.")."</a></div>");
				}
				$tab->addValue(stripslashes($fetch['titre']), "style='font-size:18px;font-weight:bold;'");
				$tab->addValue(stripslashes($fetch['sousTitre']), "style='font-size:14px;font-weight:bold;'");
				$html.=$tab->createHtmlTableFromArray(1, 'margin:0;padding:0;', '', '', " border=''");

				$html.="<br>";
				$html.=str_replace("###cheminImages###", $this->getUrlImage()."actualites/".$fetch['idActualite']."/", stripslashes($fetch['texte']));
			}
		}

		return $html;
	}
389662
public function getFormulaireCommentaires($idEvenementGroupeAdresse = 0, $fieldsCommentaires = array())
    {
        $html="";
        $e = new archiEvenement();
        $idEvenementGroupeAdresse = $e->getIdEvenementGroupeAdresseFromIdEvenement($idEvenementGroupeAdresse);


        $fieldsCommentaires["idEvenementGroupeAdresse"]['default'] = $idEvenementGroupeAdresse;

        // si un utilisateur est connecté , on renseigne directement ces infos , mais on lui laisse la possibilité de modifier
        $authentification = new archiAuthentification();

        if ($authentification->estConnecte()) {
            $idUtilisateur = $authentification->getIdUtilisateur();
            $utilisateur = new archiUtilisateur();
            $fetchUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateur);
            // patchs pour que l'on reaffiche les nom prenom et mail une fois le formulaire validé et le commentaire enregistré
            if (isset($this->variablesPost['nom'])) {
                unset($this->variablesPost['nom']);
                unset($_POST['nom']);
            }
            if (isset($this->variablesPost['prenom'])) {
                unset($this->variablesPost['prenom']);
                unset($_POST['prenom']);
            }
            if (isset($this->variablesPost['email'])) {
                unset($this->variablesPost['email']);
                unset($_POST['email']);
            }
            $fieldsCommentaires['nom']['default']=stripslashes($fetchUtilisateur['nom']);
            $fieldsCommentaires['prenom']['default']=stripslashes($fetchUtilisateur['prenom']);
            $fieldsCommentaires['email']['default']=$fetchUtilisateur['mail'];


            $fieldsCommentaires['nom']['type']='hidden';
            $fieldsCommentaires['prenom']['type']='hidden';
            $fieldsCommentaires['email']['type']='hidden';

            unset($fieldsCommentaires['captcha']); // pas de captcha quand on est connecté
        }

        $help = $this->getHelpMessages('helpEvenement');

        $bbMiseEnFormBoutons= "<div style=''><input type=\"button\" value=\"b\" style=\"width:50px;font-weight:bold\" onclick=\"bbcode_ajout_balise('b', 'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('".$help["msgGras"]."');\" onMouseOut=\"closeContextHelp();\"/>
    <input type=\"button\" value=\"i\" style=\"width:50px;font-style:italic\" onclick=\"bbcode_ajout_balise('i', 'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('".$help["msgItalic"]."');\" onMouseOut=\"closeContextHelp();\"/>
    <input type=\"button\" value=\"u\" style=\"width:50px;text-decoration:underline;\" onclick=\"bbcode_ajout_balise('u', 'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('".$help["msgUnderline"]."');\" onMouseOut=\"closeContextHelp();\"/>
    <input type=\"button\" value=\"quote\" style=\"width:50px\" onclick=\"bbcode_ajout_balise('quote', 'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('".$help["msgQuotes"]."');\" onMouseOut=\"closeContextHelp();\"/>
    <!--<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');\"/>-->
    <input type=\"button\" value=\"url interne\"  style=\"width:75px\" onclick=\"bbcode_ajout_balise('url',  'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('Insérer une adresse WEB interne à archi-strasbourg.org');\" onMouseOut=\"closeContextHelp();\" onkeyup=\"bbcode_keyup(this,'apercu');\"/>
    <input type=\"button\" value=\"url externe\"  style=\"width:80px\" onclick=\"bbcode_ajout_balise('urlExterne',  'formAjoutCommentaire', 'commentaire');bbcode_keyup(this,'apercu');\" onMouseOver=\"getContextHelp('Insérer une adresse WEB externe à archi-strasbourg.org');\" onMouseOut=\"closeContextHelp();\" onkeyup=\"bbcode_keyup(this,'apercu');\"/></div>";

        $fieldsCommentaires['commentaire']['htmlCodeBeforeField'] = $bbMiseEnFormBoutons;

        $tabCommentaires = array(   'titrePage'=>_("Ajouter un commentaire concernant l'adresse"),
                                    'formName'=>'formAjoutCommentaire',
                                    'formAction'=>$this->creerUrl('enregistreCommentaire', '', array()),
                                    'tableHtmlCode'=>" class='formAjoutCommentaire'",
                                    'codeHtmlInFormAfterFields'=>_("Prévisualisation :")."<div id='apercu'></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['formAjoutCommentaire'].elements['commentaire'], 'apercu');setTimeout('majDescription()',1000);
                                    function majDescription()
                                    {
                                        bbcode_keyup(document.getElementById('commentaire'), 'apercu');
        								setTimeout('majDescription()',500);
                                    }</script>",
                                    'fields'=>$fieldsCommentaires);


        $formulaire = new formGenerator();


        $bbCode = new bbCodeObject();

        $html.= $formulaire->afficherFromArray($tabCommentaires);

        return $html;
    }
339524
public function logout() {

        $container = $this->getContainer();
        $my        = $container->get('user')->load();
        $session   = $container->get('session');
        $db        = $container->get('db');

        $my->setLastVisit();

        // On supprime la session PHP.
        $session->destroy();

        // On force la déconnexion de tous les utilisateurs avec cet id.
        $db->setQuery($db->getQuery(true)
            ->delete($db->quoteName('#__session'))
            ->where($db->quoteName('userid') . ' = ' . (int)$my->id))
            ->execute();

        // On supprime tous les cookie d'authentification de l'utilisateur.
        $cookieName  = $this->getShortHashedUserAgent();
        $cookieValue = $this->input->cookie->get($cookieName);

        // S'il n y a de cookie à supprimer.
        if (!$cookieValue) {
            return true;
        }

        $cookieArray = explode('.', $cookieValue);

        // On filtre la série car on l'utilise dans la requête.
        $filter = new InputFilter;
        $series = $filter->clean($cookieArray[1], 'ALNUM');

        // On supprime l'enregistrement dans la base de données.
        $query = $db->getQuery(true);
        $query->delete('#__user_keys')
            ->where($db->quoteName('series') . ' = ' . $db->quote($series));
        $db->setQuery($query)
            ->execute();

        // On supprime le cookie.
        $this->input->cookie->set($cookieName, false, time() - 42000, $this->get('cookie.path', '/'), $this->get('cookie.domain'));

        return true;

    }
786555
public function getItems()
	{
		/**
		 * @var array $res
		 */
		$res = array();
		foreach ( $this->iter as /** @var XPathItem $item */ $item )
		{
			if ( count( $res ) == 10)
				break;

			$res[] = $item->CloneInstance();
		}

		return $res;
	}
774442
function isUTF8($str)
    {
         // astuce pour entrer dans un test booléen ^^
         // (si c'est un tableau... ce qui est forcement vrai)
        if (is_array($str)) {
            $str = implode('', $str);
            // retourne FALSE si aucun caractere n'appartient au jeu utf8
            return !((ord($str[0]) != 239) && (ord($str[1]) != 187) && (ord($str[2]) != 191));
        } else {
            // retourne TRUE
            // si la chaine decoder et encoder est egale a elle meme
            return (utf8_encode(utf8_decode($str)) == $str);
        }    
    }
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;
    }
271373
public function getGoogleMapIframe($params = array())
    {
        $html='<link href="css/default.css" rel="stylesheet" type="text/css" />
    ';

        if (isset($this->variablesGet['longitude']) && $this->variablesGet['longitude']!='' && isset($this->variablesGet['latitude']) && $this->variablesGet['latitude']!='') {
            $ajax = new ajaxObject();
            $html.=$ajax->getAjaxFunctions();

            $longitude = $this->variablesGet['longitude'];
            $latitude = $this->variablesGet['latitude'];

            $listeCoords = array();

            // si archiIdAdresse est précisé , on remplace les coordonnées par celle de l'adresse ( car celle envoyée sont celle de la premiere du groupe d'adresse)
            $isCoordonneesAdresseCouranteValide = true;
            $isCoordonneesGroupeAdresseOK = false;

            if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse']!='' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse']!='') {
            // s'il existe des coordonnées pour le groupe d'adresse dans la table _adresseEvenement, on prend celles ci
                $reqCoordonneesGroupeAdresse = "SELECT longitudeGroupeAdresse,latitudeGroupeAdresse FROM _adresseEvenement WHERE idAdresse='".$this->variablesGet['archiIdAdresse']."' AND idEvenement='".$this->variablesGet['archiIdEvenementGroupeAdresse']."' AND longitudeGroupeAdresse<>'0' AND latitudeGroupeAdresse<>'0'";
                $resCoordonneesGroupeAdresse = $this->connexionBdd->requete($reqCoordonneesGroupeAdresse);
                if (mysql_num_rows($resCoordonneesGroupeAdresse)>0) {
                    $fetchCoordonneesGroupeAdresse = mysql_fetch_assoc($resCoordonneesGroupeAdresse);
                    $longitude = $fetchCoordonneesGroupeAdresse['longitudeGroupeAdresse'];
                    $latitude = $fetchCoordonneesGroupeAdresse['latitudeGroupeAdresse'];
                    $isCoordonneesGroupeAdresseOK = true;
                }
            }

            if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse']!='' && $this->variablesGet['archiIdAdresse']!='0' && !$isCoordonneesGroupeAdresseOK) {
                $reqCoordonnees = "
                    SELECT ha1.longitude as longitude, ha1.latitude as latitude
                    FROM historiqueAdresse ha2, historiqueAdresse ha1
                    WHERE ha2.idAdresse = ha1.idAdresse
                    AND ha1.idAdresse = '".$this->variablesGet['archiIdAdresse']."'
                    GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse
                    HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
                ";

                $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);

                if (mysql_num_rows($resCoordonnees)==1) {
                    $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                    if ($fetchCoordonnees['longitude']!='' && $fetchCoordonnees['latitude']!='' && $fetchCoordonnees['longitude']!='0' && $fetchCoordonnees['latitude']!='0') {
                        $longitude = $fetchCoordonnees['longitude'];
                        $latitude = $fetchCoordonnees['latitude'];
                    } else {
                        $isCoordonneesAdresseCouranteValide = false;
                    }
                }
            }

            $affichageCoordonneesVille = false;
            if ($longitude<0 || $latitude<0 || $longitude==0 || $latitude==0 || !$isCoordonneesAdresseCouranteValide) {
            // on detection une longitude ou latitude negative : il doit y avoir eu une erreur de detection des parametres
                // on va centrer la carte sur la ville

                if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse']!='' && $this->variablesGet['archiIdAdresse']!='0') {
                // recuperation de l'idville de l'adresse courante
                    $idVille = $this->getIdVilleFrom($this->variablesGet['archiIdAdresse'], 'idAdresse');
                    // coordonnees de la ville
                    $reqCoordonneesVille = "SELECT longitude,latitude,nom FROM ville WHERE idVille = '".$idVille."'";
                    $resCoordonneesVille = $this->connexionBdd->requete($reqCoordonneesVille);
                    $fetchCoordonneesVille = mysql_fetch_assoc($resCoordonneesVille);
                    $longitude = $fetchCoordonneesVille['longitude'];
                    $latitude = $fetchCoordonneesVille['latitude'];
                    $affichageCoordonneesVille = true;
                }
            }

            // rayon en metres
            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse') {
             // dans le cas de l'affichage de la popup sur le detail de l'adresse on prend un rayon plus grand, donc plus d'adresses affichées
                $rayon = 200;
            } else {
                $rayon = 200;
            }

            $arrayGoogleMapCoord = $this->getArrayGoogleMapConfigCoordonneesFromCenter(array('longitude'=>$longitude,'latitude'=>$latitude,'rayon'=>$rayon));

            $listeCoords = $arrayGoogleMapCoord['arrayConfigCoordonnees'];
            // verification des droits
            $isAuthorizedToDrag = false;
            $widthGoogleMapModePopup = 650;
            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse') {
                if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse']!='' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse']!='') {
                    $idAdresseCentree = $this->variablesGet['archiIdAdresse'];
                    $idEvenementGroupeAdresseCentre = $this->variablesGet['archiIdEvenementGroupeAdresse'];


                    $utilisateur = new archiUtilisateur();
                    $authentification = new archiAuthentification();

                    // verification des droits
                    if ($utilisateur->isAuthorized('googlemap_change_coordonnees', $authentification->getIdUtilisateur())) {
                        if ($utilisateur->getIdProfil($authentification->getIdUtilisateur())==4 || ($utilisateur->getIdProfil($authentification->getIdUtilisateur())==3
                            && $utilisateur->isModerateurFromVille($authentification->getIdUtilisateur(), $idAdresseCentree, 'idAdresse'))) {
                            $isAuthorizedToDrag = true;
                            $widthGoogleMapModePopup = 650;
                        }
                    }
                }
            }

            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse') {
            // affichage pour la popup sur le detail d'une adresse
                if ($affichageCoordonneesVille) {
                    $gm = new googleMap(array('googleMapKey'=>$this->googleMapKey,'width'=>$widthGoogleMapModePopup,'height'=>500,'zoom'=>11,'noDisplayZoomSelectionSquare'=>true,'noDisplayZoomSlider'=>false,'zoomType'=>'mini','noDisplayEchelle'=>true,'noDisplayMapTypeButtons'=>false,'centerLong'=>$longitude,'centerLat'=>$latitude,'mapType'=>'G_SATELLITE_MAP'));
                } else {
                    $gm = new googleMap(array('googleMapKey'=>$this->googleMapKey,'width'=>$widthGoogleMapModePopup,'height'=>500,'zoom'=>17,'noDisplayZoomSelectionSquare'=>true,'noDisplayZoomSlider'=>false,'zoomType'=>'mini','noDisplayEchelle'=>true,'noDisplayMapTypeButtons'=>false,'centerLong'=>$longitude,'centerLat'=>$latitude,'mapType'=>'G_SATELLITE_MAP'));
                }
            } else {
                if ($affichageCoordonneesVille) {
                    $gm = new googleMap(array('googleMapKey'=>$this->googleMapKey,'width'=>275,'height'=>275,'zoom'=>10,'noDisplayZoomSelectionSquare'=>true,'noDisplayZoomSlider'=>false,'zoomType'=>'mini','noDisplayEchelle'=>true,'noDisplayMapTypeButtons'=>true,'centerLong'=>$longitude,'centerLat'=>$latitude,'mapType'=>'G_SATELLITE_MAP'));
                } else {
                    // affichage par defaut , s'affichage en haut de la page detail d'une adresse , a gauche de l'encars
                    $gm = new googleMap(array('googleMapKey'=>$this->googleMapKey,'width'=>275,'height'=>275,'zoom'=>16,'noDisplayZoomSelectionSquare'=>true,'noDisplayZoomSlider'=>false,'zoomType'=>'mini','noDisplayEchelle'=>true,'noDisplayMapTypeButtons'=>true,'centerLong'=>$longitude,'centerLat'=>$latitude,'mapType'=>'G_SATELLITE_MAP'));//,'divStyle'=>'margin-top:-17px;'
                }
            }
            $html.=$gm->getJsFunctions();
            //$html.="<script  >".$gm->setFunctionAddPointsCallableFromChild()."</script>";
            $html.=$gm->getMap(array('listeCoordonnees'=>$listeCoords,'urlImageIcon'=>$this->getUrlImage()."pointGM.png",'pathImageIcon'=>$this->getCheminPhysique()."images/pointGM.png"));

            // on ajoute le markeur central a la main
            $html.="<script  >
                var iconHome = new GIcon();
                iconHome.image = \"".$this->getUrlImage()."placeMarker.png\";
                //iconHome.shadow = \"https://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);

                //var iconMarkerHome = new GIcon(iconHome);
                ";

            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse' && $isAuthorizedToDrag) {
                $html.="markerHome = new GMarker(new GLatLng(".$latitude.",".$longitude."),{icon:iconHome, draggable: true});";
            } else {
                $html.="markerHome = new GMarker(new GLatLng(".$latitude.",".$longitude."),{icon:iconHome});";
            }

            $html.="map.addOverlay(markerHome);";

            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse' && $isAuthorizedToDrag) {
                $html.="markerHome.enableDragging();";
            }

            if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage']=='popupDetailAdresse' && $isAuthorizedToDrag) {
                $html.="GEvent.addListener(markerHome,'drag',function(){parent.window.document.getElementById('latitudeUser').value=markerHome.getPoint().lat();parent.window.document.getElementById('longitudeUser').value=markerHome.getPoint().lng();parent.window.document.getElementById('validationCoordonnees').style.display='';});
                ";

                $html.="GEvent.addListener(
                            map,
                            'dragend',
                            function(){appelAjaxReturnJs('".html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noRefresh'=>1,'noHTMLHeaderFooter'=>1,'noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude)))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}
                            );";
            } else {
                    $html.="GEvent.addListener(
                            map,
                            'dragend',
                            function(){appelAjaxReturnJs('".html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noHTMLHeaderFooter'=>1,'noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude)))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}
                            );";
                    //$html.="GEvent.addListener(map,'dragend',function(){document.getElementById('iFrameMajCenter').src='".$this->creerUrl('','majGoogleMapNewCenter',array('noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat();});";
            }

            //$html.=$gm->setFunctionAddPointsCallableFromChild(array());

            $html.="</script>";
            //$html.="<div id='jsMiseAJourCenter' ><iframe id='iFrameMajCenter' src=''></iframe></div>";//style='position:absolute;left:0px;top:0px;'
        }

        return $html;

    }
1156437
public function ajouterNouveauDossier()
    {
        $mail = new mailObject();
        // ******************************************************
        // en premier lieu on ajoute l'adresse
        // ******************************************************
        $arrayNewAdresses = array();
        
        $longitude='0';
        $latitude='0';
        if (isset($this->variablesPost['idUnique']) && count($this->variablesPost['idUnique'])>0) {
            if (isset($this->variablesPost['latitude']) && isset($this->variablesPost['longitude']) && $this->variablesPost['latitude']!='' && $this->variablesPost['longitude']!='') {
                $longitude = $this->variablesPost['longitude'];
                $latitude = $this->variablesPost['latitude'];
            }
            
            foreach ($this->variablesPost['idUnique'] as $indice => $valueIdUnique) {
                if ($this->variablesPost['rue'][$valueIdUnique]!='' && $this->variablesPost['rue'][$valueIdUnique]!='0') {
                    $arrayNewAdresses[] = $this->ajouterAdresseFromArray(
                        array(
                            'idPays'=>1, 
                            'idVille'=>$this->variablesPost['ville'], 
                            'idQuartier' => $this->variablesPost['quartiers'], 
                            'idSousQuartier'=>$this->variablesPost['sousQuartiers'], 
                            'numero'=>$this->variablesPost['numero'][$valueIdUnique], 
                            'indicatif'=>$this->variablesPost['indicatif'][$valueIdUnique], 
                            'idRue'=>$this->variablesPost['rue'][$valueIdUnique], 
                            'longitude'=>$this->variablesPost['longitude'][$valueIdUnique], 
                            'latitude'=>$this->variablesPost['latitude'][$valueIdUnique]
                        )
                    );
                } else {
                    $arrayNewAdresses[] = $this->ajouterAdresseFromArray(
                        array(
                            'idPays'=>1, 
                            'idVille'=>$this->variablesPost['ville'], 
                            'idQuartier' => $this->variablesPost['quartiers'], 
                            'idSousQuartier'=>$this->variablesPost['sousQuartiers'], 
                            'numero'=>0, 
                            'indicatif'=>0, 
                            'idRue'=>0, 
                            'longitude'=>'', 
                            'latitude'=>''
                        )
                    );
                }
            }
            
            
            $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)";
            $resDouble = $this->connexionBdd->requete($sql);
            $arrayDouble = mysql_fetch_assoc($resDouble);
            
			$this->addEvent("adresse",  $arrayNewAdresses);
            
            // enfin on regenere les caches
            //$cache = new cacheObject();
            //$cache->refreshCache();
        } else if (isset($_POST["metier"]) && !empty($_POST["nom"])) {
            $this->ajouter();
            $newPerson=array(
            		array(
            				"idAdresse"=>mysql_insert_id(),
            				'newAdresse'=>true
            		)
            );
            $this->addEvent("personne",  $newPerson);
        } else {
            $this->erreurs->ajouter("Aucune fiche n'a pu être ajoutée. Vérifiez la saisie du champ.");
        }
    }
646064
protected function getActions() {

        if (empty($this->actions)) {

            // On charge les droits depuis le XML.
            $data = simplexml_load_file(JPATH_ROOT . "/rights.xml");

            // On contrôle que les données sont bien chargées.
            if ((!($data instanceof \SimpleXMLElement)) && (!is_string($data))) {
                throw new \RuntimeException($this->text->translate('APP_ERROR_RIGHTS_NOT_LOADED'));
            }

            // On initialise les actions.
            $result = array();

            // On récupère les sections.
            $sections = $data->xpath("/rights/section");

            if (!empty($sections)) {

                foreach ($sections as $section) {

                    $tmp          = new \stdClass();
                    $tmp->name    = (string)$section['name'];
                    $tmp->actions = array();

                    $actions = $section->xpath("action[@name]");

                    if (!empty($actions)) {

                        foreach ($actions as $action) {
                            $tmp2       = new \stdClass();
                            $tmp2->name = (string)$action['name'];
                            $tmp->actions[] = $tmp2;
                        }

                        $result[] = $tmp;
                    }

                }

            }

            $this->actions = $result;

        }

        return $this->actions;

    }
906383
public function getBindedLink($row = [])
    {
        $bind = array_intersect_key($row, array_fill_keys($this->getBinds(), ''));

        // patch pour les paramètre bindé en query
        $link = str_replace('%25', '%', $this->getLink());
        return vsprintf($link, $bind);
    }
971872
function show()
    {
        //---Mostrar la imagen dependiendo del tipo de archivo
        switch($this->type)
        {
            case IMAGETYPE_JPEG:
                imagejpeg($this->image);
                break;
            case IMAGETYPE_GIF:
                imagegif($this->image);
                break;
            case IMAGETYPE_PNG:
                imagepng($this->image);
                break;
        }
    }
715386
public function hunt() {
# URL objetivo, hay que buscURLa

        if ($this->strUrlObjetivo) {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $this->strUrlObjetivo);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
            curl_setopt($curl, CURLOPT_HEADER, TRUE);

# Si la petición es GET, construye URL con params, si es post hay
# adicionales pal cURL)

            if (!$this->boolPost) {
                if ($this->arrParamsPeticion) {
                    $strParamsHttp = http_build_query($this->arrParamsPeticion);
                    $this->strUrlObjetivo .= '?' . $strParamsHttp;
                }
            }
            if ($this->boolPost) {
                curl_setopt($curl, CURLOPT_POST, TRUE);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $this->arrParamsPeticion);
            }

# Asigna HTML y DOM respuestas de la petición

            $strRespuestaCurl = curl_exec($curl);
            $intHeaderSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
            $this->strHeadersRespuesta = substr($strRespuestaCurl, 0, $intHeaderSize);
            $this->strHtmlObjetivo = substr($strRespuestaCurl, $intHeaderSize);
            curl_close($curl);
        }

# Ya con el string del html, viel spass

        $this->domRespuesta = HtmlDomParser::str_get_html($this->strHtmlObjetivo);
        if ($this->strSemillaBusqueda) {
            $this->domRespuesta = $this->domRespuesta->find($this->strSemillaBusqueda);
            $this->domRespuesta = $this->domRespuesta[0];
        }
        $this->_findTextNodes();
        $hunted = array();
        foreach ($this->arrPresas as $arrNombreResultadoPresa) {
            $strNombreResultado = $arrNombreResultadoPresa[0];
            $presa = $arrNombreResultadoPresa[1];
            $arrElementosEliminar = array();
            # Hunt Tabla
            if ($presa instanceof Tabla) {
                try {
                    $hunted[$strNombreResultado] = $presa->duckTest($this->domRespuesta);
                } catch (Exception $e) {
                    return array();
                }
            }
            # Hunt KeyValue
            elseif ($presa instanceof KeyValue) {
                $pato = $presa->duckTest($this->arrNodosTexto);
                if($pato) {
                    $hunted[$strNombreResultado] = $pato;
                }
                # Hunt NodoDom
            } elseif ($presa instanceof NodoDom) {
                $pato = $presa->duckTest($this->domRespuesta);
                if ($pato) {
                    $hunted[$strNombreResultado] = $this->_limpiaStr($pato);
                } else {
                    $hunted[$strNombreResultado] = '';
                }
            }
            # Hunt SelectOptions
            elseif ($presa instanceof SelectOptions) {
                try {
                    $hunted[$strNombreResultado] = $presa->duckTest($this->domRespuesta);
                } catch (Exception $e) {
                    return array();
                }
            }
            # Hunt IdUnico
            elseif ($presa instanceof IdUnico) {
                $pato = $presa->duckTest($this->arrNodosTexto);
                if ($pato) {
                    $hunted[$strNombreResultado] = $pato;
                }
            } else {
                
            }
        }
        return $hunted;
    }