Subversion Repositories eFlore/Applications.bibliobota

Rev

Rev 17 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 17 Rev 30
1
<?php
1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: bbc_recherche.inc.php,v 1.3 2006-12-08 17:39:26 jp_milcent Exp $
22
// CVS : $Id: bbc_recherche.inc.php,v 1.3 2006/12/08 17:39:26 jp_milcent Exp $
23
/**
23
/**
24
* Appli bb_consultation : gestion des moteurs de recherche de Biblio Bota
24
* Appli bb_consultation : gestion des moteurs de recherche de Biblio Bota
25
*
25
*
26
* Cette application permet de gérer les moteurs de recherches de l'ensemble des données comprise 
26
* Cette application permet de gérer les moteurs de recherches de l'ensemble des données comprise 
27
* dans le modèle de Biblio Bota :
27
* dans le modèle de Biblio Bota :
28
* - articles botaniques
28
* - articles botaniques
29
* - livres et média botaniques
29
* - livres et média botaniques
30
* - sites web
30
* - sites web
31
* - organismes liés à la botanique
31
* - organismes liés à la botanique
32
*
32
*
33
*@package BiblioBota-Consultation
33
*@package BiblioBota-Consultation
34
//Auteur original :
34
//Auteur original :
35
*@author        Jean-Charles GRANGER <tela@vecteur.org>
35
*@author        Jean-Charles GRANGER <tela@vecteur.org>
36
//Autres auteurs :
36
//Autres auteurs :
37
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
37
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
38
*@copyright     Tela-Botanica 2000-2004
38
*@copyright     Tela-Botanica 2000-2004
39
*@version       $Revision: 1.3 $ $Date: 2006-12-08 17:39:26 $
39
*@version       $Revision: 1.3 $ $Date: 2006/12/08 17:39:26 $
40
// +------------------------------------------------------------------------------------------------------+
40
// +------------------------------------------------------------------------------------------------------+
41
*/
41
*/
42
 
42
 
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
// |                                            ENTETE du PROGRAMME                                       |
44
// |                                            ENTETE du PROGRAMME                                       |
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
 
46
 
47
/** Inclusion de la bibliothèque de réaliser les statistiques spécifiques à l'application consultation de BiblioBota.*/
47
/** Inclusion de la bibliothèque de réaliser les statistiques spécifiques à l'application consultation de BiblioBota.*/
48
require_once BBC_CHEMIN_BIBLIO.'bbc_statistique.fonct.php';
48
require_once BBC_CHEMIN_BIBLIO.'bbc_statistique.fonct.php';
49
 
49
 
50
// Globalisation des variables
50
// Globalisation des variables
51
global $TabFinder, $TransTab, $plugin, $tbl;
51
global $TabFinder, $TransTab, $plugin, $tbl;
52
if (isset($TransTab)) {
52
if (isset($TransTab)) {
53
    $TabFinder = FRAG_decoupageChaine($TransTab);
53
    $TabFinder = FRAG_decoupageChaine($TransTab);
54
}
54
}
55
 
55
 
56
// Vérification de l'utilisation de BiblioBota comme service web
56
// Vérification de l'utilisation de BiblioBota comme service web
57
if (empty($TabFinder['plugin'])) {
57
if (empty($TabFinder['plugin'])) {
58
    $TabFinder['plugin'] = '';
58
    $TabFinder['plugin'] = '';
59
}
59
}
60
if (BB_ARGUMENT_SERVICE != '' && $TabFinder['plugin'] == '') {
60
if (BB_ARGUMENT_SERVICE != '' && $TabFinder['plugin'] == '') {
61
    $TabFinder['plugin'] = BB_ARGUMENT_SERVICE;
61
    $TabFinder['plugin'] = BB_ARGUMENT_SERVICE;
62
}
62
}
63
// Limitation au domaine ?
63
// Limitation au domaine ?
64
if (BB_ARGUMENT_DOMAINE != 1) {
64
if (BB_ARGUMENT_DOMAINE != 1) {
65
    $var_biblio['limit_domain'] = 1;
65
    $var_biblio['limit_domain'] = 1;
66
} else {
66
} else {
67
    $var_biblio['limit_domain'] = 0;
67
    $var_biblio['limit_domain'] = 0;
68
}
68
}
69
 
69
 
70
// Gestion du mode du moteur: nomal ou avancé ( = plus d'options)
70
// Gestion du mode du moteur: nomal ou avancé ( = plus d'options)
71
if (empty($TabFinder['finder_mode'])) {
71
if (empty($TabFinder['finder_mode'])) {
72
    $TabFinder['finder_mode'] = 'normal';
72
    $TabFinder['finder_mode'] = 'normal';
73
}
73
}
74
 
74
 
