Subversion Repositories Applications.papyrus

Rev

Rev 2130 | Rev 2142 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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