source: pmb4.2/trunk/fuentes/pmb/classes/searcher/searcher_autorities_skos_concepts.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.4 KB
Line 
1<?php
2// +-------------------------------------------------+
3//  2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: searcher_autorities_skos_concepts.class.php,v 1.10 2015-04-03 11:16:29 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9class searcher_autorities_skos_concepts extends searcher_autorities {
10
11        public function __construct($user_query){
12                parent::__construct($user_query);
13                $this->object_key = "id_item";
14                $this->object_index_key= "id_item";
15                $this->object_words_table = "skos_words_global_index";
16                $this->object_fields_table = "skos_fields_global_index";
17                $this->field_restrict[]= array(
18                                'field' => "code_champ",
19                                'values' => array(1,2,3),
20                                'op' => "and",
21                                'not' => false
22                );
23        }
24       
25        public function _get_search_type(){
26                return parent::_get_search_type()."_concepts";
27        }
28       
29        // à réécrire au besoin...
30        protected function _sort($start,$number){
31                global $dbh;
32                if($this->table_tempo != ""){
33                        $query = "select * from ".$this->table_tempo." join ".$this->object_fields_table." on ".$this->table_tempo.".".$this->object_key." = ".$this->object_fields_table.".".$this->object_index_key." where code_champ= 1 order by pert desc,".$this->object_fields_table.".".$this->object_fields_value." asc limit ".$start.",".$number;
34                        $result = pmb_mysql_query($query,$dbh);
35                        if(pmb_mysql_num_rows($result)){
36                                $this->result=array();
37                                while($row = pmb_mysql_fetch_object($result)){
38                                        $this->result[] = $row->{$this->object_key};
39                                }
40                        }
41                }
42        }
43       
44        protected function _filter_results(){
45                global $dbh,$concept_scheme;
46               
47                $query = "";
48
49                if (($concept_scheme !== null) && ($concept_scheme*1 === 0)) {
50                        // On cherche dans les concepts sans schéma
51                        $query = "select ".$this->object_key." from ".$this->object_fields_table." where ".$this->object_key." not in (select ".$this->object_key." from ".$this->object_fields_table." where code_champ = 4) and code_champ = 1 and ".$this->object_key." in (".$this->objects_ids.")";
52                } else if ($concept_scheme && ($concept_scheme != -1)) {
53                        // On cherche dans un schema en particulier
54                        $query = "select ".$this->object_key." from ".$this->object_fields_table." where code_champ = 4 and authority_num = ".($concept_scheme*1)." and ".$this->object_key." in (".$this->objects_ids.")";
55                }
56                // Pas de filtre si on cherche dans tous les schémas
57                if ($query) {
58                        $result = pmb_mysql_query($query,$dbh);
59                        $this->objects_ids ="";
60                        if($result && pmb_mysql_num_rows($result)){
61                                while($row = pmb_mysql_fetch_object($result)){
62                                        if($this->objects_ids) $this->objects_ids.= ",";
63                                        $this->objects_ids.= $row->{$this->object_key};
64                                }
65                        }
66                }
67        }
68
69        protected function get_full_results_query(){
70                global $concept_scheme;
71                $query = "select ".$this->object_key." from ".$this->object_fields_table." where code_champ = 1";
72                if ($concept_scheme*1 === 0) {
73                        // On cherche dans les concepts sans schéma
74                        $query.= " and ".$this->object_key." not in (select ".$this->object_key." from ".$this->object_fields_table." where code_champ = 4)";
75                } else if ($concept_scheme && ($concept_scheme != -1)) {
76                        // On cherche dans un schema en particulier
77                        $query = " and ".$this->object_key." in (select ".$this->object_key." from ".$this->object_fields_table." where code_champ = 4 and authority_num = ".($concept_scheme*1);
78                }
79                return $query; 
80        }
81}
Note: See TracBrowser for help on using the repository browser.