Subversion Repositories Applications.papyrus

Rev

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

Rev 1934 Rev 1964
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.14 2008-10-21 16:54:18 aperonnet Exp $
24
// CVS : $Id: more_recherche.class.php,v 1.15 2008-11-04 17:34:37 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.14 $ $Date: 2008-10-21 16:54:18 $
37
*@version       $Revision: 1.15 $ $Date: 2008-11-04 17:34:37 $
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
39
*/
39
*/
Line 40... Line 40...
40
 
40
 
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
Line 60... Line 60...
60
    // Accesseurs
60
    // Accesseurs
61
    function getMotif() {
61
    function getMotif() {
62
        return $this->motif;
62
        return $this->motif;
63
    }
63
    }
64
    function setMotif($motif) {
64
    function setMotif($motif) {
65
        $this->motif = $motif;
65
        $this->motif = $motif ;
66
    }
66
    }
67
    function getMoteurs() {
67
    function getMoteurs() {
68
        return $this->moteurs_recherches;
68
        return $this->moteurs_recherches;
69
    }
69
    }
70
    function getMoteur($id) {
70
    function getMoteur($id) {
Line 84... Line 84...
84
        $id_nouveau = count($this->resultats);
84
        $id_nouveau = count($this->resultats);
85
        $this->resultats[$id_nouveau] = $aso_page;
85
        $this->resultats[$id_nouveau] = $aso_page;
86
    }
86
    }
Line 87... Line 87...
87
    
87
    
-
 
88
    // Méthodes
-
 
89
    function eliminerAccents($motif)
-
 
90
    {
-
 
91
    	return strtr($motif,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç'",
-
 
92
                 "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc " ); 
Line 88... Line 93...
88
    // Méthodes
93
    }
89
    
94
    
90
    function ajouterRecherche(&$objet_recherche) {
95
    function ajouterRecherche(&$objet_recherche) {
Line 96... Line 101...
96
            $this->setResultats(array_merge((array)$this->getResultats(),(array)$val->rechercherMotif($this->getMotif())));
101
            $this->setResultats(array_merge((array)$this->getResultats(),(array)$val->rechercherMotif($this->getMotif())));
97
        }
102
        }
98
        $aso_resultats = $this->getResultats();
103
        $aso_resultats = $this->getResultats();
Line 99... Line 104...
99
        
104
        
100
        // on teste l'existence de la fonction anonyme car sinon bug d'inclusion très pénible !
105
        // on teste l'existence de la fonction anonyme car sinon bug d'inclusion très pénible !
Line 101... Line 106...
101
	    if (function_exists('comparer')) {
106
	    if (!function_exists('comparer')) {
102
	    	
107
	    	
103
	       	function comparer($a, $b) {
108
	       	function comparer($a, $b) {
104
	            if ($a['poids'] > $b['poids']) {
109
	            if ($a['poids'] > $b['poids']) {
Line 156... Line 161...
156
		}
161
		}
157
		// Nous recherchons chaque mot
162
		// Nous recherchons chaque mot
158
		$compteur_mot = 0;
163
		$compteur_mot = 0;
159
		foreach ($tab_motif as $mot) {
164
		foreach ($tab_motif as $mot) {
160
			//$nbre_correspondance += preg_match_all('/'.$mot.'/i', $texte, $tab_morceaux);
165
			//$nbre_correspondance += preg_match_all('/'.$mot.'/i', $texte, $tab_morceaux);
161
			$nbre_correspondance = substr_count(strtolower($texte), strtolower($mot));
166
			$nbre_correspondance = substr_count($this->eliminerAccents(strtolower($texte)), $this->eliminerAccents(strtolower($mot)));
162
			if ($nbre_correspondance > 0) {
167
			if ($nbre_correspondance > 0) {
163
				$compteur_mot++;
168
				$compteur_mot++;
164
			}
169
			}
165
			$nbre_correspondance_total += $nbre_correspondance; 
170
			$nbre_correspondance_total += $nbre_correspondance; 
166
		}
171
		}
Line 171... Line 176...
171
			return 0;
176
			return 0;
172
		}
177
		}
173
	}
178
	}
Line 174... Line 179...
174
	
179
	
175
	function traiterMotif($motif, $type = 0)
180
	function traiterMotif($motif, $type = 0)
176
    {
181
    { 	
177
    	switch ($type) {
182
    	switch ($type) {
178
			case 'simple' :
183
			case 'simple' :
179
				return trim(stripslashes($motif));
184
				return trim(stripslashes($motif));
180
				break;
185
				break;
Line 323... Line 328...
323
}
328
}
Line 324... Line 329...
324
 
329
 
325
/* +--Fin du code ----------------------------------------------------------------------------------------+
330
/* +--Fin du code ----------------------------------------------------------------------------------------+
326
*
331
*
-
 
332
* $Log: not supported by cvs2svn $
-
 
333
* Revision 1.14  2008-10-21 16:54:18  aperonnet
-
 
334
* correction de bug de double inclusion de fichier quand une balise syndication est présente dans la page
327
* $Log: not supported by cvs2svn $
335
*
328
* Revision 1.13  2008-10-21 15:24:50  aperonnet
336
* Revision 1.13  2008-10-21 15:24:50  aperonnet
329
* Ajout de résultats issus des fiches de bazar pour le moteur de recherche
337
* Ajout de résultats issus des fiches de bazar pour le moteur de recherche
330
*
338
*
331
* Revision 1.12  2007-10-29 18:29:30  jp_milcent
339
* Revision 1.12  2007-10-29 18:29:30  jp_milcent