| Line 19... |
Line 19... |
| 19 |
// | |
|
19 |
// | |
|
| 20 |
// | You should have received a copy of the GNU General Public License |
|
20 |
// | You should have received a copy of the GNU General Public License |
|
| 21 |
// | along with Foobar; if not, write to the Free Software |
|
21 |
// | along with Foobar; if not, write to the Free Software |
|
| 22 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
| 23 |
// +------------------------------------------------------------------------------------------------------+
|
23 |
// +------------------------------------------------------------------------------------------------------+
|
| 24 |
// CVS : $Id: more_recherche.class.php,v 1.12 2007-10-29 18:29:30 jp_milcent Exp $
|
24 |
// CVS : $Id: more_recherche.class.php,v 1.13 2008-10-21 15:24:50 aperonnet Exp $
|
| 25 |
/**
|
25 |
/**
|
| 26 |
* Classe permettant d'effectuer des recherches sur les métas informations des menus.
|
26 |
* Classe permettant d'effectuer des recherches sur les métas informations des menus.
|
| 27 |
*
|
27 |
*
|
| 28 |
* Permet de rechercher et classer les menus en fonction d'une chaine.
|
28 |
* Permet de rechercher et classer les menus en fonction d'une chaine.
|
| 29 |
*
|
29 |
*
|
| Line 32... |
Line 32... |
| 32 |
//Auteur original :
|
32 |
//Auteur original :
|
| 33 |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
33 |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
| 34 |
//Autres auteurs :
|
34 |
//Autres auteurs :
|
| 35 |
*@author aucun
|
35 |
*@author aucun
|
| 36 |
*@copyright Tela-Botanica 2000-2004
|
36 |
*@copyright Tela-Botanica 2000-2004
|
| 37 |
*@version $Revision: 1.12 $ $Date: 2007-10-29 18:29:30 $
|
37 |
*@version $Revision: 1.13 $ $Date: 2008-10-21 15:24:50 $
|
| 38 |
// +------------------------------------------------------------------------------------------------------+
|
38 |
// +------------------------------------------------------------------------------------------------------+
|
| 39 |
*/
|
39 |
*/
|
| Line 40... |
Line 40... |
| 40 |
|
40 |
|
| 41 |
// +------------------------------------------------------------------------------------------------------+
|
41 |
// +------------------------------------------------------------------------------------------------------+
|
| Line 220... |
Line 220... |
| 220 |
return 'décembre';
|
220 |
return 'décembre';
|
| 221 |
default:
|
221 |
default:
|
| 222 |
return '';
|
222 |
return '';
|
| 223 |
}
|
223 |
}
|
| 224 |
}
|
224 |
}
|
| - |
|
225 |
|
| - |
|
226 |
/**
|
| - |
|
227 |
* Coupe un texte suivant une taille donnée, pour éviter qu'il ne soit
|
| - |
|
228 |
* trop long lors de l'affichage
|
| - |
|
229 |
* @param String texte à couper
|
| - |
|
230 |
* @param int taille maximum du texte
|
| - |
|
231 |
*/
|
| - |
|
232 |
function couperTexte($texte, $taille = 50)
|
| - |
|
233 |
{
|
| - |
|
234 |
$texte = substr($texte, 0, 400 + 2*$taille); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
|
| - |
|
235 |
|
| - |
|
236 |
// on utilise les \r pour passer entre les gouttes
|
| - |
|
237 |
$texte = str_replace("\r\n", "\n", $texte);
|
| - |
|
238 |
$texte = str_replace("\r", "\n", $texte);
|
| - |
|
239 |
|
| - |
|
240 |
// sauts de ligne et paragraphes
|
| - |
|
241 |
$texte = ereg_replace("\n\n+", "\r", $texte);
|
| - |
|
242 |
$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte);
|
| - |
|
243 |
|
| - |
|
244 |
// supprimer les traits, lignes etc
|
| - |
|
245 |
$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte);
|
| - |
|
246 |
|
| - |
|
247 |
// supprimer les tags
|
| - |
|
248 |
$texte = $this->supprimerTags($texte);
|
| - |
|
249 |
$texte = trim(str_replace("\n"," ", $texte));
|
| - |
|
250 |
$texte .= "\n"; // marquer la fin
|
| - |
|
251 |
|
| - |
|
252 |
// travailler en accents charset
|
| - |
|
253 |
// On supprime dans Papyrus car cela tire trop de fonctions...
|
| - |
|
254 |
//$texte = $this->filtrer_entites($texte);
|
| - |
|
255 |
|
| - |
|
256 |
// supprimer les liens
|
| - |
|
257 |
$texte = ereg_replace("\[->([^]]*)\]","\\1", $texte); // liens sans texte
|
| - |
|
258 |
$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte);
|
| - |
|
259 |
|
| - |
|
260 |
// supprimer les notes
|
| - |
|
261 |
$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);
|
| - |
|
262 |
|
| - |
|
263 |
// supprimer les codes typos
|
| - |
|
264 |
$texte = ereg_replace("[}{]", "", $texte);
|
| - |
|
265 |
|
| - |
|
266 |
// supprimer les tableaux
|
| - |
|
267 |
$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte);
|
| - |
|
268 |
|
| - |
|
269 |
// couper au mot precedent
|
| - |
|
270 |
$long = $this->gererSubstr($texte, 0, max($taille-4,1));
|
| - |
|
271 |
$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
|
| - |
|
272 |
$points = MORE_LG_RESULTAT_ETC;
|
| - |
|
273 |
|
| - |
|
274 |
// trop court ? ne pas faire de (...)
|
| - |
|
275 |
if (strlen($court) < max(0.75 * $taille,2)) {
|
| - |
|
276 |
$points = '';
|
| - |
|
277 |
$long = $this->gererSubstr($texte, 0, $taille);
|
| - |
|
278 |
$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long);
|
| - |
|
279 |
// encore trop court ? couper au caractere
|
| - |
|
280 |
if (strlen($texte) < 0.75 * $taille)
|
| - |
|
281 |
$texte = $long;
|
| - |
|
282 |
} else
|
| - |
|
283 |
$texte = $court;
|
| - |
|
284 |
|
| - |
|
285 |
if (strpos($texte, "\n")) // la fin est encore la : c'est qu'on n'a pas de texte de suite
|
| - |
|
286 |
$points = '';
|
| - |
|
287 |
|
| - |
|
288 |
// remettre les paragraphes
|
| - |
|
289 |
$texte = ereg_replace("\r+", "\n\n", $texte);
|
| - |
|
290 |
|
| - |
|
291 |
// supprimer l'eventuelle entite finale mal coupee
|
| - |
|
292 |
$texte = preg_replace('/&#?[a-z0-9]*$/', '', $texte);
|
| - |
|
293 |
|
| - |
|
294 |
return trim($texte).$points;
|
| - |
|
295 |
}
|
| - |
|
296 |
|
| - |
|
297 |
// Gerer les outils mb_string
|
| - |
|
298 |
// Fichier : inc_texte.php3
|
| - |
|
299 |
function gererSubstr($c, $start=0, $end='')
|
| - |
|
300 |
{
|
| - |
|
301 |
// methode substr normale
|
| - |
|
302 |
if ($end) {
|
| - |
|
303 |
return substr($c, $start, $end);
|
| - |
|
304 |
} else {
|
| - |
|
305 |
return substr($c, $start);
|
| - |
|
306 |
}
|
| - |
|
307 |
}
|
| - |
|
308 |
|
| - |
|
309 |
// Suppression basique et brutale de tous les <...>
|
| - |
|
310 |
// Fichier : inc_filtres.php3
|
| - |
|
311 |
function supprimerTags($texte, $rempl = "")
|
| - |
|
312 |
{
|
| - |
|
313 |
$texte = preg_replace(",<[^>]*>,U", $rempl, $texte);
|
| - |
|
314 |
// ne pas oublier un < final non ferme
|
| - |
|
315 |
$texte = str_replace('<', ' ', $texte);
|
| - |
|
316 |
return $texte;
|
| - |
|
317 |
}
|
| 225 |
}
|
318 |
}
|
| Line 226... |
Line 319... |
| 226 |
|
319 |
|
| 227 |
/* +--Fin du code ----------------------------------------------------------------------------------------+
|
320 |
/* +--Fin du code ----------------------------------------------------------------------------------------+
|
| 228 |
*
|
321 |
*
|
| - |
|
322 |
* $Log: not supported by cvs2svn $
|
| - |
|
323 |
* Revision 1.12 2007-10-29 18:29:30 jp_milcent
|
| - |
|
324 |
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes.
|
| 229 |
* $Log: not supported by cvs2svn $
|
325 |
*
|
| 230 |
* Revision 1.11 2007-01-02 18:49:22 jp_milcent
|
326 |
* Revision 1.11 2007-01-02 18:49:22 jp_milcent
|
| 231 |
* Amélioration de la gestion du motif.
|
327 |
* Amélioration de la gestion du motif.
|
| 232 |
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.
|
328 |
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.
|
| 233 |
*
|
329 |
*
|