Subversion Repositories Applications.papyrus

Rev

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

Rev 1027 Rev 1032
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_papyrus_menu.class.php,v 1.7 2006-10-10 13:28:13 jp_milcent Exp $
24
// CVS : $Id: more_recherche_papyrus_menu.class.php,v 1.8 2006-10-16 14:11:30 jp_milcent Exp $
25
/**
25
/**
26
* Classe permettant d'effectuer des recherches sur les informations des menus de Papyrus.
26
* Classe permettant d'effectuer des recherches sur les informations des menus de Papyrus.
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
* Utilisation des bibliothèques inclue par Papyrus :
29
* Utilisation des bibliothèques inclue par Papyrus :
Line 36... Line 36...
36
//Auteur original :
36
//Auteur original :
37
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
38
//Autres auteurs :
38
//Autres auteurs :
39
*@author        aucun
39
*@author        aucun
40
*@copyright     Tela-Botanica 2000-2004
40
*@copyright     Tela-Botanica 2000-2004
41
*@version       $Revision: 1.7 $ $Date: 2006-10-10 13:28:13 $
41
*@version       $Revision: 1.8 $ $Date: 2006-10-16 14:11:30 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
Line 80... Line 80...
80
            // Récupération des infos du menu courant
80
            // Récupération des infos du menu courant
81
            $aso_menu_info = GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
81
            $aso_menu_info = GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
Line 82... Line 82...
82
            
82
            
83
            // Récupération du contenu du menu courant
83
            // Récupération du contenu du menu courant
84
            $aso_menu_contenu = GEN_lireContenuMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
84
            $aso_menu_contenu = GEN_lireContenuMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
85
            
-
 
86
            // Création de l'url
-
 
87
            // TODO : utiliser comme pour spip un fichier de config spécifique pour virer PAP_URL d'ici
-
 
88
            $une_url =& new Pap_URL(PAP_URL);
-
 
89
            $une_url->setId($menu_id);
-
 
90
            $aso_resultat['url'] = $une_url->getURL();
-
 
91
            
85
			
92
            // Récupération du titre de la page
-
 
93
            if (trim($aso_menu_info['gm_nom']) != '') {
-
 
94
                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_nom']);
86
			// Fusion des deux tableaux de champs à analyser
95
            } else if (trim($aso_menu_info['gm_titre']) != '') {
-
 
96
                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre']);
-
 
97
            } else if (trim($aso_menu_info['gm_titre_alternatif']) != '') {
-
 
98
                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre_alternatif']);
-
 
99
            }
-
 
100
            $aso_resultat['hreflang'] = htmlentities($aso_menu_info['gm_ce_i18n']);
-
 
101
            $raccourci_txt = '';
-
 
102
            $aso_resultat['accesskey'] = htmlentities($aso_menu_info['gm_raccourci_clavier']);
-
 
103
            if ($aso_resultat['accesskey'] != '') {
-
 
104
                $raccourci_txt =    MORE_LG_RESULTAT_CADRE_OUVRIR.
-
 
105
                                    MORE_LG_RESULTAT_RACCOURCI.$aso_resultat['accesskey'].' '.
-
 
106
                                    MORE_LG_RESULTAT_CADRE_FERMER.MORE_LG_RESULTAT_POINT.' ';
-
 
107
            }
-
 
108
            $aso_resultat['title'] = htmlentities($raccourci_txt.$aso_menu_info['gm_description_resume']);
-
 
109
            
-
 
110
            $aso_resultat['description'] = htmlentities($aso_menu_info['gm_description_libre']);
-
 
111
            if (($jour = date('d', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
-
 
112
                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
-
 
113
            }
-
 
114
            if (($mois = $this->traduireMois(date('m', strtotime($aso_menu_info['gm_date_creation'] ))) ) != '' ) {
-
 
115
                $aso_resultat['date_creation'] .= '<span class="page_modification_mois"> '.$mois.'</span>'."\n";
-
 
116
            }
-
 
117
            if (($annee = date('Y', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
-
 
118
                $aso_resultat['date_creation'] .= '<span class="page_modification_annee"> '.$annee.'</span>'."\n";
-
 
119
            }
87
			$aso_menu = array_merge($aso_menu_info, $aso_menu_contenu);
120
            
88
			
121
            // Analyse du poids de cette page vis à vis des méta informations
89
            // Analyse du poids de cette page vis à vis des méta informations et du contenu
122
            $tab_champs_a_visiter = array(  'gm_nom', 'gm_titre', 'gm_titre_alternatif', 'gm_mots_cles', 
90
            $tab_champs_a_visiter = array(  'gm_nom', 'gm_titre', 'gm_titre_alternatif', 'gm_mots_cles', 
123
                                            'gm_description_libre', 'gm_description_resume', 'gm_description_table_matieres', 
91
                                            'gm_description_libre', 'gm_description_resume', 'gm_description_table_matieres', 
124
                                            'gm_source', 'gm_auteur', 'gm_contributeur', 'gm_editeur', 'gm_categorie', 
92
                                            'gm_source', 'gm_auteur', 'gm_contributeur', 'gm_editeur', 'gm_categorie', 
-
 
93
                                            'gm_public', 'gmc_contenu');
-
 
94
			$tab_motif = explode(' ', $motif);
125
                                            'gm_public');
95
			$bool_operateur_et = false;
-
 
96
            foreach ($tab_champs_a_visiter as $val) {
-
 
97
                $compteur_mot = 0;
126
            foreach ($tab_champs_a_visiter as $val) {
98
                foreach ($tab_motif as $mot_motif) {
-
 
99
                	$nbre_mot = $this->retournerOccurenceMotif($mot_motif, $aso_menu[$val]);
-
 
100
                	if ($nbre_mot > 0) {
-
 
101
                		$compteur_mot++;
-
 
102
                	}
-
 
103
                	$aso_resultat['poids'] += $nbre_mot;
-
 
104
                }
-
 
105
                if ($compteur_mot == count($tab_motif)) {
-
 
106
                	$bool_operateur_et = true;
127
                $aso_resultat['poids'] += $this->retournerOccurenceMotif($motif, $aso_menu_info[$val]);
107
                }
128
            }
108
            }
129
            
109
            
-
 
110
            // Si le menu contient les mots recherchés nous poursuivons 
-
 
111
			if ($aso_resultat['poids'] > 0 && $bool_operateur_et == true) {
130
            // Analyse du poids de cette page vis à vis du contenu
112
                // Création de l'url
-
 
113
	            // TODO : utiliser comme pour spip un fichier de config spécifique pour virer PAP_URL d'ici
-
 
114
	            $une_url =& new Pap_URL(PAP_URL);
-
 
115
	            $une_url->setId($menu_id);
131
            $aso_resultat['poids'] += $this->retournerOccurenceMotif($motif, $aso_menu_contenu['gmc_contenu']);
116
	            $aso_resultat['url'] = $une_url->getURL();
-
 
117
	            
-
 
118
	            // Récupération du titre de la page
-
 
119
	            if (trim($aso_menu_info['gm_nom']) != '') {
-
 
120
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_nom']);
-
 
121
	            } else if (trim($aso_menu_info['gm_titre']) != '') {
-
 
122
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre']);
-
 
123
	            } else if (trim($aso_menu_info['gm_titre_alternatif']) != '') {
-
 
124
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre_alternatif']);
-
 
125
	            }
-
 
126
	            $aso_resultat['hreflang'] = htmlentities($aso_menu_info['gm_ce_i18n']);
-
 
127
	            $raccourci_txt = '';
132
            
128
	            $aso_resultat['accesskey'] = htmlentities($aso_menu_info['gm_raccourci_clavier']);
-
 
129
	            if ($aso_resultat['accesskey'] != '') {
-
 
130
	                $raccourci_txt =    MORE_LG_RESULTAT_CADRE_OUVRIR.
-
 
131
	                                    MORE_LG_RESULTAT_RACCOURCI.$aso_resultat['accesskey'].' '.
-
 
132
	                                    MORE_LG_RESULTAT_CADRE_FERMER.MORE_LG_RESULTAT_POINT.' ';
-
 
133
	            }
-
 
134
	            $aso_resultat['title'] = htmlentities($raccourci_txt.$aso_menu_info['gm_description_resume']);
-
 
135
	            
-
 
136
	            $aso_resultat['description'] = htmlentities($aso_menu_info['gm_description_libre']);
-
 
137
	            if (($jour = date('d', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
-
 
138
	                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
-
 
139
	            }
-
 
140
	            if (($mois = $this->traduireMois(date('m', strtotime($aso_menu_info['gm_date_creation'] ))) ) != '' ) {
-
 
141
	                $aso_resultat['date_creation'] .= '<span class="page_modification_mois"> '.$mois.'</span>'."\n";
-
 
142
	            }
-
 
143
	            if (($annee = date('Y', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
-
 
144
	                $aso_resultat['date_creation'] .= '<span class="page_modification_annee"> '.$annee.'</span>'."\n";
-
 
145
	            }
133
            if ($aso_resultat['poids'] > 0) {
146
	                
134
                $this->setResultat($aso_resultat);
147
                $this->setResultat($aso_resultat);
135
            }
148
            }
136
        }
149
        }
137
        return $this->getResultats();
150
        return $this->getResultats();
138
    }
151
    }
Line 139... Line 152...
139
}
152
}
140
 
153
 
141
/* +--Fin du code ----------------------------------------------------------------------------------------+
154
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
155
*
-
 
156
* $Log: not supported by cvs2svn $
-
 
157
* Revision 1.7  2006/10/10 13:28:13  jp_milcent
142
*
158
* Suppression d'une variable et utilisation de la constante PAP_URL
143
* $Log: not supported by cvs2svn $
159
*
144
* Revision 1.6  2006/05/19 10:04:55  jp_milcent
160
* Revision 1.6  2006/05/19 10:04:55  jp_milcent
145
* Ajout d'un moteur de recherche analysant les articles des sites sous Spip.
161
* Ajout d'un moteur de recherche analysant les articles des sites sous Spip.
146
*
162
*