75
// Initialisation de TabFinder au cas ou cela n'aurait pas été fait
75
// Initialisation de TabFinder au cas ou cela n'aurait pas été fait
76
if (!isset($TabFinder['plugin'])) $TabFinder['plugin'] = '';
76
if (!isset($TabFinder['plugin'])) $TabFinder['plugin'] = '';
77
if (!isset($TabFinder['geo'])) $TabFinder['geo'] = '';
77
if (!isset($TabFinder['geo'])) $TabFinder['geo'] = '';
78
if (!isset($TabFinder['chaine'])) $TabFinder['chaine'] = '';
78
if (!isset($TabFinder['chaine'])) $TabFinder['chaine'] = '';
79
if (!isset($TabFinder['sort'])) $TabFinder['sort'] = $GLOBALS['moteur_biblio']['defaut_sort'];
79
if (!isset($TabFinder['sort'])) $TabFinder['sort'] = $GLOBALS['moteur_biblio']['defaut_sort'];
80
if (!isset($TabFinder['auteur'])) $TabFinder['auteur'] = '';
80
if (!isset($TabFinder['auteur'])) $TabFinder['auteur'] = '';
81
if (!isset($TabFinder['categ'])) $TabFinder['categ'] = '';
81
if (!isset($TabFinder['categ'])) $TabFinder['categ'] = '';
82
if (!isset($TabFinder['pstart'])) $TabFinder['pstart'] = '0';
82
if (!isset($TabFinder['pstart'])) $TabFinder['pstart'] = '0';
83
if (!isset($TabFinder['step'])) $TabFinder['step'] = '20';
83
if (!isset($TabFinder['step'])) $TabFinder['step'] = '20';
84
if (!isset($TabFinder['valid'])) $TabFinder['valid'] = '0';
84
if (!isset($TabFinder['valid'])) $TabFinder['valid'] = '0';
85
if (!isset($TabFinder['typque'])) $TabFinder['typque'] = '1';
85
if (!isset($TabFinder['typque'])) $TabFinder['typque'] = '1';
86
if (!isset($TabFinder['categ_2'])) $TabFinder['categ_2'] = '';
86
if (!isset($TabFinder['categ_2'])) $TabFinder['categ_2'] = '';
87
if (!isset($TabFinder['categ_3'])) $TabFinder['categ_3'] = '';
87
if (!isset($TabFinder['categ_3'])) $TabFinder['categ_3'] = '';
88
if (!isset($TabFinder['since'])) $TabFinder['since'] = '';
88
if (!isset($TabFinder['since'])) $TabFinder['since'] = '';
89
if (!isset($TabFinder['finder_mode'])) $TabFinder['finder_mode'] = 'normal';
89
if (!isset($TabFinder['finder_mode'])) $TabFinder['finder_mode'] = 'normal';
90
// +------------------------------------------------------------------------------------------------------+
90
// +------------------------------------------------------------------------------------------------------+
91
// |                                            CORPS du PROGRAMME                                        |
91
// |                                            CORPS du PROGRAMME                                        |
92
// +------------------------------------------------------------------------------------------------------+
92
// +------------------------------------------------------------------------------------------------------+
93
 
93
 
94
// no_help est une variable qui est passée par un PlugIn s'il n'y a pas besoin d'aide
94
// no_help est une variable qui est passée par un PlugIn s'il n'y a pas besoin d'aide
95
global $no_help;
95
global $no_help;
96
 
96
 
