Subversion Repositories Applications.papyrus

Rev

Rev 2130 | Rev 2142 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2130 Rev 2140
Line 1... Line 1...
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
// +------------------------------------------------------------------------------------------------------+
Line 23... Line 23...
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
*/
Line 44... Line 44...
44
 
44
 
Line 52... Line 52...
52
if(!defined('ENT_HTML401')) {
52
if(!defined('ENT_HTML401')) {
53
	define('ENT_HTML401', ENT_COMPAT);
53
	define('ENT_HTML401', ENT_COMPAT);
54
}
54
}
Line 55... Line 55...
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
	')+'.
Line 67... Line 68...
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.*/
Line 78... Line 79...
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';
Line 80... Line 81...
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';
Line 88... Line 89...
88
}
89
}
89
 
90
 
90
// +------------------------------------------------------------------------------------------------------+
91
// +------------------------------------------------------------------------------------------------------+
Line 91... Line 92...
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.');
Line 109... Line 110...
109
    
110
 
110
    GEN_viderMeta('dc');
111
	GEN_viderMeta('dc');
111
}
112
}
Line 112... Line 113...
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) {
-
 
137
		if (!empty($argument)) {
-
 
138
			$tab_parametres = explode('=', $argument, 2);
-
 
139
			$options[$tab_parametres[0]] = trim($tab_parametres[1], '"');
-
 
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;
Line 136... Line 153...
136
    	if (!empty($argument)) {
153
	$url_id_type_site = GEN_URL_ID_TYPE_SITE;
137
	    	$tab_parametres = explode('=', $argument, 2);
-
 
138
	    	$options[$tab_parametres[0]] = trim($tab_parametres[1], '"');
-
 
139
    	}
-
 
140
    }
-
 
141
 
-
 
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
154
	$indent_origine = 12;// Indentation de départ en nombre d'espace
153
    $indent_pas     = 4;// Pas d'indentation en nombre d'espace
155
	$indent_pas	 = 4;// Pas d'indentation en nombre d'espace
154
    $retour = '';
156
	$retour = '';
155
    $retour_resultats = '';
157
	$retour_resultats = '';
156
    
158
 
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);
Line 204... Line 206...
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']);
-
 
210
			$moteur->ajouterRecherche($recherche_projet);
208
        	$moteur->ajouterRecherche($recherche_projet);
211
		}
-
 
212
 
209
        }
213
		$sphinx_connect = FALSE;
210
 
214
		if (USE_SPHINX && $sphinx) {
211
		$sphinx_connect = FALSE;
215
			require_once('moteur_recherche_sphinx.php');
212
		if(USE_SPHINX && $sphinx) {
216
			$sphinx_connect = @mysql_connect(SPHINX_DSN, NULL, NULL, TRUE);
213
			require_once("moteur_recherche_sphinx.php");
217
			if(!$sphinx_connect) {
214
			$sphinx_connect = @mysql_connect(SPHINX_DSN, NULL, NULL, TRUE);
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,
Line 223... Line 227...
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>';
Line 232... Line 236...
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) {
Line 242... Line 246...
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;
Line 282... Line 286...
282
	}
286
	}
283
	return $retour_formulaire;
287
	return $retour_formulaire;
284
}
288
}
Line 285... Line 289...
285
 
289
 
286
// +------------------------------------------------------------------------------------------------------+
290
// +------------------------------------------------------------------------------------------------------+
287
// |                                            PIED du PROGRAMME                                         |
291
// |											PIED du PROGRAMME										 |
Line 288... Line 292...
288
// +------------------------------------------------------------------------------------------------------+
292
// +------------------------------------------------------------------------------------------------------+
289
 
293