Subversion Repositories Applications.papyrus

Rev

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

Rev 2142 Rev 2149
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 file is part of Papyrus.                                                                        |
8
// | This file is part of Papyrus.                                                                        |
9
// |                                                                                                      |
9
// |                                                                                                      |
10
// | Foobar is free software; you can redistribute it and/or modify                                       |
10
// | Foobar is free software; you can redistribute it and/or modify                                       |
11
// | it under the terms of the GNU General Public License as published by                                 |
11
// | it under the terms of the GNU General Public License as published by                                 |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
13
// | (at your option) any later version.                                                                  |
13
// | (at your option) any later version.                                                                  |
14
// |                                                                                                      |
14
// |                                                                                                      |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
18
// | GNU General Public License for more details.                                                         |
18
// | GNU General Public License for more details.                                                         |
19
// |                                                                                                      |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: moteur_recherche.php,v 1.24 2008-10-21 15:24:50 aperonnet Exp $
24
// CVS : $Id: moteur_recherche.php,v 1.24 2008-10-21 15:24:50 aperonnet Exp $
25
/**
25
/**
26
* Applette : moteur de recherche
26
* Applette : moteur de recherche
27
*
27
*
28
* Génère un formulaire contenant une zone de saisie permettant de taper un texte � rechercher sur l'ensemble
28
* Génère un formulaire contenant une zone de saisie permettant de taper un texte � rechercher sur l'ensemble
29
* des sites gérés par Papyrus.
29
* des sites gérés par Papyrus.
30
* Utilisation des bibliothèques inclue par Papyrus :
30
* Utilisation des bibliothèques inclue par Papyrus :
31
* - Papyrus pap_meta.fonct.php
31
* - Papyrus pap_meta.fonct.php
32
* - PEAR NET_URL
32
* - PEAR NET_URL
33
*
33
*
34
*@package Applette
34
*@package Applette
35
*@subpackage Moteur_recherche
35
*@subpackage Moteur_recherche
36
//Auteur original :
36
//Auteur original :
37
*@author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
38
//Autres auteurs :
38
//Autres auteurs :
39
*@author		Aucun
39
*@author		Aucun
40
*@copyright	 Tela-Botanica 2000-2004
40
*@copyright	 Tela-Botanica 2000-2004
41
*@version	   $Revision: 1.24 $ $Date: 2008-10-21 15:24:50 $
41
*@version	   $Revision: 1.24 $ $Date: 2008-10-21 15:24:50 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
44
 
44
 
45
 
45
 
46
// pour utiliser Sphinx, cela désactive alors l'appel à $moteur->rechercherMotif()
46
// pour utiliser Sphinx, cela désactive alors l'appel à $moteur->rechercherMotif()
47
// et utilise sphinx_search() (moteur_recherche_sphinx.php)
47
// et utilise sphinx_search() (moteur_recherche_sphinx.php)
48
// TODO: un test avec mysql_connect() sur le SPHINX_DSN tel que défini dans moteur_recherche_sphinx.php
48
// TODO: un test avec mysql_connect() sur le SPHINX_DSN tel que défini dans moteur_recherche_sphinx.php
49
// pourrait être un plus.
49
// pourrait être un plus.
50
define('USE_SPHINX', TRUE);
50
define('USE_SPHINX', TRUE);
51
// XXX: PHP-5.4
51
// XXX: PHP-5.4
52
if(!defined('ENT_HTML401')) {
52
if(!defined('ENT_HTML401')) {
53
	define('ENT_HTML401', ENT_COMPAT);
53
	define('ENT_HTML401', ENT_COMPAT);
54
}
54
}
55
 
55
 
56
// +------------------------------------------------------------------------------------------------------+
56
// +------------------------------------------------------------------------------------------------------+
57
// |											ENTETE du PROGRAMME									   |
57
// |											ENTETE du PROGRAMME									   |
58
// +------------------------------------------------------------------------------------------------------+
58
// +------------------------------------------------------------------------------------------------------+
59
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherMoteurRecherche';
59
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherMoteurRecherche';
60
$GLOBALS['_GEN_commun']['info_applette_balise'] =
60
$GLOBALS['_GEN_commun']['info_applette_balise'] =
61
	'(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(MOTEUR_RECHERCHE) -->|'.
61
	'(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(MOTEUR_RECHERCHE) -->|'.
62
	'\{\{[[Mm]oteurRecherche'.
62
	'\{\{[[Mm]oteurRecherche'.
63
	'(?:\s*'.
63
	'(?:\s*'.
64
		'(?:'.
64
		'(?:'.
65
			'(url="[^"]*")|(sphinx="(?:0|1)")'.
65
			'(url="[^"]*")|(sphinx="(?:0|1)")'.
66
		')'.
66
		')'.
67
	')+'.
67
	')+'.
68
	'\s*\}\})';
68
	'\s*\}\})';
69
 
69
 
70
// --------------------------------------------------------------------------------------------------------
70
// --------------------------------------------------------------------------------------------------------
71
//Utilisation de la bibliothèque Papyrus pap_meta.fonct.php inclue par Papyrus
71
//Utilisation de la bibliothèque Papyrus pap_meta.fonct.php inclue par Papyrus
72
//Utilisation de la bibliothèque PEAR NET_URL inclue par Papyrus
72
//Utilisation de la bibliothèque PEAR NET_URL inclue par Papyrus
73
/** Inclusion du fichier de configuration de cette application.*/
73
/** Inclusion du fichier de configuration de cette application.*/
74
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_configuration.inc.php';
74
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_configuration.inc.php';
75
/** Inclusion du fichier de configuration des Spip.*/
75
/** Inclusion du fichier de configuration des Spip.*/
76
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_spip.inc.php';
76
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_spip.inc.php';
77
/** Inclusion du fichier de configuration de l appli projet.*/
77
/** Inclusion du fichier de configuration de l appli projet.*/
78
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_projet.inc.php';
78
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_projet.inc.php';
79
/** Inclusion du fichier de configuration de l appli bazar.*/
79
/** Inclusion du fichier de configuration de l appli bazar.*/
80
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_bazar.inc.php';
80
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_bazar.inc.php';
81
 
