/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/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/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 |
/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 |
* |