id=$id; $this->n_ligne=$n_ligne; $this->params=$params; $this->search=&$search; } //fonction de récupération des opérateurs disponibles pour ce champ spécial (renvoie un tableau d'opérateurs) public function get_op() { $operators = array(); if (count($_SESSION["session_history"])!=0) { $operators["EQ"]="="; } return $operators; } //fonction de récupération de l'affichage de la saisie du critère public function get_input_box() { global $msg; global $charset; global $get_input_box_id; //$this->s = new search(false,"search_simple_fields.xml"); //Récupération de la valeur de saisie $valeur_="field_".$this->n_ligne."_s_".$this->id; global ${$valeur_}; $valeur=${$valeur_}; // //$current_search = search::serialize_search(); //$r = $current_search; $r.="
$valeur"; //$this->s = new search(false,"search_simple_fields.xml"); //parcours de l'historique des recherches if (count($_SESSION["session_history"])) { if(!$get_input_box_id)$get_input_box_id="input_box_id_0"; else $get_input_box_id++; //$r="     "; $r .="
"; if ($valeur) { if ($valeur[0]=='-1') { $r=str_replace("!!value_selected!!","-1", $r); $r=str_replace("!!label_selected!!",$msg["default_search_histo"], $r); } } else { $r=str_replace("!!value_selected!!","-1", $r); $r=str_replace("!!label_selected!!",$msg["default_search_histo"], $r); } $style_odd="class='odd' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='odd'\" "; $style_even="class='even' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='even'\" "; $onclick="onClick=\"document.getElementById('".$get_input_box_id."_label').innerHTML='".addslashes($msg["default_search_histo"])."';document.getElementById('".$get_input_box_id."_value').value='-1';expandBase('$get_input_box_id', true); return false;\""; $liste="".$msg["default_search_histo"].""; /*echo "
";
    		print_r($_SESSION["session_history"]);
    		echo "
";*/ $pair = 0; for ($i=count($_SESSION["session_history"])-1; $i>=0; $i--) { if ($_SESSION["session_history"][$i]["NOTI"] || $_SESSION["session_history"][$i]["EXPL"]) { $temp=html_entity_decode(strip_tags(($i+1).") ".$_SESSION["session_history"][$i]["QUERY"]["HUMAN_QUERY"]),ENT_QUOTES,$charset); $onclick="onClick=\"document.getElementById('".$get_input_box_id."_label').innerHTML=this.innerHTML;document.getElementById('".$get_input_box_id."_value').value='$i';expandBase('$get_input_box_id', true); return false;\""; $pair = 1 - $pair; if ($pair) { $style = $style_odd; } else { $style = $style_even; } $liste.="$temp"; if ($valeur) { if ($valeur[0]==$i) { $r=str_replace("!!value_selected!!","$i", $r); $r=str_replace("!!label_selected!!",$temp, $r); } } } } $r=str_replace("!!contenu!!",$liste, $r); } else { $r .= "".$msg["histo_empty"].""; } return $r; } //fonction de conversion de la saisie en quelque chose de compatible avec l'environnement public function transform_input() { } //fonction de création de la requête (retourne une table temporaire) public function make_search() { global $search; //Récupération de la valeur de saisie $valeur_="field_".$this->n_ligne."_s_".$this->id; global ${$valeur_}; $valeur=${$valeur_}; if (!$this->is_empty($valeur)) { //enregistrement de l'environnement courant $this->search->push(); //Récupération et mise en variables globales des valeurs de l'historique if ($_SESSION["session_history"][$valeur[0]]["QUERY"]["POST"]["search"][0]) { $search=$_SESSION["session_history"][$valeur[0]]["QUERY"]["POST"]["search"]; //Pour chaque champ for ($i=0; $imake_search("tempo_".$valeur[0]); //restauration de l'environnement courant $this->search->pull(); return $table_tempo; } } public function make_unimarc_query() { global $search; //Récupération de la valeur de saisie $valeur_="field_".$this->n_ligne."_s_".$this->id; global ${$valeur_}; $valeur=${$valeur_}; if (!$this->is_empty($valeur)) { //enregistrement de l'environnement courant $this->search->push(); //Récupération et mise en variables globales des valeurs de l'historique if ($_SESSION["session_history"][$valeur[0]]["QUERY"]["POST"]["search"][0]) { $search=$_SESSION["session_history"][$valeur[0]]["QUERY"]["POST"]["search"]; //Pour chaque champ for ($i=0; $imake_unimarc_query(); //restauration de l'environnement courant $this->search->pull(); return $mt; } } //fonction de traduction littérale de la requête effectuée (renvoie un tableau des termes saisis) public function make_human_query() { $litteral=array(); //Récupération de la valeur de saisie $valeur_="field_".$this->n_ligne."_s_".$this->id; global ${$valeur_}; $valeur=${$valeur_}; if (!$this->is_empty($valeur)) { if($_SESSION["session_history"][$valeur[0]]["NOTI"]["HUMAN_QUERY"]){ $litteral[0]= $_SESSION["session_history"][$valeur[0]]["NOTI"]["HUMAN_QUERY"]; }else{ $litteral[0]= $_SESSION["session_history"][$valeur[0]]["EXPL"]["HUMAN_QUERY"]; } } return $litteral; } //fonction de vérification du champ saisi ou sélectionné public function is_empty($valeur) { if (count($valeur)) { if ($valeur[0]=="-1") return true; else return ($valeur[0] === false); } else { return true; } } //fonction de découpage d'une chaine trop longue public function cutlongwords($valeur,$size=50) { if (strlen($valeur)>=$size) { $pos=strrpos(substr($valeur,0,$size)," "); if ($pos) { $valeur=substr($valeur,0,$pos+1)."..."; } } return $valeur; } } ?>