97
// +------------------------------------------------------------------------------------------------------+
97
// +------------------------------------------------------------------------------------------------------+
98
// Début de gestion des services Web (plugin)
98
// Début de gestion des services Web (plugin)
99
if ($TabFinder['plugin'] != '') {
99
if ($TabFinder['plugin'] != '') {
100
    // Séparation des éléments du PlugIn
100
    // Séparation des éléments du PlugIn
101
    $plugin_exp = explode('-', $TabFinder['plugin']);
101
    $plugin_exp = explode('-', $TabFinder['plugin']);
102
    
102
    
103
    // Mise en global des variables utilisées ailleurs
103
    // Mise en global des variables utilisées ailleurs
104
    global $plugin_store;
104
    global $plugin_store;
105
    
105
    
106
    // Création des arguments pour les onglets
106
    // Création des arguments pour les onglets
107
    $TabFinder['args'] = '&amp;arg_0=plugin%3D'.$TabFinder['plugin'].'&amp;arg_1=plugin%3D'.$TabFinder['plugin'];
107
    $TabFinder['args'] = '&amp;arg_0=plugin%3D'.$TabFinder['plugin'].'&amp;arg_1=plugin%3D'.$TabFinder['plugin'];
108
 
108
 
109
    // L'argument 0 de plugin_exp peut avoir les valeurs :
109
    // L'argument 0 de plugin_exp peut avoir les valeurs :
110
    // str (réduction à une structure), coll (réduction à une collection), aut (réduction à des auteurs)
110
    // str (réduction à une structure), coll (réduction à une collection), aut (réduction à des auteurs)
111
    switch ($plugin_exp[0]) {
111
    switch ($plugin_exp[0]) {
112
        case 'str':
112
        case 'str':
113
            // On récupère ici dans plugin l'identifiant d'une structure,
113
            // On récupère ici dans plugin l'identifiant d'une structure,
114
            // il faut donc réduire à cette structure dans la requête
114
            // il faut donc réduire à cette structure dans la requête
115
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
115
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
116
                $plugin_store['count_add_table'] = ', '.$tbl['article'].', '.$tbl['fascicule'].', '.$tbl['serie'].', '.$tbl['collection'];
116
                $plugin_store['count_add_table'] = ', '.$tbl['article'].', '.$tbl['fascicule'].', '.$tbl['serie'].', '.$tbl['collection'];
117
                $plugin_store['count_add_query'] =  ' AND B_C_LKSTR = '.$plugin_exp[1].' '.
117
                $plugin_store['count_add_query'] =  ' AND B_C_LKSTR = '.$plugin_exp[1].' '.
118
                                                    'AND B_C_CRAI = B_SER_CRAICOLL '.
118
                                                    'AND B_C_CRAI = B_SER_CRAICOLL '.
119
                                                    'AND B_SER_CRAICOLL = B_F_CRAICOLL '.
119
                                                    'AND B_SER_CRAICOLL = B_F_CRAICOLL '.
120
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
120
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
121
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
121
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
122
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
122
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
123
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
123
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
124
                                                    'AND B_I_IDITEM = B_A_IDART ';
124
                                                    'AND B_I_IDITEM = B_A_IDART ';
125
                
125
                
126
                $plugin_store['categ_add_table'] = ', '.$tbl['article'].', '.$tbl['fascicule'].', '.$tbl['item'];
126
                $plugin_store['categ_add_table'] = ', '.$tbl['article'].', '.$tbl['fascicule'].', '.$tbl['item'];
127
                $plugin_store['categ_add_query'] =  ' AND B_C_LKSTR = '.$plugin_exp[1].' '.
127
                $plugin_store['categ_add_query'] =  ' AND B_C_LKSTR = '.$plugin_exp[1].' '.
128
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
128
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
129
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
129
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
130
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
130
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
131
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
131
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
132
                                                    'AND B_I_IDITEM = B_A_IDART ';
132
                                                    'AND B_I_IDITEM = B_A_IDART ';
133
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
133
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
134
                $plugin_store['count_add_table'] = ', '.$tbl['media'];
134
                $plugin_store['count_add_table'] = ', '.$tbl['media'];
135
                $plugin_store['count_add_query'] =  ' AND B_M_LKSTR = '.$plugin_exp[1].' '.
135
                $plugin_store['count_add_query'] =  ' AND B_M_LKSTR = '.$plugin_exp[1].' '.
136
                                                    'AND B_I_IDITEM = B_M_IDMEDIA ';
136
                                                    'AND B_I_IDITEM = B_M_IDMEDIA ';
137
                $plugin_store['categ_add_table'] = '';
137
                $plugin_store['categ_add_table'] = '';
138
                $plugin_store['categ_add_query'] = ' AND B_M_LKSTR = '.$plugin_exp[1].' ';
138
                $plugin_store['categ_add_query'] = ' AND B_M_LKSTR = '.$plugin_exp[1].' ';
139
                $plugin_store['query_add_query'] = ' AND B_M_LKSTR = '.$plugin_exp[1].' ';
139
                $plugin_store['query_add_query'] = ' AND B_M_LKSTR = '.$plugin_exp[1].' ';
140
            }
140
            }
141
        break;
141
        break;
142
        
142
        
143
        case 'coll':
143
        case 'coll':
144
            // On récupère ici dans plugin l'identifiant d'une collection,
144
            // On récupère ici dans plugin l'identifiant d'une collection,
145
            // il faut donc réduire à cette collection dans la requête
145
            // il faut donc réduire à cette collection dans la requête
146
            // cette option n'existe que pour le regroupement ARTICLE
146
            // cette option n'existe que pour le regroupement ARTICLE
147
            
147
            
148
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
148
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
149
                $plugin_store['count_add_table'] = ', '.$tbl['article'];
149
                $plugin_store['count_add_table'] = ', '.$tbl['article'];
150
                $plugin_store['count_add_query'] = ' AND B_A_CRAICOLL = "'.$plugin_exp[1].'" AND B_I_IDITEM = B_A_IDART ';
150
                $plugin_store['count_add_query'] = ' AND B_A_CRAICOLL = "'.$plugin_exp[1].'" AND B_I_IDITEM = B_A_IDART ';
151
                $plugin_store['categ_add_table'] = '';
151
                $plugin_store['categ_add_table'] = '';
152
                $plugin_store['categ_add_query'] = ' AND B_C_CRAI = "'.$plugin_exp[1].'" ';
152
                $plugin_store['categ_add_query'] = ' AND B_C_CRAI = "'.$plugin_exp[1].'" ';
153
                $plugin_store['query_add_query'] = ' AND B_C_CRAI = "'.$plugin_exp[1].'" ';
153
                $plugin_store['query_add_query'] = ' AND B_C_CRAI = "'.$plugin_exp[1].'" ';
154
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
154
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
155
                // leurre pour finir proporement le script
155
                // leurre pour finir proporement le script
156
                $plugin_store['count_add_table'] = '';
156
                $plugin_store['count_add_table'] = '';
157
                $plugin_store['count_add_query'] = ' AND B_I_IDITEM = "aeiouy"';
157
                $plugin_store['count_add_query'] = ' AND B_I_IDITEM = "aeiouy"';
158
                $plugin_store['categ_add_table'] = '';
158
                $plugin_store['categ_add_table'] = '';
159
                $plugin_store['categ_add_query'] = '';
159
                $plugin_store['categ_add_query'] = '';
160
                $plugin_store['query_add_query'] = '';
160
                $plugin_store['query_add_query'] = '';
161
            }
161
            }
