Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1932 → Rev 1933

/trunk/papyrus/applettes/moteur_recherche/moteur_recherche.php
21,7 → 21,7
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: moteur_recherche.php,v 1.23 2008-08-26 15:31:16 alexandre_tb Exp $
// CVS : $Id: moteur_recherche.php,v 1.24 2008-10-21 15:24:50 aperonnet Exp $
/**
* Applette : moteur de recherche
*
38,7 → 38,7
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.23 $ $Date: 2008-08-26 15:31:16 $
*@version $Revision: 1.24 $ $Date: 2008-10-21 15:24:50 $
// +------------------------------------------------------------------------------------------------------+
*/
 
58,6 → 58,8
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_spip.inc.php';
/** Inclusion du fichier de configuration de l appli projet.*/
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_projet.inc.php';
/** Inclusion du fichier de configuration de l appli bazar.*/
require_once GEN_CHEMIN_APPLETTE.'moteur_recherche/configuration/more_config_bazar.inc.php';
 
// Inclusion des fichiers de traduction de l'appli ADME de Papyrus
if (file_exists(MORE_CHEMIN_LANGUE.'more_langue_'.$GLOBALS['_GEN_commun']['i18n'].'.inc.php')) {
146,13 → 148,17
require_once MORE_CHEMIN_BIBLIO.'more_recherche_spip_article.class.php';
/** Inclusion de la classe Recherche_Projet.*/
require_once MORE_CHEMIN_BIBLIO.'more_recherche_projet.class.php';
/** inclusion de la classe Recheche Bazar. */
require_once MORE_CHEMIN_BIBLIO.'more_recherche_bazar.class.php';
$moteur = new More_Recherche($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
$recherche_papyrus_menu = new More_Recherche_Papyrus_Menu($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
$recherche_spip_article = new More_Recherche_Spip_Article($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
$recherche_projet = new More_Recherche_Projet($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
$recherche_bazar = new More_Recherche_Bazar($_SESSION['_MOTEUR_RECHERCHE_']['rechercher']['more_motif']);
$moteur->ajouterRecherche($recherche_papyrus_menu);
$moteur->ajouterRecherche($recherche_spip_article);
$moteur->ajouterRecherche($recherche_projet);
$moteur->ajouterRecherche($recherche_bazar);
$GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'] = $moteur->rechercherMotif();
//$GLOBALS['_DEBOGAGE_'] = '<pre>'.print_r($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats'], true).'</pre>';
$nbre_pages = count($GLOBALS['_MOTEUR_RECHERCHE_']['resultat']['resultats']);
216,6 → 222,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.23 2008-08-26 15:31:16 alexandre_tb
* ajout du moteur de recherche dans l'appli projet
*
* Revision 1.22 2007-11-30 14:02:48 alexandre_tb
* Fusion avec la livraison
*
/trunk/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche_papyrus_menu.class.php
21,7 → 21,7
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: more_recherche_papyrus_menu.class.php,v 1.14 2008-08-08 16:04:41 jp_milcent Exp $
// CVS : $Id: more_recherche_papyrus_menu.class.php,v 1.15 2008-10-21 15:24:50 aperonnet Exp $
/**
* Classe permettant d'effectuer des recherches sur les informations des menus de Papyrus.
*
38,7 → 38,7
//Autres auteurs :
*@author aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.14 $ $Date: 2008-08-08 16:04:41 $
*@version $Revision: 1.15 $ $Date: 2008-10-21 15:24:50 $
// +------------------------------------------------------------------------------------------------------+
*/
 
79,7 → 79,7
// Récupération des infos du menu courant : transtypage pour éviter les erreur avec array_merge
$aso_menu_info = (array) GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
// Nous vérifions que le menu à une date de validité valide
// Nous vérifions que le menu a une date de validité valide
if ($aso_menu_info['gm_date_fin_validite'] == '0000-00-00 00:00:00' || strtotime($aso_menu_info['gm_date_fin_validite']) > time() ) {
// Récupération du contenu du menu courant : transtypage pour éviter les erreur avec array_merge
$aso_menu_contenu = (array) GEN_lireContenuMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
150,6 → 150,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.14 2008-08-08 16:04:41 jp_milcent
* Fusion avec la livraions AHA.
*
* Revision 1.13.2.1 2008-08-08 15:59:09 jp_milcent
* Les menus dont la date de fin de validité est dépassée ne sont plus affichés.
*
/trunk/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche_spip_article.class.php
108,7 → 108,7
}
$aso_resultat['hreflang'] = htmlentities($Article->lang);
$aso_resultat['description'] = $this->couper($Article->texte, MORE_RESULTAT_TAILLE_DESCRIPTION);
$aso_resultat['description'] = $this->couperTexte($Article->texte, MORE_RESULTAT_TAILLE_DESCRIPTION);
if (($jour = date('d', strtotime($Article->date)) ) != 0 ) {
$aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
153,100 → 153,14
return $tab_retour;
}
// Fichier : inc_texte.php3
function couper($texte, $taille = 50)
{
$texte = substr($texte, 0, 400 + 2*$taille); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
// on utilise les \r pour passer entre les gouttes
$texte = str_replace("\r\n", "\n", $texte);
$texte = str_replace("\r", "\n", $texte);
// sauts de ligne et paragraphes
$texte = ereg_replace("\n\n+", "\r", $texte);
$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte);
// supprimer les traits, lignes etc
$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte);
// supprimer les tags
$texte = $this->supprimer_tags($texte);
$texte = trim(str_replace("\n"," ", $texte));
$texte .= "\n"; // marquer la fin
// travailler en accents charset
// On supprime dans Papyrus car cela tire trop de fonctions...
//$texte = $this->filtrer_entites($texte);
// supprimer les liens
$texte = ereg_replace("\[->([^]]*)\]","\\1", $texte); // liens sans texte
$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte);
// supprimer les notes
$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);
// supprimer les codes typos
$texte = ereg_replace("[}{]", "", $texte);
// supprimer les tableaux
$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte);
// couper au mot precedent
$long = $this->spip_substr($texte, 0, max($taille-4,1));
$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
$points = MORE_LG_RESULTAT_ETC;
// trop court ? ne pas faire de (...)
if (strlen($court) < max(0.75 * $taille,2)) {
$points = '';
$long = $this->spip_substr($texte, 0, $taille);
$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long);
// encore trop court ? couper au caractere
if (strlen($texte) < 0.75 * $taille)
$texte = $long;
} else
$texte = $court;
if (strpos($texte, "\n")) // la fin est encore la : c'est qu'on n'a pas de texte de suite
$points = '';
// remettre les paragraphes
$texte = ereg_replace("\r+", "\n\n", $texte);
// supprimer l'eventuelle entite finale mal coupee
$texte = preg_replace('/&#?[a-z0-9]*$/', '', $texte);
return trim($texte).$points;
}
// Gerer les outils mb_string
// Fichier : inc_texte.php3
function spip_substr($c, $start=0, $end='')
{
// methode substr normale
if ($end) {
return substr($c, $start, $end);
} else {
return substr($c, $start);
}
}
 
