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)
function get_op() {
$operators = array();
$operators["EQ"]="=";
return $operators;
}
//fonction de récupération de l'affichage de la saisie du critère
function get_input_box() {
global $msg;
global $charset;
//Récupération de la valeur de saisie
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global $$valeur_;
$valeur=$$valeur_;
//Affichage de la liste des périodiques
if (!$this->is_empty($valeur)) {
$requete="select tit1 from notices where notice_id=".$valeur[0];
$r=mysql_query($requete);
return "".mysql_result($r,0,0)."";
} else {
$r="";
}
return $r;
}
//fonction de conversion de la saisie en quelque chose de compatible avec l'environnement
function transform_input() {
}
//fonction de création de la requête (retourne une table temporaire)
function make_search() {
global $opac_indexation_docnum_allfields;
//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)) {
mysql_query("create temporary table t_s_perio (notice_id integer unsigned not null)");
$requete="insert into t_s_perio select distinct analysis_notice from analysis join bulletins on (analysis_bulletin=bulletin_id) join notices on (bulletin_notice=notice_id and notice_id=".$valeur[0].")";
mysql_query($requete);
mysql_query("alter table t_s_perio add primary key(notice_id)");
}
return "t_s_perio";
}
//fonction de traduction littérale de la requête effectuée (renvoie un tableau des termes saisis)
function make_human_query() {
global $msg;
global $include_path;
//Récupération de la valeur de saisie
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global $$valeur_;
$valeur=$$valeur_;
$tit=array();
if (!$this->is_empty($valeur)) {
$requete="select tit1 from notices where notice_id=".$valeur[0];
$r=mysql_query($requete);
$tit[0]=mysql_result($r,0,0);
} else $tit[0]="[vide]";
return $tit;
}
function make_unimarc_query() {
//Récupération de la valeur de saisie
$valeur_="field_".$this->n_ligne."_s_".$this->id;
global $$valeur_;
$valeur=$$valeur_;
return "";
}
//fonction de vérification du champ saisi ou sélectionné
function is_empty($valeur) {
if (count($valeur)) {
if ($valeur[0]=="") return true;
else return ($valeur[0] === false);
} else {
return true;
}
}
}
?>