162
        break;
162
        break;
163
        
163
        
164
        case 'aut':
164
        case 'aut':
165
            // On récupère ici dans plugin des identifiants d'auteurs
165
            // On récupère ici dans plugin des identifiants d'auteurs
166
            // il faut donc réduire à ces auteurs dans la requête
166
            // il faut donc réduire à ces auteurs dans la requête
167
            // les noms d'auteurs sont séparés par des "!"
167
            // les noms d'auteurs sont séparés par des "!"
168
            
168
            
169
            $plugin_auteurs = explode('@',$plugin_exp[1]);
169
            $plugin_auteurs = explode('@',$plugin_exp[1]);
170
            
170
            
171
            $plugin_i = 0;
171
            $plugin_i = 0;
172
            $plugin_action = ' AND (';
172
            $plugin_action = ' AND (';
173
            
173
            
174
            while ($plugin_i < count($plugin_auteurs)) {
174
            while ($plugin_i < count($plugin_auteurs)) {
175
                if ($plugin_i != 0) {
175
                if ($plugin_i != 0) {
176
                    $plugin_action .= ' OR ';
176
                    $plugin_action .= ' OR ';
177
                }
177
                }
178
                $plugin_action .= 'B_I_AUTEURSAISIE LIKE "%'.$plugin_auteurs[$plugin_i].'%" ';
178
                $plugin_action .= 'B_I_AUTEURSAISIE LIKE "%'.$plugin_auteurs[$plugin_i].'%" ';
179
                $plugin_i++;
179
                $plugin_i++;
180
            }
180
            }
181
            
181
            
182
            $plugin_action .= ') ';
182
            $plugin_action .= ') ';
183
            
183
            
184
            $plugin_store['count_add_table'] = '';
184
            $plugin_store['count_add_table'] = '';
185
            $plugin_store['count_add_query'] = $plugin_action;
185
            $plugin_store['count_add_query'] = $plugin_action;
186
            
186
            
187
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
187
            if (BB_ARGUMENT_REGROUPEMENT == 'article') {
188
                $plugin_store['categ_add_table'] = ", ".$tbl['article'].", ".$tbl['fascicule'].", ".$tbl['item'];
188
                $plugin_store['categ_add_table'] = ", ".$tbl['article'].", ".$tbl['fascicule'].", ".$tbl['item'];
189
                $plugin_store['categ_add_query'] =  ' '.$plugin_action.' '.
189
                $plugin_store['categ_add_query'] =  ' '.$plugin_action.' '.
190
                                                    'AND B_C_CRAI = B_SER_CRAICOLL '.
190
                                                    'AND B_C_CRAI = B_SER_CRAICOLL '.
191
                                                    'AND B_SER_CRAICOLL = B_F_CRAICOLL '.
191
                                                    'AND B_SER_CRAICOLL = B_F_CRAICOLL '.
192
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
192
                                                    'AND B_SER_IDSERIE = B_F_CRAISERIE '.
193
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
193
                                                    'AND B_F_CRAICOLL = B_A_CRAICOLL '.
194
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
194
                                                    'AND B_F_CRAISERIE = B_A_CRAISERIE '.
195
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
195
                                                    'AND B_F_NUMERO = B_A_CRAIFASC '.
196
                                                    'AND B_I_IDITEM = B_A_IDART ';
196
                                                    'AND B_I_IDITEM = B_A_IDART ';
197
                $plugin_store['query_add_query'] = ' '.$plugin_action.' ';
197
                $plugin_store['query_add_query'] = ' '.$plugin_action.' ';
198
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
198
            } else if (BB_ARGUMENT_REGROUPEMENT == 'media') {
199
                $plugin_store['categ_add_table'] = '';
199
                $plugin_store['categ_add_table'] = '';
200
                $plugin_store['categ_add_query'] = ' '.$plugin_action.' ';
200
                $plugin_store['categ_add_query'] = ' '.$plugin_action.' ';
201
                $plugin_store['query_add_query'] = ' '.$plugin_action.' ';
201
                $plugin_store['query_add_query'] = ' '.$plugin_action.' ';
202
            }
