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)
* @return array Opérateurs disponibles
*/
public function get_op() {
$operators = array();
if ($_SESSION["nb_queries"]!=0) {
$operators["EQ"]="=";
}
return $operators;
}
/**
* Fonction de récupération de l'affichage de la saisie du critère
* @return string Chaine html
*/
public function get_input_box() {
global $charset;
$form = '';
$field_name="field_".$this->n_ligne."_s_".$this->id;
global ${$field_name};
$valeur = ${$field_name};
if(is_array($valeur) && $valeur[0]) {
$permalink_data = unserialize($valeur[0]);
$form .= $permalink_data['human_query'];
$form .= "";
}
return $form;
}
/**
* 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)
* @return string Nom de la table temporaire
*/
public function make_search() {
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global ${$valeur_};
$valeur=${$valeur_};
$this->search->push();
$context = unserialize($valeur[0]);
$search=new search($context["search_type"]);
$search->unserialize_search(serialize($context["serialized_search"]));
$table = $search->make_search();
$this->search->pull();
return $table;
}
/**
* Fonction de création de la recherche sérialisée (retourne un tableau sérialisé)
* @return string Nom du tableau sérialisé
*/
public function serialize_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();
$mc = self::simple2mc($valeur[0]);
$es = $mc['search_instance'];
$retour=$es->serialize_search();
//restauration de l'environnement courant
$this->search->pull();
}
return $retour;
}
/**
* Fonction de traduction littérale de la requête effectuée (renvoie un tableau des termes saisis)
* @return array
*/
public function make_human_query() {
global $msg,$charset;
global $include_path;
//Récupération de la valeur de saisie
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global ${$valeur_};
$valeur=${$valeur_};
$context = unserialize($valeur[0]);
$human = $context['human_query'];
if(in_array('s_3',$context['serialized_search']['SEARCH'])){
for( $i=0 ; $i=50) {
$pos=strrpos(substr($valeur,0,50)," ");
if ($pos) {
$valeur=substr($valeur,0,$pos+1)."...";
}
}
return $valeur;
}
/**
* Fonction de vérification du champ saisi ou sélectionné
* @param array $valeur Champ saisi ou sélectionné
* @return boolean true si vide
*/
public function is_empty($valeur) {
return false;
}
}