81
 
82
// Inclusion des fichiers de traduction de l'appli ADME de Papyrus
82
// Inclusion des fichiers de traduction de l'appli ADME de Papyrus
83
if (file_exists(MORE_CHEMIN_LANGUE.'more_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
83
if (file_exists(MORE_CHEMIN_LANGUE.'more_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
84
	/** Inclusion du fichier de traduction suite � la transaction avec le navigateur.*/
84
	/** Inclusion du fichier de traduction suite � la transaction avec le navigateur.*/
85
	require_once MORE_CHEMIN_LANGUE.'more_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
85
	require_once MORE_CHEMIN_LANGUE.'more_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php';
86
} else {
86
} else {
87
	/** Inclusion du fichier de traduction par d�faut.*/
87
	/** Inclusion du fichier de traduction par d�faut.*/
88
	require_once MORE_CHEMIN_LANGUE.'more_langue_'.MORE_I18N_DEFAUT.'.inc.php';
88
	require_once MORE_CHEMIN_LANGUE.'more_langue_'.MORE_I18N_DEFAUT.'.inc.php';
89
}
89
}
90
 
90
 
91
// +------------------------------------------------------------------------------------------------------+
91
// +------------------------------------------------------------------------------------------------------+
92
// |											CORPS du PROGRAMME										|
92
// |											CORPS du PROGRAMME										|
93
// +------------------------------------------------------------------------------------------------------+
93
// +------------------------------------------------------------------------------------------------------+
94
 
94
 
95
if (isset($_POST['more_motif']) && !empty($_POST['more_motif'])) {
95
if (isset($_POST['more_motif']) && !empty($_POST['more_motif'])) {
96
	// Initialisation de variable extèrieures
96
	// Initialisation de variable extèrieures
97
	$GLOBALS['_VEI_']['usurpation'] = MORE_LG_USURPATION.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
97
	$GLOBALS['_VEI_']['usurpation'] = MORE_LG_USURPATION.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
98
	$GLOBALS['_PAPYRUS_']['general']['application_chemin'] = null;
98
	$GLOBALS['_PAPYRUS_']['general']['application_chemin'] = null;
99
	// Modification des meta de l'ent�te de la page
99
	// Modification des meta de l'ent�te de la page
100
	GEN_modifierMetaHttpEquiv('Content-Type', 'text/html; charset=ISO-8859-15');
100
	GEN_modifierMetaHttpEquiv('Content-Type', 'text/html; charset=ISO-8859-15');
101
	GEN_modifierMetaHttpEquiv('Content-style-type', 'text/css');
101
	GEN_modifierMetaHttpEquiv('Content-style-type', 'text/css');
102
	GEN_modifierMetaHttpEquiv('Content-script-type', 'text/javascript');
102
	GEN_modifierMetaHttpEquiv('Content-script-type', 'text/javascript');
103
	GEN_modifierMetaHttpEquiv('Content-language', $GLOBALS['_GEN_commun']['i18n']);
103
	GEN_modifierMetaHttpEquiv('Content-language', $GLOBALS['_GEN_commun']['i18n']);
104
 
104
 
105
	GEN_modifierMetaName('revisit-after', '15 days');
105
	GEN_modifierMetaName('revisit-after', '15 days');
106
	GEN_modifierMetaName('robots', 'index,follow');
106
	GEN_modifierMetaName('robots', 'index,follow');
107
	GEN_modifierMetaName('author', 'Tela Botanica');
107
	GEN_modifierMetaName('author', 'Tela Botanica');
108
	GEN_modifierMetaName('keywords', 'Recherche, résultat.');
108
	GEN_modifierMetaName('keywords', 'Recherche, résultat.');
109
	GEN_modifierMetaName('description', 'Page de résultats du moteur de recherche de Papyrus.');
109
	GEN_modifierMetaName('description', 'Page de résultats du moteur de recherche de Papyrus.');
110
 
110
 
111
	GEN_viderMeta('dc');
111
	GEN_viderMeta('dc');
112
}
112
}
113
 
113
 
114
// +------------------------------------------------------------------------------------------------------+
114
// +------------------------------------------------------------------------------------------------------+
115
// |										   LISTE de FONCTIONS										 |
115
// |										   LISTE de FONCTIONS										 |
116
// +------------------------------------------------------------------------------------------------------+
116
// +------------------------------------------------------------------------------------------------------+
117
 
117
 
118
/** Fonction afficherMoteurRecherche() - Fournit un formulaire de recherche.
118
/** Fonction afficherMoteurRecherche() - Fournit un formulaire de recherche.
119
*
119
*
120
* Renvoie un formulaire permettant de rechercher une chaine de caractères dans les sites
120
* Renvoie un formulaire permettant de rechercher une chaine de caractères dans les sites
121
* gérés par Papyrus.
121
* gérés par Papyrus.
122
* Necessite l'utilisation de Pear Net_URL par le programme appelant cette fonction.
122
* Necessite l'utilisation de Pear Net_URL par le programme appelant cette fonction.
123
*
123
*
124
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction.
124
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction.
125
* @param  array  tableau global de Papyrus.
125
* @param  array  tableau global de Papyrus.
126
* @return string  formulaire XHTML de recherche.
126
* @return string  formulaire XHTML de recherche.
127
*/
127
*/
128
function afficherMoteurRecherche($tab_applette_arguments, $_GEN_commun)
128
function afficherMoteurRecherche($tab_applette_arguments, $_GEN_commun)
129
{
129
{
130
	//+----------------------------------------------------------------------------------------------------------------+
130
	//+----------------------------------------------------------------------------------------------------------------+
131
	// Gestion des arguments
131
	// Gestion des arguments
132
	$options = array();
132
	$options = array();
133
	$balise = $tab_applette_arguments[0];
133
	$balise = $tab_applette_arguments[0];
134
	$tab_arguments = $tab_applette_arguments;
134
	$tab_arguments = $tab_applette_arguments;
135
	unset($tab_arguments[0]);
135
	unset($tab_arguments[0]);
136
	foreach ($tab_arguments as $argument) {
136
    foreach($tab_arguments as $argument) {
137
		if (!empty($argument)) {
137
    	if (!empty($argument)) {
138
			$tab_parametres = explode('=', $argument, 2);
138
	    	$tab_parametres = explode('=', $argument, 2);
139
			$options[$tab_parametres[0]] = trim($tab_parametres[1], '"');
139
	    	$options[$tab_parametres[0]] = (isset($tab_parametres[1]) ? trim($tab_parametres[1], '"') : '');
140
		}
140
    	}
141
	}
-
 
142
 
-
 
143
	// --------------------------------------------------------------------------------------------------------
-
 
144
	// Initialisation de variable de configuration.
-
 
145
	$liste_type_site = '102, 103';// Les id des types des sites pouvant apparaitre dans le sélecteur
-
 
146
	$objet_pear_db =& $_GEN_commun['pear_db'];//objet Pear créé par DB contenant la connexion à la base de données.
-
 
147
	// Connexion à la BD de Papyrus
-
 
148
	$GLOBALS['_MOTEUR_RECHERCHE_']['bd']['papyrus'] =& $_GEN_commun['pear_db'];
-
 
149
	// Connexion aux BDD sur Agathis
-
 
150
	$GLOBALS['_MOTEUR_RECHERCHE_']['bd']['bota'] =& DB::connect(MORE_DSN_BOTA);
-
 
151
	if (DB::isError($GLOBALS['_MOTEUR_RECHERCHE_']['bd']['bota'])) {
-
 
152
		$msg_erreur_connection = 'Impossible de se connecter à la base de données botaniques.';
-
 
153
		die(BOG_afficherErreurSql(__FILE__, __LINE__, $GLOBALS['_MOTEUR_RECHERCHE_']['bd']['bota']->getMessage(), 'connexion à la base de données',$msg_erreur_connection));
-
 
154
	}
141
    }
155
	$GLOBALS['_MOTEUR_RECHERCHE_']['variables'] = array();
-
 
156
	$code_site = $_GEN_commun['url_site'];// identifiant du site courant.
-
 
157
	$url = $_GEN_commun['url'];
-
 
158
	$sphinx = array_key_exists('sphinx', $options) && $options['sphinx'] ? true : false;
-
 
159
	$url_id_type_site = GEN_URL_ID_TYPE_SITE;
-
 
160
	$indent_origine = 12;// Indentation de départ en nombre d'espace
-
 
161
	$indent_pas	 = 4;// Pas d'indentation en nombre d'espace
-
 
162
	$retour = '';
-
 
163
	$retour_resultats = '';
-
 
164
 
142
 
165
	// --------------------------------------------------------------------------------------------------------
143
	// --------------------------------------------------------------------------------------------------------
166
	// Lancement de la recherche si nécessaire
144
	// Lancement de la recherche si nécessaire
167
	$aso_squelette = array('formulaire' => MORE_FORM_SQUELETTE);
145
	$aso_squelette = array('formulaire' => MORE_FORM_SQUELETTE);
168
	$_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif'] = '';
146
	$_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif'] = '';
169
 
147
 
170
	//Greg : gestion d'une url personnalisée passée en paramètres url=""
148
	//Greg : gestion d'une url personnalisée passée en paramètres url=""
171
	if (!isset($options['url']))	{
149
	if (!isset($options['url']))	{
172
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_url'] = $url->getUrl();
150
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_url'] = $url->getUrl();
173
	} else {
151
	} else {
174
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_url'] = $options['url'];
152
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_url'] = $options['url'];
175
	}
153
	}
176
 
154
 
177
	$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_tab'] = MORE_FORM_MOTIF_TAB;
155
	$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['form_tab'] = MORE_FORM_MOTIF_TAB;
178
	$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif_base'] = MORE_LG_FORM_MOTIF_VALUE;
156
	$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif_base'] = MORE_LG_FORM_MOTIF_VALUE;
179
	if (!isset($_POST['more_motif']) || empty($_POST['more_motif'])) {
157
	if (!isset($_POST['more_motif']) || empty($_POST['more_motif'])) {
180
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif'] = MORE_LG_FORM_MOTIF_VALUE;
158
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif'] = MORE_LG_FORM_MOTIF_VALUE;
181
	} else {
159
	} else {
182
		// Ajout du squelette de résultat
160
		// Ajout du squelette de résultat
183
		$aso_squelette['resultat'] = MORE_RESULTAT_SQUELETTE;
161
		$aso_squelette['resultat'] = MORE_RESULTAT_SQUELETTE;
184
		// Titre de la page
162
		// Titre de la page
185
		$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = MORE_LG_TITRE.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
163
		$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = MORE_LG_TITRE.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
186
		$_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif'] = $_POST['more_motif'];
164
		$_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif'] = $_POST['more_motif'];
187
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif'] =  htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
165
		$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif'] =  htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15');
188
 
166
 
189
		/** Inclusion de la classe Recherche.*/
167
		/** Inclusion de la classe Recherche.*/
190
		require_once MORE_CHEMIN_BIBLIO.'more_recherche.class.php';
168
		require_once MORE_CHEMIN_BIBLIO.'more_recherche.class.php';
191
		/** Inclusion de la classe Recherche_Papyrus_Menu.*/
169
		/** Inclusion de la classe Recherche_Papyrus_Menu.*/
192
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_papyrus_menu.class.php';
170
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_papyrus_menu.class.php';
193
		/** Inclusion de la classe Recherche_Spip_Article.*/
171
		/** Inclusion de la classe Recherche_Spip_Article.*/
194
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_spip_article.class.php';
172
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_spip_article.class.php';
195
		/** Inclusion de la classe Recherche_Projet.*/
173
		/** Inclusion de la classe Recherche_Projet.*/
196
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_projet.class.php';
174
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_projet.class.php';
197
		/** inclusion de la classe Recheche Bazar. */
175
		/** inclusion de la classe Recheche Bazar. */
198
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_bazar.class.php';
176
		require_once MORE_CHEMIN_BIBLIO.'more_recherche_bazar.class.php';
199
		$moteur = new More_Recherche($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
177
		$moteur = new More_Recherche($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
200
 
178
 
201
		$recherche_papyrus_menu = new More_Recherche_Papyrus_Menu($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
179
		$recherche_papyrus_menu = new More_Recherche_Papyrus_Menu($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
202
		$moteur->ajouterRecherche($recherche_papyrus_menu);
180
		$moteur->ajouterRecherche($recherche_papyrus_menu);
203
 
181
 
204
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['spip']))	{
182
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['spip']))	{
205
			$recherche_spip_article = new More_Recherche_Spip_Article($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
183
			$recherche_spip_article = new More_Recherche_Spip_Article($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
206
			$moteur->ajouterRecherche($recherche_spip_article);
184
			$moteur->ajouterRecherche($recherche_spip_article);
207
		}
185
		}
208
 
186
 
209
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['bazar'][0]))	{
187
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['bazar'][0]))	{
210
			$recherche_bazar = new More_Recherche_Bazar($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
188
			$recherche_bazar = new More_Recherche_Bazar($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
211
			$moteur->ajouterRecherche($recherche_bazar);
189
			$moteur->ajouterRecherche($recherche_bazar);
212
		}
190
		}
213
 
191
 
214
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['projet']['url']))	{
192
		if (!empty($GLOBALS['_MOTEUR_RECHERCHE_']['projet']['url']))	{
215
			$recherche_projet = new More_Recherche_Projet($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
193
			$recherche_projet = new More_Recherche_Projet($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
216
			$moteur->ajouterRecherche($recherche_projet);
194
			$moteur->ajouterRecherche($recherche_projet);
217
		}
195
		}
218
 
196
 
219
		$sphinx_connect = FALSE;
197
		$sphinx_connect = FALSE;
220
		if (USE_SPHINX && $sphinx) {
198
		if (USE_SPHINX && $sphinx) {
221
			require_once('moteur_recherche_sphinx.php');
199
			require_once('moteur_recherche_sphinx.php');
222
			$sphinx_connect = @mysql_connect(SPHINX_DSN, NULL, NULL, TRUE);
200
			$sphinx_connect = @mysql_connect(SPHINX_DSN, NULL, NULL, TRUE);
223
			if(!$sphinx_connect) {
201
			if(!$sphinx_connect) {
224
				error_log("sphinx: can't connect to " . SPHINX_DSN . ", traditionnal SQL fallback [moteur_recherche.php]");
202
				error_log("sphinx: can't connect to " . SPHINX_DSN . ", traditionnal SQL fallback [moteur_recherche.php]");
225
			}
203
			}
226
		}
204
		}
227
		if (!$sphinx_connect) {
205
		if (!$sphinx_connect) {
228
			// recherche traditionnelle
206
			// recherche traditionnelle
229
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = $moteur->rechercherMotif();
207
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = $moteur->rechercherMotif();
230
		} else {
208
		} else {
231
			/* ce fichier/cette fonction peut-être réclamé plusieurs fois
209
			/* ce fichier/cette fonction peut-être réclamé plusieurs fois
232
			car le motif du template '{{MoteurRecherche}}' est inclu récursivement,
210
			car le motif du template '{{MoteurRecherche}}' est inclu récursivement,
233
			(la première substitution fait réapparaître '{{MoteurRecherche}}')
211
			(la première substitution fait réapparaître '{{MoteurRecherche}}')
234
			Cela est lié au fonctionnement des sessions et diffère selon un espace de test
212
			Cela est lié au fonctionnement des sessions et diffère selon un espace de test
235
			et la config' en production... */
213
			et la config' en production... */
236
			// if(!isset($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'])) {
214
			// if(!isset($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'])) {
237
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = sphinx_search($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
215
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = sphinx_search($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
238
			// }
216
			// }
239
		}
217
		}
240
 
218
 
241
		//$GLOBALS['_DEBOGAGE_'] = '<pre>'.print_r($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'], true).'</pre>';
219
		//$GLOBALS['_DEBOGAGE_'] = '<pre>'.print_r($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'], true).'</pre>';
242
		$nbre_pages = count($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats']);
220
		$nbre_pages = count($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats']);
243
		$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['nbre_pages'] = $nbre_pages;
221
		$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['nbre_pages'] = $nbre_pages;
244
		$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['vide'] = MORE_LG_RESULTAT_VIDE;
222
		$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['vide'] = MORE_LG_RESULTAT_VIDE;
245
		if ($nbre_pages <= 1) {
223
		if ($nbre_pages <= 1) {
246
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['titre'] = sprintf(MORE_LG_RESULTAT_TITRE, $nbre_pages);
224
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['titre'] = sprintf(MORE_LG_RESULTAT_TITRE, $nbre_pages);
247
		} else {
225
		} else {
248
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['titre'] = sprintf(MORE_LG_RESULTAT_TITRE_PLURIEL, $nbre_pages);
226
			$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['titre'] = sprintf(MORE_LG_RESULTAT_TITRE_PLURIEL, $nbre_pages);
249
		}
227
		}
250
 
228
 
251
		foreach ($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] as $cle => $val) {
229
		foreach ($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] as $cle => $val) {
252
			if (empty($val['url'])) {
230
			if (empty($val['url'])) {
253
				unset($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]);
231
				unset($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]);
254
			} else {
232
			} else {
255
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['score'] = trim($val['score']);
233
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['score'] = trim($val['score']);
256
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['date_creation'] = trim($val['date_creation']);
234
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['date_creation'] = trim($val['date_creation']);
257
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['description'] = trim($val['description']);
235
				$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'][$cle]['description'] = trim($val['description']);
258
			}
236
			}
259
		}
237
		}
260
	}
238
	}
261
 
239
 
262
	// Génération du contenu à partir des squelettes
240
	// Génération du contenu à partir des squelettes
263
	foreach ($aso_squelette as $squelette => $fichier) {
241
	foreach ($aso_squelette as $squelette => $fichier) {
264
		// Extrait les variables et les ajoutes à l'espace de noms local
242
		// Extrait les variables et les ajoutes à l'espace de noms local
265
		extract($GLOBALS['_MOTEUR_RECHERCHE_'][$squelette]);
243
		extract($GLOBALS['_MOTEUR_RECHERCHE_'][$squelette]);
266
		// Démarre le buffer
244
		// Démarre le buffer
267
		ob_start();
245
		ob_start();
268
		// Inclusion du fichier
246
		// Inclusion du fichier
269
		include(MORE_CHEMIN_SQUELETTE.$fichier);
247
		include(MORE_CHEMIN_SQUELETTE.$fichier);
270
		// Récupérer le  contenu du buffer
248
		// Récupérer le  contenu du buffer
271
		$retour = ob_get_contents();
249
		$retour = ob_get_contents();
272
		// Arrête et détruit le buffer
250
		// Arrête et détruit le buffer
273
		ob_end_clean();
251
		ob_end_clean();
274
		// Retourne le contenu
252
		// Retourne le contenu
275
		switch ($squelette) {
253
		switch ($squelette) {
276
			case 'resultat' :
254
			case 'resultat' :
277
				// L'applette fournie un résultat qui écrase le contenu de la page courrante
255
				// L'applette fournie un résultat qui écrase le contenu de la page courrante
278
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'] = '';
256
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'] = '';
279
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'] = '';
257
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'] = '';
280
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] = $retour;
258
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] = $retour;
281
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_PIED'] = '';
259
				$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_PIED'] = '';
282
				$GLOBALS['_GEN_commun']['info_menu'] = '';
260
				$GLOBALS['_GEN_commun']['info_menu'] = '';
283
				break;
261
				break;
284
			case 'formulaire' :
262
			case 'formulaire' :
285
				// L'applette est appelée par défaut
263
				// L'applette est appelée par défaut
286
				$retour_formulaire = $retour;
264
				$retour_formulaire = $retour;
287
				break;
265
				break;
288
			default:
266
			default:
289
				$e = "Squellette <$squelette> pour le moteur de recherche inconnu!";
267
				$e = "Squellette <$squelette> pour le moteur de recherche inconnu!";
290
				trigger_error($e, E_USER_WARNING);
268
				trigger_error($e, E_USER_WARNING);
291
		}
269
		}
292
	}
270
	}
293
	return $retour_formulaire;
271
	return $retour_formulaire;
294
}
272
}
295
 