202
            }
203
        break;
203
        break;
204
        
204
        
205
        default:
205
        default:
206
            die('Regroupement PLUGIN impossible... Méthode Plugin par défaut inexistante (méthodes disponibles : str, coll et aut).');
206
            die('Regroupement PLUGIN impossible... Méthode Plugin par défaut inexistante (méthodes disponibles : str, coll et aut).');
207
        break;
207
        break;
208
    }
208
    }
209
} // Fin de gestion des services Web
209
} // Fin de gestion des services Web
210
 
210
 
211
// +------------------------------------------------------------------------------------------------------+
211
// +------------------------------------------------------------------------------------------------------+
212
// Création de l'interface du moteur de recherche 
212
// Création de l'interface du moteur de recherche 
213
require_once BBC_CHEMIN_BIBLIO.'bbc_moteur_'.BB_ARGUMENT_OBJET.'.fonct.php';
213
require_once BBC_CHEMIN_BIBLIO.'bbc_moteur_'.BB_ARGUMENT_OBJET.'.fonct.php';
214
$sortie .= mkengine();
214
$sortie .= mkengine();
215
// Affichage des résultats d'une recherche
215
// Affichage des résultats d'une recherche
216
if ((isset($TabFinder)) && ($TabFinder['valid'] == 1)) {
216
if ((isset($TabFinder)) && ($TabFinder['valid'] == 1)) {
217
    global $nbr_total;
217
    global $nbr_total;
218
    if ($nbr_total > 1) {
218
    if ($nbr_total > 1) {
219
        $pluriel_tot = 's';
219
        $pluriel_tot = 's';
220
    }
220
    }
221
    
221
    
222
    // Création de la requête
222
    // Création de la requête
223
    include_once BBC_CHEMIN_BIBLIO.'bbc_requete_'.BB_ARGUMENT_OBJET.'.fonct.php';
223
    include_once BBC_CHEMIN_BIBLIO.'bbc_requete_'.BB_ARGUMENT_OBJET.'.fonct.php';
224
    $requete = mkquery();
224
    $requete = mkquery();
225
    // DEBOGAGE : pour voir la requete finale
225
    // DEBOGAGE : pour voir la requete finale
226
    //$GLOBALS['_DEBOGAGE_'] .= $requete.'<br>';
226
    //$GLOBALS['_DEBOGAGE_'] .= $requete.'<br>';
227
    
227
    
228
    //Requete de calcul du nombre total d'enregistrements de la table
228
    //Requete de calcul du nombre total d'enregistrements de la table
229
    $result_local = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
229
    $result_local = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
230
    $nbr_local = mysql_num_rows($result_local);
230
    $nbr_local = mysql_num_rows($result_local);
231
    mysql_free_result($result_local);
231
    mysql_free_result($result_local);
232
    
232
    
233
    if ($nbr_local > 1) {
233
    if ($nbr_local > 1) {
234
        $pluriel_loc = 's';
234
        $pluriel_loc = 's';
235
    }
235
    }
236
    
236
    
237
    // Requete de sélection sur la quantité de données demandées par l'utilisateur (avec bornes LIMIT)
237
    // Requete de sélection sur la quantité de données demandées par l'utilisateur (avec bornes LIMIT)
238
    if ($TabFinder['pstart'] == '') {
238
    if ($TabFinder['pstart'] == '') {
239
        $TabFinder['pstart'] = 0;
239
        $TabFinder['pstart'] = 0;
240
    }
240
    }
241
    $query_final = ' LIMIT '.$TabFinder['pstart'].', '.$TabFinder['step'];
241
    $query_final = ' LIMIT '.$TabFinder['pstart'].', '.$TabFinder['step'];
242
    
242
    
243
    global $result_final;
243
    global $result_final;
244
    $result_final = mysql_query($requete.$query_final) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete.$query_final));
244
    $result_final = mysql_query($requete.$query_final) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete.$query_final));
245
    global $nbr_final;
245
    global $nbr_final;
246
    $nbr_final = mysql_num_rows($result_final);
246
    $nbr_final = mysql_num_rows($result_final);
247
    
247
    
248
    $sortie .= '<p class="insTitle1">';
248
    $sortie .= '<p class="insTitle1">';
