25,9 → 25,9 |
/** |
* Applette : moteur de recherche |
* |
* G�n�re un formulaire contenant une zone de saisie permettant de taper un texte � rechercher sur l'ensemble |
* des sites g�r�s par Papyrus. |
* Utilisation des biblioth�ques inclue par Papyrus : |
* Génère un formulaire contenant une zone de saisie permettant de taper un texte � rechercher sur l'ensemble |
* des sites gérés par Papyrus. |
* Utilisation des bibliothèques inclue par Papyrus : |
* - Papyrus pap_meta.fonct.php |
* - PEAR NET_URL |
* |
57,7 → 57,8 |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherMoteurRecherche'; |
$GLOBALS['_GEN_commun']['info_applette_balise'] = '(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(MOTEUR_RECHERCHE) -->|'. |
$GLOBALS['_GEN_commun']['info_applette_balise'] = |
'(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(MOTEUR_RECHERCHE) -->|'. |
'\{\{[[Mm]oteurRecherche'. |
'(?:\s*'. |
'(?:'. |
67,8 → 68,8 |
'\s*\}\})'; |
|
// -------------------------------------------------------------------------------------------------------- |
//Utilisation de la biblioth�que Papyrus pap_meta.fonct.php inclue par Papyrus |
//Utilisation de la biblioth�que PEAR NET_URL inclue par Papyrus |
//Utilisation de la bibliothèque Papyrus pap_meta.fonct.php inclue par Papyrus |
//Utilisation de la bibliothèque PEAR NET_URL inclue par Papyrus |
/** Inclusion du fichier de configuration de cette application.*/ |
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_configuration.inc.php'; |
/** Inclusion du fichier de configuration des Spip.*/ |
92,7 → 93,7 |
// +------------------------------------------------------------------------------------------------------+ |
|
if (isset($_POST['more_motif']) && !empty($_POST['more_motif'])) { |
// Initialisation de variable ext�rieures |
// Initialisation de variable extèrieures |
$GLOBALS['_VEI_']['usurpation'] = MORE_LG_USURPATION.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15'); |
$GLOBALS['_PAPYRUS_']['general']['application_chemin'] = null; |
// Modification des meta de l'ent�te de la page |
104,8 → 105,8 |
GEN_modifierMetaName('revisit-after', '15 days'); |
GEN_modifierMetaName('robots', 'index,follow'); |
GEN_modifierMetaName('author', 'Tela Botanica'); |
GEN_modifierMetaName('keywords', 'Recherche, r�sultat.'); |
GEN_modifierMetaName('description', 'Page de r�sultats du moteur de recherche de Papyrus.'); |
GEN_modifierMetaName('keywords', 'Recherche, résultat.'); |
GEN_modifierMetaName('description', 'Page de résultats du moteur de recherche de Papyrus.'); |
|
GEN_viderMeta('dc'); |
} |
116,11 → 117,11 |
|
/** Fonction afficherMoteurRecherche() - Fournit un formulaire de recherche. |
* |
* Renvoie un formulaire permettant de rechercher une chaine de caract�res dans les sites |
* g�r�s par Papyrus. |
* Renvoie un formulaire permettant de rechercher une chaine de caractères dans les sites |
* gérés par Papyrus. |
* Necessite l'utilisation de Pear Net_URL par le programme appelant cette fonction. |
* |
* @param array tableau d'�ventuel arguments pr�sent dans la balise transmis � la fonction. |
* @param array tableau d'éventuel arguments présent dans la balise transmis à la fonction. |
* @param array tableau global de Papyrus. |
* @return string formulaire XHTML de recherche. |
*/ |
141,21 → 142,22 |
|
// -------------------------------------------------------------------------------------------------------- |
// Initialisation de variable de configuration. |
$liste_type_site = '102, 103';// Les id des types des sites pouvant appara�tre dans le s�lecteur |
$objet_pear_db =& $_GEN_commun['pear_db'];//objet Pear cr�� par DB contenant la connexion � la base de donn�es. |
$GLOBALS['_MOTEUR_RECHERCHE_']['bd']['papyrus'] =& $_GEN_commun['pear_db'];// Connexion � la BD de Papyrus |
$liste_type_site = '102, 103';// Les id des types des sites pouvant apparaitre dans le sélecteur |
$objet_pear_db =& $_GEN_commun['pear_db'];//objet Pear créé par DB contenant la connexion à la base de données. |
$GLOBALS['_MOTEUR_RECHERCHE_']['bd']['papyrus'] =& $_GEN_commun['pear_db'];// Connexion à la BD de Papyrus |
$GLOBALS['_MOTEUR_RECHERCHE_']['bd']['bota'] =& DB::connect(MORE_DSN_BOTA);// Connexion aux BDD sur Agathis |
$GLOBALS['_MOTEUR_RECHERCHE_']['variables'] = array(); |
$code_site = $_GEN_commun['url_site'];// identifiant du site courant. |
$url = $_GEN_commun['url']; |
$sphinx = array_key_exists('sphinx', $options) && $options['sphinx'] ? true : false; |
$url_id_type_site = GEN_URL_ID_TYPE_SITE; |
$indent_origine = 12;// Indentation de d�part en nombre d'espace |
$indent_origine = 12;// Indentation de départ en nombre d'espace |
$indent_pas = 4;// Pas d'indentation en nombre d'espace |
$retour = ''; |
$retour_resultats = ''; |
|
// -------------------------------------------------------------------------------------------------------- |
// Lancement de la recherche si n�cessaire |
// Lancement de la recherche si nécessaire |
$aso_squelette = array('formulaire' => MORE_FORM_SQUELETTE); |
$_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif'] = ''; |
|
171,7 → 173,7 |
if (!isset($_POST['more_motif']) || empty($_POST['more_motif'])) { |
$GLOBALS['_MOTEUR_RECHERCHE_']['formulaire']['more_motif'] = MORE_LG_FORM_MOTIF_VALUE; |
} else { |
// Ajout du squelette de r�sultat |
// Ajout du squelette de résultat |
$aso_squelette['resultat'] = MORE_RESULTAT_SQUELETTE; |
// Titre de la page |
$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = MORE_LG_TITRE.htmlentities(stripslashes($_POST['more_motif']), ENT_COMPAT|ENT_HTML401, 'ISO8859-15'); |
210,10 → 212,12 |
|
$sphinx_connect = FALSE; |
if(USE_SPHINX && $sphinx) { |
require_once("moteur_recherche_sphinx.php"); |
require_once('moteur_recherche_sphinx.php'); |
$sphinx_connect = @mysql_connect(SPHINX_DSN, NULL, NULL, TRUE); |
if(!$sphinx_connect) error_log("sphinx: can't connect to " . SPHINX_DSN . ", traditionnal SQL fallback [moteur_recherche.php]"); |
if(!$sphinx_connect) { |
error_log("sphinx: can't connect to " . SPHINX_DSN . ", traditionnal SQL fallback [moteur_recherche.php]"); |
} |
} |
if(!$sphinx_connect) { |
// recherche traditionnelle |
$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = $moteur->rechercherMotif(); |
249,22 → 253,22 |
} |
} |
|
// G�n�ration du contenu � partir des squelettes |
// Génération du contenu à partir des squelettes |
foreach ($aso_squelette as $squelette => $fichier) { |
// Extrait les variables et les ajoutes � l'espace de noms local |
// Extrait les variables et les ajoutes à l'espace de noms local |
extract($GLOBALS['_MOTEUR_RECHERCHE_'][$squelette]); |
// D�marre le buffer |
// Démarre le buffer |
ob_start(); |
// Inclusion du fichier |
include(MORE_CHEMIN_SQUELETTE.$fichier); |
// R�cup�rer le contenu du buffer |
// Récupérer le contenu du buffer |
$retour = ob_get_contents(); |
// Arr�te et d�truit le buffer |
// Arrête et détruit le buffer |
ob_end_clean(); |
// Retourne le contenu |
switch ($squelette) { |
case 'resultat' : |
// L'applette fournie un r�sultat qui �crase le contenu de la page courrante |
// L'applette fournie un résultat qui écrase le contenu de la page courrante |
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'] = ''; |
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'] = ''; |
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] = $retour; |
272,7 → 276,7 |
$GLOBALS['_GEN_commun']['info_menu'] = ''; |
break; |
case 'formulaire' : |
// L'applette est appel�e par d�faut |
// L'applette est appelée par défaut |
$retour_formulaire = $retour; |
break; |
default: |