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;
//Récupération de la valeur de saisie
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global ${$valeur_};
$valeur=${$valeur_};
//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"]." |
";
$pair = 0;
for ($i=count($_SESSION["session_history"])-1; $i>=0; $i--) {
if ($_SESSION["session_history"][$i]["EMPR"]) {
$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;
}
}
//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)) {
$litteral[0]= $_SESSION["session_history"][$valeur[0]]["EMPR"]["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;
}
}
?>