249
    $TabFinder['pend'] = $nbr_local;
249
    $TabFinder['pend'] = $nbr_local;
250
    $sortie .= FRAG_afficherTxtNbreResultat('', $TabFinder, $nbr_local, $nbr_total);
250
    $sortie .= FRAG_afficherTxtNbreResultat('', $TabFinder, $nbr_local, $nbr_total);
251
    $sortie .= '</p>';
251
    $sortie .= '</p>';
252
    
252
    
253
    if (($nbr_local > 0) && ($TabFinder['step'] < $nbr_local)) {
253
    if (($nbr_local > 0) && ($TabFinder['step'] < $nbr_local)) {
254
        $sortie .= '<p id="fragmenteur_tete" class="fragmenteur">';
254
        $sortie .= '<p id="fragmenteur_tete" class="fragmenteur">';
255
        $frag = new fragmenteur();
255
        $frag = new fragmenteur();
256
        $sortie .= $frag->fragmente($TabFinder, $nbr_local);
256
        $sortie .= $frag->fragmente($TabFinder, $nbr_local);
257
        $sortie .= '</p>';
257
        $sortie .= '</p>';
258
    }
258
    }
259
    
259
    
260
    include_once BBC_CHEMIN_BIBLIO.'bbc_affichage_'.BB_ARGUMENT_OBJET.'.fonct.php';
260
    include_once BBC_CHEMIN_BIBLIO.'bbc_affichage_'.BB_ARGUMENT_OBJET.'.fonct.php';
261
    $sortie .= mkresu();
261
    $sortie .= mkresu();
262
    mysql_free_result($result_final);
262
    mysql_free_result($result_final);
263
    
263
    
264
    if (($TabFinder['step'] >= 20) && ($nbr_local - $TabFinder['pstart'] >= (20 + $TabFinder['step']))) {
264
    if (($TabFinder['step'] >= 20) && ($nbr_local - $TabFinder['pstart'] >= (20 + $TabFinder['step']))) {
265
        $sortie .= '<p id="fragmenteur_pied" class="fragmenteur">';
265
        $sortie .= '<p id="fragmenteur_pied" class="fragmenteur">';
266
        $sortie .= $frag->fragmente($TabFinder, $nbr_local);
266
        $sortie .= $frag->fragmente($TabFinder, $nbr_local);
267
        $sortie .= '</p>'."\n\n";
267
        $sortie .= '</p>'."\n\n";
268
    }
268
    }
269
}
269
}
270
 
270
 