273
 
296
// +------------------------------------------------------------------------------------------------------+
274
// +------------------------------------------------------------------------------------------------------+
297
// |											PIED du PROGRAMME										 |
275
// |											PIED du PROGRAMME										 |
298
// +------------------------------------------------------------------------------------------------------+
276
// +------------------------------------------------------------------------------------------------------+
299
 
277
 
300
 
278
 
301
/* +--Fin du code ----------------------------------------------------------------------------------------+
279
/* +--Fin du code ----------------------------------------------------------------------------------------+
302
*
280
*
303
* $Log: not supported by cvs2svn $
281
* $Log: not supported by cvs2svn $
304
* Revision 1.23  2008-08-26 15:31:16  alexandre_tb
282
* Revision 1.23  2008-08-26 15:31:16  alexandre_tb
305
* ajout du moteur de recherche dans l'appli projet
283
* ajout du moteur de recherche dans l'appli projet
306
*
284
*
307
* Revision 1.22  2007-11-30 14:02:48  alexandre_tb
285
* Revision 1.22  2007-11-30 14:02:48  alexandre_tb
308
* Fusion avec la livraison
286
* Fusion avec la livraison
309
*
287
*
310
* Revision 1.21  2007-10-29 18:29:30  jp_milcent
288
* Revision 1.21  2007-10-29 18:29:30  jp_milcent
311
* Ajout d'un pr�fixe devant les classes de l'applette pour �viter les conflits avec d'autres classes provenant des applis clientes.
289
* Ajout d'un pr�fixe devant les classes de l'applette pour �viter les conflits avec d'autres classes provenant des applis clientes.
312
*
290
*
313
* Revision 1.20  2007-06-15 12:27:39  jp_milcent
291
* Revision 1.20  2007-06-15 12:27:39  jp_milcent
314
* Ajout de fonctionnalit�s Javascript au moteur de recherche.
292
* Ajout de fonctionnalit�s Javascript au moteur de recherche.
315
*
293
*
316
* Revision 1.19  2007-01-02 18:49:22  jp_milcent
294
* Revision 1.19  2007-01-02 18:49:22  jp_milcent
317
* Am�lioration de la gestion du motif.
295
* Am�lioration de la gestion du motif.
318
* Ajout de la gestion des expressions compl�te via l'utilisation de guillemets.
296
* Ajout de la gestion des expressions compl�te via l'utilisation de guillemets.
319
*
297
*
320
* Revision 1.18  2006/12/12 13:53:54  jp_milcent
298
* Revision 1.18  2006/12/12 13:53:54  jp_milcent
321
* Mise en place du nouveau format des balises d'applette.
299
* Mise en place du nouveau format des balises d'applette.
322
*
300
*
323
* Revision 1.17  2006/12/01 16:33:40  florian
301
* Revision 1.17  2006/12/01 16:33:40  florian
324
* Am�lioration de la gestion des applettes et compatibilit� avec le nouveau mode de gestion de l'inclusion des applettes.
302
* Am�lioration de la gestion des applettes et compatibilit� avec le nouveau mode de gestion de l'inclusion des applettes.
325
*
303
*
326
* Revision 1.16  2006/11/20 09:36:59  jp_milcent
304
* Revision 1.16  2006/11/20 09:36:59  jp_milcent
327
* Correction bogue z�ro r�sultat et ajout d'url simple pour indiquer la page de l'article.
305
* Correction bogue z�ro r�sultat et ajout d'url simple pour indiquer la page de l'article.
328
*
306
*
329
* Revision 1.15  2006/11/14 16:10:13  jp_milcent
307
* Revision 1.15  2006/11/14 16:10:13  jp_milcent
330
* Extraction du XHTML et utilisation de squelettes � la place.
308
* Extraction du XHTML et utilisation de squelettes � la place.
331
* Possibilit� de configurer le squlette voulu via le fichier de conf.
309
* Possibilit� de configurer le squlette voulu via le fichier de conf.
332
*
310
*
333
* Revision 1.14  2006/10/10 13:28:14  jp_milcent
311
* Revision 1.14  2006/10/10 13:28:14  jp_milcent
334
* Suppression d'une variable et utilisation de la constante PAP_URL
312
* Suppression d'une variable et utilisation de la constante PAP_URL
335
*
313
*
336
* Revision 1.13  2006/10/10 12:02:30  jp_milcent
314
* Revision 1.13  2006/10/10 12:02:30  jp_milcent
337
* Suppression d'une biblioth�que Pear qu'il est inutile d'inclure.
315
* Suppression d'une biblioth�que Pear qu'il est inutile d'inclure.
338
* Ajout du chemin vers la bibliotheque Pear de Papyrus.
316
* Ajout du chemin vers la bibliotheque Pear de Papyrus.
339
*
317
*
340
* Revision 1.12  2006/06/16 09:45:10  jp_milcent
318
* Revision 1.12  2006/06/16 09:45:10  jp_milcent
341
* Correction bogue li� � la suppression de l'objet info_menu.
319
* Correction bogue li� � la suppression de l'objet info_menu.
342
*
320
*
343
* Revision 1.11  2006/05/23 13:39:13  florian
321
* Revision 1.11  2006/05/23 13:39:13  florian
344
* corection bug notice de jean pascal ;-)
322
* corection bug notice de jean pascal ;-)
345
*
323
*
346
* Revision 1.10  2006/05/19 10:04:55  jp_milcent
324
* Revision 1.10  2006/05/19 10:04:55  jp_milcent
347
* Ajout d'un moteur de recherche analysant les articles des sites sous Spip.
325
* Ajout d'un moteur de recherche analysant les articles des sites sous Spip.
348
*
326
*
349
* Revision 1.9  2006/04/28 12:41:49  florian
327
* Revision 1.9  2006/04/28 12:41:49  florian
350
* corrections erreurs chemin
328
* corrections erreurs chemin
351
*
329
*
352
* Revision 1.8  2006/03/02 10:49:49  ddelon
330
* Revision 1.8  2006/03/02 10:49:49  ddelon
353
* Fusion branche multilinguisme dans branche principale
331
* Fusion branche multilinguisme dans branche principale
354
*
332
*
355
* Revision 1.7.2.2  2005/12/27 15:56:00  ddelon
333
* Revision 1.7.2.2  2005/12/27 15:56:00  ddelon
356
* Fusion Head vers multilinguisme (wikini double clic)
334
* Fusion Head vers multilinguisme (wikini double clic)
357
*
335
*
358
* Revision 1.7.2.1  2005/12/20 14:40:25  ddelon
336
* Revision 1.7.2.1  2005/12/20 14:40:25  ddelon
359
* Fusion Head vers Livraison
337
* Fusion Head vers Livraison
360
*
338
*
361
* Revision 1.7  2005/09/27 09:07:32  ddelon
339
* Revision 1.7  2005/09/27 09:07:32  ddelon
362
* size applette et squelettes
340
* size applette et squelettes
363
*
341
*
364
* Revision 1.6  2005/05/25 13:49:22  jpm
342
* Revision 1.6  2005/05/25 13:49:22  jpm
365
* Corection erreur pour la recherche dans le contenu.
343
* Corection erreur pour la recherche dans le contenu.
366
*
344
*
367
* Revision 1.5  2005/05/19 12:46:12  jpm
345
* Revision 1.5  2005/05/19 12:46:12  jpm
368
* Correction bogue accesskey.
346
* Correction bogue accesskey.
369
* Ajout d'un id � la liste.
347
* Ajout d'un id � la liste.
370
* Arrondissement des score.
348
* Arrondissement des score.
371
*
349
*
372
* Revision 1.4  2005/04/14 17:39:34  jpm
350
* Revision 1.4  2005/04/14 17:39:34  jpm
373
* Am�lioration du moteur de rechercher :
351
* Am�lioration du moteur de rechercher :
374
*  - pourcentage
352
*  - pourcentage
375
*  - ajout d'info
353
*  - ajout d'info
376
*
354
*
377
* Revision 1.3  2005/02/22 19:27:21  jpm
355
* Revision 1.3  2005/02/22 19:27:21  jpm
378
* Changement de nom de variables.
356
* Changement de nom de variables.
379
* Suppression de l'attribut nam de la balise form via une m�thode de HTML_Common.
357
* Suppression de l'attribut nam de la balise form via une m�thode de HTML_Common.
380
*
358
*
381
* Revision 1.2  2005/02/22 17:44:03  jpm
359
* Revision 1.2  2005/02/22 17:44:03  jpm
382
* Suppression de r�f�rence posant probl�me.
360
* Suppression de r�f�rence posant probl�me.
383
*
361
*
384
* Revision 1.1  2004/12/07 10:24:01  jpm
362
* Revision 1.1  2004/12/07 10:24:01  jpm
385
* Moteur de recherche version de d�part.
363
* Moteur de recherche version de d�part.
386
*
364
*
387
*
365
*
388
* +-- Fin du code ----------------------------------------------------------------------------------------+
366
* +-- Fin du code ----------------------------------------------------------------------------------------+
389
*/
367
*/
390
?>
368
?>