// Suppression basique et brutale de tous les <...>
// Fichier : inc_filtres.php3
function supprimer_tags($texte, $rempl = "")
{
$texte = preg_replace(",<[^>]*>,U", $rempl, $texte);
// ne pas oublier un < final non ferme
$texte = str_replace('<', ' ', $texte);
return $texte;
}
 
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log$
* Revision 1.7 2007-10-29 18:29:30 jp_milcent
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes.
*
* Revision 1.6 2007-01-02 18:49:22 jp_milcent
* Amélioration de la gestion du motif.
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.
/trunk/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche_bazar.class.php
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche_bazar.class.php
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche.class.php
21,7 → 21,7
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: more_recherche.class.php,v 1.12 2007-10-29 18:29:30 jp_milcent Exp $
// CVS : $Id: more_recherche.class.php,v 1.13 2008-10-21 15:24:50 aperonnet Exp $
/**
* Classe permettant d'effectuer des recherches sur les métas informations des menus.
*
34,7 → 34,7
//Autres auteurs :
*@author aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.12 $ $Date: 2007-10-29 18:29:30 $
*@version $Revision: 1.13 $ $Date: 2008-10-21 15:24:50 $
// +------------------------------------------------------------------------------------------------------+
*/
 
222,11 → 222,107
return '';
}
}
/**
* Coupe un texte suivant une taille donnée, pour éviter qu'il ne soit
* trop long lors de l'affichage
* @param String texte à couper
* @param int taille maximum du texte
*/
function couperTexte($texte, $taille = 50)
{
$texte = substr($texte, 0, 400 + 2*$taille); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
// on utilise les \r pour passer entre les gouttes
$texte = str_replace("\r\n", "\n", $texte);
$texte = str_replace("\r", "\n", $texte);
// sauts de ligne et paragraphes
$texte = ereg_replace("\n\n+", "\r", $texte);
$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte);
// supprimer les traits, lignes etc
$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte);
// supprimer les tags
$texte = $this->supprimerTags($texte);
$texte = trim(str_replace("\n"," ", $texte));
$texte .= "\n"; // marquer la fin
// travailler en accents charset
// On supprime dans Papyrus car cela tire trop de fonctions...
//$texte = $this->filtrer_entites($texte);
// supprimer les liens
$texte = ereg_replace("\[->([^]]*)\]","\\1", $texte); // liens sans texte
$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte);
// supprimer les notes
$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);
// supprimer les codes typos
$texte = ereg_replace("[}{]", "", $texte);
// supprimer les tableaux
$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte);
// couper au mot precedent
$long = $this->gererSubstr($texte, 0, max($taille-4,1));
$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
$points = MORE_LG_RESULTAT_ETC;
// trop court ? ne pas faire de (...)
if (strlen($court) < max(0.75 * $taille,2)) {
$points = '';
$long = $this->gererSubstr($texte, 0, $taille);
$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long);
// encore trop court ? couper au caractere
if (strlen($texte) < 0.75 * $taille)
$texte = $long;
} else
$texte = $court;
if (strpos($texte, "\n")) // la fin est encore la : c'est qu'on n'a pas de texte de suite
$points = '';
// remettre les paragraphes
$texte = ereg_replace("\r+", "\n\n", $texte);
// supprimer l'eventuelle entite finale mal coupee
$texte = preg_replace('/&#?[a-z0-9]*$/', '', $texte);
return trim($texte).$points;
}
// Gerer les outils mb_string
// Fichier : inc_texte.php3
function gererSubstr($c, $start=0, $end='')
{
// methode substr normale
if ($end) {
return substr($c, $start, $end);
} else {
return substr($c, $start);
}
}
 
// Suppression basique et brutale de tous les <...>
// Fichier : inc_filtres.php3
function supprimerTags($texte, $rempl = "")
{
$texte = preg_replace(",<[^>]*>,U", $rempl, $texte);
// ne pas oublier un < final non ferme
$texte = str_replace('<', ' ', $texte);
return $texte;
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.12 2007-10-29 18:29:30 jp_milcent
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes.
*
* Revision 1.11 2007-01-02 18:49:22 jp_milcent
* Amélioration de la gestion du motif.
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.
/trunk/papyrus/applettes/moteur_recherche/configuration/more_config_bazar.inc.php
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/papyrus/applettes/moteur_recherche/configuration/more_config_bazar.inc.php
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property