fields_list =array( * array( * 'field'=>1, * 'subfields' => array( * 2,3 * ) * ) * @var array * @access protected */ protected $fields_list = array( array( 'field'=>1, 'subfields'=>array(0), ), array( 'field'=>14, 'subfields'=>array(0), ) ); public function __construct() { $this->collection = new autoindex_documents_collection($this->fields_list); } /** * fonction de test */ public function test($raw_text='', $lang='fr_FR', $id_thesaurus=0) { $this->raw_text=$raw_text; $this->lang=$lang; $this->id_thesaurus=$id_thesaurus; } public function process() { $this->get_raw_text(); $this->get_lang(); $this->get_thesaurus(); $this->find_revelants_words(); $this->get_relevants_terms(); $this->calc_total_terms_relevancy(); $this->calc_document_terms_distances(); $this->sort_terms(); } /** * Récupère le contenu des champs de la notice à indexer * * @global autoindex * json array( * array ( * [name]=nom de la zone, * [field]=nom du champ dans le formulaire, * [pond]=ponderation, * [value]=contenu de la zone * ) * ) * * @return array(string) * @access public */ public function get_raw_text() { global $autoindex_txt,$charset; $this->raw_text = json_decode(stripslashes($autoindex_txt),true); if(is_array($this->raw_text) && count($this->raw_text)) { foreach($this->raw_text as $k=>$v) { if(!is_null($v['value']) && $v['value']!=='') { $this->raw_text[$k]['value']=rawurldecode($v['value']); if($charset!='utf-8') { $this->raw_text[$k]['value'] = utf8_decode($this->raw_text[$k]['value']); } } else { unset($this->raw_text[$k]); } } } //TODO // echo "Eléments postés =
"; // print $autoindex_txt."
"; // highlight_string(print_r($this->raw_text,true)); // echo "
"; return $this->raw_text; } /** * Récupère la langue de l'interface * * @return string * @access public */ public function get_lang() { global $user_lang, $lang; if(!$user_lang){ $user_lang=$lang; } if(!$user_lang) { $user_lang="fr_FR"; } $this->lang=$user_lang; //TODO // echo "Langue de la notice = ".$user_lang."
"; // echo "Langue utilisateur = ".$lang."
"; // echo "Langue indexation = ".$this->lang."
"; // echo "
"; return $this->lang; } /** * Récupère l'identifiant du thésaurus à utiliser pour la recherche de termes. * * @return integer * @access public */ public function get_thesaurus() { global $id_thes; $this->id_thesaurus=$id_thes; if($this->id_thesaurus < 0 ) { $this->id_thesaurus=0; } return $id_thes; } public function get_form() { global $charset; global $msg; global $caller,$thesaurus_auto_index_notice_fields,$lang,$include_path,$search_type,$user_lang,$xmlta_indexation_lang; global $htmlfieldstype; if(!$htmlfieldstype) { $htmlfieldstype="html"; } $tpl_index_auto=""; if ($caller=='notice' && $thesaurus_auto_index_notice_fields) { $auto_index_notice_fields = str_replace(array("\\n","\\r","\n","\r"), "", $thesaurus_auto_index_notice_fields); $fields=explode(';',$auto_index_notice_fields); $notice_fields=new notice_doublon(); $tpl_field = array(); $tpl_selector_field=''; $j=0; $i=0; foreach($fields as $k=>$field){ $pos = stripos($field,'='); $pos_selected = stripos($field, '|'); $field_default_selected = 0; if($pos!==false) { $field_name = trim(substr($field,0,$pos)); if($pos_selected!==false) { $field_pond = trim(substr($field,$pos+1, $pos_selected)); $field_default_selected = trim(substr($field,$pos_selected+1)); } else { $field_pond = trim(substr($field,$pos+1)); } $field_pond = (float) str_replace(',','.',$field_pond); if($field_pond > 1 && $field_pond <=100) { $field_pond = $field_pond / 100; $field_pond = round($field_pond,2); } } else { if($pos_selected!==false) { $field_name = trim(substr($field,0,$pos_selected)); $field_default_selected = trim(substr($field,$pos_selected+1)); } else { $field_name = trim($field); } $field_pond = 1; } if ($field_name) { if($notice_fields::$fields[$field_name][$htmlfieldstype]){ $tpl_field[$i]['name'] = $field_name; $tpl_field[$i]['field'] = $notice_fields::$fields[$field_name][$htmlfieldstype]; $tpl_field[$i]['pond'] = $field_pond; if($field_name=="tit1"){ // cas du formulaire de bulletin ou le titre = bul_titre au lieu de tit1 $i++; $tpl_field[$i]['name'] = $field_name; $tpl_field[$i]['field'] = 'bul_titre'; $tpl_field[$i]['pond'] = $field_pond; } }else{ // champ perso $tpl_field[$i]['name'] = $field_name; $tpl_field[$i]['field'] = $field_name; $tpl_field[$i]['pond'] = $field_pond; } $checked = ''; if( ($search_type!='autoindex') || (isset($_POST['chk_'.$tpl_field[$i]['name']])) || (!isset($_POST['chk'.$tpl_field[$i]['name']]) && !isset($_POST['chk_hidden'.$tpl_field[$i]['name']]) && $field_default_selected) ) { $checked="checked='checked'"; } if($j%3==0) { $tpl_selector_field.= ''; } $tpl_selector_field.= ""; $j++; $i++; } } while($j%3) { $tpl_selector_field.=""; $j++; } $tpl_selector_field.='
"; $tpl_selector_field.= " "; $tpl_selector_field.= "
'; $langues = new XMLlist("$include_path/messages/languages.xml"); $langues->analyser(); $clang = $langues->table; $display=''; if($search_type!='autoindex') { $display="style='display:none'"; } $combo = "
".$msg["autoindex_selector_lang"]. "
"; $combo.= "
$tpl_selector_field
"; $combo.= ""; $combo.= "
"; $tpl_index_auto="  
$combo "; } return $tpl_index_auto; } public function index_list(){ global $charset,$base_path,$base_url; global $categ_browser_autoindex; global $thesaurus_mode_pmb; global $include_path,$caller,$callback; global $msg; $this->process(); $libelle_partiel=0; if($caller == 'search_form') { $libelle_partiel=1; } $tpl_insert_all_index = ''; $tpl_insert_all_index_name = ''; $browser_content="

".$msg["autoindex_selector_title"]."

"; foreach($this->terms as $categ_obj){ if($categ_obj->see)$categ_id=$categ_obj->see; else $categ_id=$categ_obj->id; $tcateg = new category($categ_id); $browser_content .= ""; if($this->get_thesaurus() == -1 && $thesaurus_mode_pmb){ $display = '['.htmlentities($tcateg->thes->libelle_thesaurus,ENT_QUOTES, $charset).']'; } else { $display = ''; } if($tcateg->voir_id) { $tcateg_voir = new category($tcateg->voir_id); $display .= "$tcateg->libelle ->".$tcateg_voir->catalog_form."@"; $id_=$tcateg->voir_id; if($libelle_partiel){ $libelle_=$tcateg_voir->libelle; }else{ $libelle_=$tcateg_voir->catalog_form; } } else { $id_=$tcateg->id; if($libelle_partiel){ $libelle_=$tcateg->libelle; }else{ $libelle_=$tcateg->catalog_form; } $display .= $tcateg->libelle; } if($tcateg->has_child) { //$browser_content .= "";//On mets le bon identifiant de thésaurus $browser_content .= ""; } else { $browser_content .= ""; } if ($tcateg->commentaire) { $zoom_comment = "" ; $java_comment = " onmouseover=\"z=document.getElementById('zoom_comment".$tcateg->id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_comment".$tcateg->id."'); z.style.display='none'; \"" ; } else { $zoom_comment = "" ; $java_comment = "" ; } if ($thesaurus_mode_pmb ) $nom_thesaurus='['.$tcateg->thes->getLibelle().'] ' ; else $nom_thesaurus='' ; if($tcateg->not_use_in_indexation){ $browser_content .= " "; $browser_content .= $display; } else { $browser_content .= "thes->id_thesaurus."')\">"; $browser_content .= $display; $browser_content .= ""; } $browser_content .= $zoom_comment."\n"; $browser_content .= ""; if(!$tcateg->not_use_in_indexation){ if($tpl_insert_all_index){ $tpl_insert_all_index.=","; $tpl_insert_all_index_name.=","; } $tpl_insert_all_index.=$id_; $tpl_insert_all_index_name.="'".htmlentities(addslashes($nom_thesaurus.$libelle_),ENT_QUOTES, $charset)."'"; } } $categ_browser_autoindex = str_replace('!!browser_content!!', $browser_content, $categ_browser_autoindex); $categ_browser_autoindex = str_replace('!!base_url!!', $base_url, $categ_browser_autoindex); if(count($this->terms)) $categ_browser_autoindex.=" "; return $categ_browser_autoindex; } }