Subversion Repositories Applications.papyrus

Rev

Rev 1678 | Rev 1934 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1678 Rev 1933
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
*