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();
$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;
global $base_path;
//$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_};
$radius_="fieldvar_".$this->n_ligne."_s_".$this->id;
global ${$radius_};
$radius=${$radius_}[0][0];
$r.="
" . $msg['search_extended_map_circle_center'] . "
" . $msg['search_extended_map_circle_radius'] . "
";
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;
global $base_path;
//Récupération de la valeur de saisie
$center_="field_".$this->n_ligne."_s_".$this->id;
$radius_="fieldvar_".$this->n_ligne."_s_".$this->id;
global ${$center_};
global ${$radius_};
$center=${$center_};
$radius = ${$radius_}[0][0];
if( count($center) && $radius) {
$center_coords = explode(',', $center[0]);
$x = $center_coords[0];
$y = $center_coords[1];
if ($x && $y && $radius) {
//['x'=> -74.00597,'y'=>40.71427]
$wkt = map_hold_circle::getWKT(map_hold_circle::createRegularPolygon(['x'=> $x,'y'=> $y], $radius, 32),true);
if($wkt) {
$query = "select distinct map_emprise_obj_num as notice_id from map_emprises where map_emprise_type=11 and intersects(geomfromtext('!!p!!'),map_emprise_data) = 1 union select distinct notcateg_notice as notice_id from notices_categories join map_emprises on num_noeud = map_emprises.map_emprise_obj_num where map_emprise_type = 2 and intersects(geomfromtext('!!p!!'),map_emprise_data)";
$query = str_replace('!!p!!', $wkt, $query);
pmb_mysql_query("create temporary table t_s_map_circle (notice_id integer unsigned not null)");
$requete="insert into t_s_map_circle " . $query;
pmb_mysql_query($requete);
pmb_mysql_query("alter table t_s_map_circle add primary key(notice_id)");
return "t_s_map_circle";
}
}
}
return '';
}
public function make_unimarc_query() {
return array();
}
//fonction de traduction littérale de la requête effectuée (renvoie un tableau des termes saisis)
public function make_human_query() {
global $search;
global $base_path,$charset;
global $msg;
//Récupération de la valeur de saisie
$center_ = "field_".$this->n_ligne."_s_".$this->id;
$radius_ = "fieldvar_".$this->n_ligne."_s_".$this->id;
global ${$center_};
global ${$radius_};
$center = ${$center_};
$radius = ${$radius_}[0][0];
$litteral = array();
if( count($center) && $radius) {
$center_coords = explode(',', $center[0]);
$x = $center_coords[0];
$y = $center_coords[1];
if ($x && $y && $radius) {
$litteral[0] = $msg['search_extended_map_circle_center'] . ' ' . $center[0] . ', ' . $msg['search_extended_map_circle_radius'] . ' ' . $radius;
}
}
return $litteral;
}
//fonction de vérification du champ saisi ou sélectionné
public function is_empty($valeur) {
}
//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;
}
public static function check_visibility() {
global $opac_map_activate;
if($opac_map_activate) {
return true;
} else {
return false;
}
}
}