271
// Création de l'aide
271
// Création de l'aide
272
if ((!isset($TabFinder)) || ($TabFinder['valid'] != 1)) {
272
if ((!isset($TabFinder)) || ($TabFinder['valid'] != 1)) {
273
    if (((!empty($no_help)) && ($no_help == 1))) {
273
    if (((!empty($no_help)) && ($no_help == 1))) {
274
        $sortie .= '';
274
        $sortie .= '';
275
    } else {
275
    } else {
276
        $sortie .= presa_mk_title('Élargir votre recherche : ', 3);
276
        $sortie .= presa_mk_title('Élargir votre recherche : ', 3);
277
        // Aide : liste complète
277
        // Aide : liste complète
278
        $sortie .= '<p>'."\n";
278
        $sortie .= '<p>'."\n";
279
        $sortie .=  'Si vous souhaitez élargir votre recherche à l\'ensemble des ressources documentaires de l\'enseignement supérieur et de la recherche de la région Languedoc-Roussillon, allez sur le <a href="http://www.bomlr.info/askonce.jsp?locale=FR" class="lien_ext">site de la Bibliothèque Ouverte Montpellier Languedoc-Roussillon </a>   '."\n";
279
        $sortie .=  'Si vous souhaitez élargir votre recherche à l\'ensemble des ressources documentaires de l\'enseignement supérieur et de la recherche de la région Languedoc-Roussillon, allez sur le <a href="http://www.bomlr.info/askonce.jsp?locale=FR" class="lien_ext">site de la Bibliothèque Ouverte Montpellier Languedoc-Roussillon </a>   '."\n";
280
        $sortie .= '</p>'."\n";
280
        $sortie .= '</p>'."\n";
281
        
281
        
282
        $sortie .= presa_mk_title('Aide à la recherche : ', 3);
282
        $sortie .= presa_mk_title('Aide à la recherche : ', 3);
283
        $sortie .= '<p class="texte_tb">'."\n";
283
        $sortie .= '<p class="texte_tb">'."\n";
284
        
284
        
285
        // Aide commune
285
        // Aide commune
286
        $sortie .= '- Attention aux fautes de frappe : le moteur recherche EXACTEMENT les termes saisis.'."\n";
286
        $sortie .= '- Attention aux fautes de frappe : le moteur recherche EXACTEMENT les termes saisis.'."\n";
287
        
287
        
288
        // Aide switchée sur chaine mot précis ou chaque terme
288
        // Aide switchée sur chaine mot précis ou chaque terme
289
        switch (BB_ARGUMENT_OBJET) {
289
        switch (BB_ARGUMENT_OBJET) {
290
            case 'structure':
290
            case 'structure':
291
                $exp_exacte = 'Tela Botanica';
291
                $exp_exacte = 'Tela Botanica';
292
                $exp_separe = 'association botanique';
292
                $exp_separe = 'association botanique';
293
            break;
293
            break;
294
            
294
            
295
            case 'lien':
295
            case 'lien':
296
                $exp_exacte = 'Société Botanique du Vaucluse';
296
                $exp_exacte = 'Société Botanique du Vaucluse';
297
                $exp_separe = 'botanique Vaucluse';
297
                $exp_separe = 'botanique Vaucluse';
298
            break;
298
            break;
299
            
299
            
300
            case 'media':
300
            case 'media':
301
                $exp_exacte = 'écologie végétale';
301
                $exp_exacte = 'écologie végétale';
302
                $exp_separe = 'écologie environnement';
302
                $exp_separe = 'écologie environnement';
303
            break;
303
            break;
304
        }
304
        }
305
        $sortie .= '<br /><br />'."\n";
305
        $sortie .= '<br /><br />'."\n";
306
        $sortie .= '- Pour rechercher une <strong>chaine de mots précise</strong>, sélectionnez "<strong>Expression Exacte</strong>" ';
306
        $sortie .= '- Pour rechercher une <strong>chaine de mots précise</strong>, sélectionnez "<strong>Expression Exacte</strong>" ';
307
        $sortie .= '(ex. : <i>'.$exp_exacte.'</i> recherchera la correspondance exacte). ';
307
        $sortie .= '(ex. : <i>'.$exp_exacte.'</i> recherchera la correspondance exacte). ';
308
        $sortie .= 'Pour rechercher <strong>chacun des mots</strong> saisis, sélectionnez "<strong>Mots séparés</strong>" ';
308
        $sortie .= 'Pour rechercher <strong>chacun des mots</strong> saisis, sélectionnez "<strong>Mots séparés</strong>" ';
309
        $sortie .= '(ex. : <i>'.$exp_separe.'</i>). ';
309
        $sortie .= '(ex. : <i>'.$exp_separe.'</i>). ';
310
        $sortie .= 'Attention ! Le moteur ne comprend ni les symboles + ou -, ni les termes logiques ET, OU, AND, OR...'."\n";
310
        $sortie .= 'Attention ! Le moteur ne comprend ni les symboles + ou -, ni les termes logiques ET, OU, AND, OR...'."\n";
311
        
311
        
312
        // Aide sur les moteurs utilisant les index Full Text
312
        // Aide sur les moteurs utilisant les index Full Text
313
        if (BB_ARGUMENT_OBJET == 'media') {
313
        if (BB_ARGUMENT_OBJET == 'media') {
314
            $sortie .= '<br /><br />'."\n";
314
            $sortie .= '<br /><br />'."\n";
315
            $sortie .=  '- Recherche intelligente : si vous saisissez "ortie", le moteur vous retournera toutes les données contenant cette chaîne de caractères : '.
315
            $sortie .=  '- Recherche intelligente : si vous saisissez "ortie", le moteur vous retournera toutes les données contenant cette chaîne de caractères : '.
316
                        '"ortie, sortie, ...". Pour rechercher un terme <strong>exact</strong>, vous pouvez le mettre entre crochets : "[ortie]".'."\n";
316
                        '"ortie, sortie, ...". Pour rechercher un terme <strong>exact</strong>, vous pouvez le mettre entre crochets : "[ortie]".'."\n";
317
        }
317
        }
318
        $sortie .= '<br /><br />'."\n";
318
        $sortie .= '<br /><br />'."\n";
319
        $sortie .= '- Seule la zone de saisie "Rechercher" peut contenir plusieurs termes ; les autres champs ne doivent contenir qu\'une seule information.'."\n";
319
        $sortie .= '- Seule la zone de saisie "Rechercher" peut contenir plusieurs termes ; les autres champs ne doivent contenir qu\'une seule information.'."\n";
320
        
320
        
321
        // Aide sur les moteurs faisant appel à GEO
321
        // Aide sur les moteurs faisant appel à GEO
322
        if ((BB_ARGUMENT_OBJET == 'structure') || (BB_ARGUMENT_OBJET == 'media')) {
322
        if ((BB_ARGUMENT_OBJET == 'structure') || (BB_ARGUMENT_OBJET == 'media')) {
323
            $sortie .= '<br /><br />'."\n";
323
            $sortie .= '<br /><br />'."\n";
324
            $sortie .=  '- Zone géographique : précisez ici une zone géographique (Pays, nom de département, ville...), '.
324
            $sortie .=  '- Zone géographique : précisez ici une zone géographique (Pays, nom de département, ville...), '.
325
                        'ou un code de département Français (34, 29...).'."\n";
325
                        'ou un code de département Français (34, 29...).'."\n";
326
        }
326
        }
327
        
327
        
328
        // Aide : liste complète
328
        // Aide : liste complète
329
        $sortie .= '<br /><br />'."\n";
329
        $sortie .= '<br /><br />'."\n";
330
        $sortie .=  '- Pour obtenir la liste complète des  données : n\'entrez aucune information dans les champs de saisie, '.
330
        $sortie .=  '- Pour obtenir la liste complète des  données : n\'entrez aucune information dans les champs de saisie, '.
331
                    'choisissez "Tous" dans les listes déroulantes, puis cliquez sur "Chercher". Pour obtenir toutes les données d\'une '.
331
                    'choisissez "Tous" dans les listes déroulantes, puis cliquez sur "Chercher". Pour obtenir toutes les données d\'une '.
332
                    'catégorie spécifique, vous pouvez affiner la recherche en sélectionnant une catégorie.'."\n";
332
                    'catégorie spécifique, vous pouvez affiner la recherche en sélectionnant une catégorie.'."\n";
333
        
333
        
334
 
334
 
335
        
335
        
336
    }
336
    }
337
}
337
}
338
 
