Subversion Repositories Applications.papyrus

Rev

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

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