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
|
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 90... |
Line 91... |
90 |
// +------------------------------------------------------------------------------------------------------+
|
91 |
// +------------------------------------------------------------------------------------------------------+
|
91 |
// | CORPS du PROGRAMME |
|
92 |
// | CORPS du PROGRAMME |
|
92 |
// +------------------------------------------------------------------------------------------------------+
|
93 |
// +------------------------------------------------------------------------------------------------------+
|
Line 93... |
Line 94... |
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');
|
Line 102... |
Line 103... |
102 |
GEN_modifierMetaHttpEquiv('Content-language', $GLOBALS['_GEN_commun']['i18n']);
|
103 |
GEN_modifierMetaHttpEquiv('Content-language', $GLOBALS['_GEN_commun']['i18n']);
|
Line 103... |
Line 104... |
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.');
|
Line 108... |
Line 109... |
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 |
|
Line 110... |
Line 111... |
110 |
GEN_viderMeta('dc');
|
111 |
GEN_viderMeta('dc');
|
111 |
}
|
112 |
}
|
112 |
|
113 |
|
Line 113... |
Line 114... |
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.
|
Line 139... |
Line 140... |
139 |
}
|
140 |
}
|
140 |
}
|
141 |
}
|
Line 141... |
Line 142... |
141 |
|
142 |
|
142 |
// --------------------------------------------------------------------------------------------------------
|
143 |
// --------------------------------------------------------------------------------------------------------
|
143 |
// Initialisation de variable de configuration.
|
144 |
// 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 |
$liste_type_site = '102, 103';// Les id des types des sites pouvant apparaitre 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 |
$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
|
146 |
$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
|
147 |
$GLOBALS['_MOTEUR_RECHERCHE_']['variables'] = array();
|
149 |
$GLOBALS['_MOTEUR_RECHERCHE_']['variables'] = array();
|
148 |
$code_site = $_GEN_commun['url_site'];// identifiant du site courant.
|
150 |
$code_site = $_GEN_commun['url_site'];// identifiant du site courant.
|
149 |
$url = $_GEN_commun['url'];
|
151 |
$url = $_GEN_commun['url'];
|
150 |
$sphinx = array_key_exists('sphinx', $options) && $options['sphinx'] ? true : false;
|
152 |
$sphinx = array_key_exists('sphinx', $options) && $options['sphinx'] ? true : false;
|
151 |
$url_id_type_site = GEN_URL_ID_TYPE_SITE;
|
153 |
$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 = '';
|
Line 155... |
Line 157... |
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
|
Line 159... |
Line 161... |
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'] = '';
|
Line 169... |
Line 171... |
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');
|
Line 208... |
Line 210... |
208 |
$moteur->ajouterRecherche($recherche_projet);
|
210 |
$moteur->ajouterRecherche($recherche_projet);
|
209 |
}
|
211 |
}
|
Line 210... |
Line 212... |
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();
|
Line 247... |
Line 251... |
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 |
}
|
Line 251... |
Line 255... |
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!";
|