338
 
339
// Réalisation des statistiques sur la recherche effectuée
339
// Réalisation des statistiques sur la recherche effectuée
340
if ($TabFinder['valid'] == 1) {
340
if ($TabFinder['valid'] == 1) {
341
    spy_validated_finder(BB_ARGUMENT_APPLI, $nbr_total);
341
    spy_validated_finder(BB_ARGUMENT_APPLI, $nbr_total);
342
}
342
}
343
 
343
 
344
/* +--Fin du code ----------------------------------------------------------------------------------------+
344
/* +--Fin du code ----------------------------------------------------------------------------------------+
345
*
345
*
346
* $Log: not supported by cvs2svn $
346
* $Log: bbc_recherche.inc.php,v $
-
 
347
* Revision 1.3  2006/12/08 17:39:26  jp_milcent
-
 
348
* Correction faute d'orthographe.
-
 
349
*
347
* Revision 1.2  2005/11/24 09:02:09  jp_milcent
350
* Revision 1.2  2005/11/24 09:02:09  jp_milcent
348
* Modification du texte apparaissant sous le moteur de recherche.
351
* Modification du texte apparaissant sous le moteur de recherche.
349
*
352
*
350
* Revision 1.6  2005/02/24 18:32:40  jpm
353
* Revision 1.6  2005/02/24 18:32:40  jpm
351
* Mise en global d'une variable.
354
* Mise en global d'une variable.
352
*
355
*
353
* Revision 1.5  2005/01/04 16:23:25  jpm
356
* Revision 1.5  2005/01/04 16:23:25  jpm
354
* Affichage de la requête sql.
357
* Affichage de la requête sql.
355
*
358
*
356
* Revision 1.4  2004/09/16 12:06:39  jpm
359
* Revision 1.4  2004/09/16 12:06:39  jpm
357
* Décomposition du fichier information en plusieurs fichiers.
360
* Décomposition du fichier information en plusieurs fichiers.
358
*
361
*
359
* Revision 1.3  2004/09/15 12:15:55  jpm
362
* Revision 1.3  2004/09/15 12:15:55  jpm
360
* Suppresion du code spécifique au moteur annuaire.
363
* Suppresion du code spécifique au moteur annuaire.
361
*
364
*
362
* Revision 1.2  2004/09/14 10:18:31  jpm
365
* Revision 1.2  2004/09/14 10:18:31  jpm
363
* Mise en forme et amélioration du code.
366
* Mise en forme et amélioration du code.
364
* Passage au XHTML strict.
367
* Passage au XHTML strict.
365
*
368
*
366
* Revision 1.1  2004/09/10 18:41:48  jpm
369
* Revision 1.1  2004/09/10 18:41:48  jpm
367
* Transformations des ancien pop-up de Bilblio Bota en consultation avancée...
370
* Transformations des ancien pop-up de Bilblio Bota en consultation avancée...
368
* Ajout d'un fichier fournissant les moteurs de recherche et d'un fichier gérant la consultation avancée.
371
* Ajout d'un fichier fournissant les moteurs de recherche et d'un fichier gérant la consultation avancée.
369
*
372
*
370
*
373
*
371
* +-- Fin du code ----------------------------------------------------------------------------------------+
374
* +-- Fin du code ----------------------------------------------------------------------------------------+
372
*/
375
*/
373
?>
376
?>