Subversion Repositories Applications.papyrus

Rev

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

Rev 1688 Rev 1852
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.13 2007-10-29 18:29:30 jp_milcent Exp $
24
// CVS : $Id: more_recherche_papyrus_menu.class.php,v 1.13.2.1 2008-08-08 15:59:09 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.13 $ $Date: 2007-10-29 18:29:30 $
41
*@version       $Revision: 1.13.2.1 $ $Date: 2008-08-08 15:59:09 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
Line 77... Line 77...
77
                                    'hreflang' => '', 'accesskey' => '', 'title' => '',
77
                                    'hreflang' => '', 'accesskey' => '', 'title' => '',
78
                                    'date_creation' => '', 'description' => '');
78
                                    'date_creation' => '', 'description' => '');
Line 79... Line 79...
79
            
79
            
80
            // Récupération des infos du menu courant : transtypage pour éviter les erreur avec array_merge
80
            // Récupération des infos du menu courant : transtypage pour éviter les erreur avec array_merge
81
            $aso_menu_info = (array) GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
-
 
-
 
81
            $aso_menu_info = (array) GEN_lireInfoMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
-
 
82
            // Nous vérifions que le menu à une date de validité valide
82
            
83
            if ($aso_menu_info['gm_date_fin_validite'] == '0000-00-00 00:00:00' || strtotime($aso_menu_info['gm_date_fin_validite']) > time() ) {
83
            // Récupération du contenu du menu courant : transtypage pour éviter les erreur avec array_merge
84
	            // Récupération du contenu du menu courant : transtypage pour éviter les erreur avec array_merge
84
            $aso_menu_contenu = (array) GEN_lireContenuMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
85
	            $aso_menu_contenu = (array) GEN_lireContenuMenu($db, $menu_id, DB_FETCHMODE_ASSOC);
85
			
86
				
86
			// Fusion des deux tableaux de champs à analyser
87
				// Fusion des deux tableaux de champs à analyser
87
			$aso_menu = array_merge($aso_menu_info, $aso_menu_contenu);
88
				$aso_menu = array_merge($aso_menu_info, $aso_menu_contenu);
88
			
89
				
89
            // Analyse du poids de cette page vis à vis des méta informations et du contenu
90
	            // Analyse du poids de cette page vis à vis des méta informations et du contenu
90
            $tab_champs_a_visiter = array(  'gm_nom', 'gm_titre', 'gm_titre_alternatif', 'gm_mots_cles', 
91
	            $tab_champs_a_visiter = array(  'gm_nom', 'gm_titre', 'gm_titre_alternatif', 'gm_mots_cles', 
91
                                            'gm_description_libre', 'gm_description_resume', 'gm_description_table_matieres', 
92
	                                            'gm_description_libre', 'gm_description_resume', 'gm_description_table_matieres', 
92
                                            'gm_source', 'gm_auteur', 'gm_contributeur', 'gm_editeur', 'gm_categorie', 
93
	                                            'gm_source', 'gm_auteur', 'gm_contributeur', 'gm_editeur', 'gm_categorie', 
93
                                            'gm_public', 'gmc_contenu');
94
	                                            'gm_public', 'gmc_contenu');
94
			foreach ($tab_champs_a_visiter as $val) {
95
				foreach ($tab_champs_a_visiter as $val) {
95
                // Vérification que le champ existe et contient quelque chose 
96
	                // Vérification que le champ existe et contient quelque chose 
96
                if (isset($aso_menu[$val]) && $aso_menu[$val] != '') {
97
	                if (isset($aso_menu[$val]) && $aso_menu[$val] != '') {
97
					$aso_resultat['poids'] += $this->retournerOccurenceMotif($motif, $aso_menu[$val]);
98
						$aso_resultat['poids'] += $this->retournerOccurenceMotif($motif, $aso_menu[$val]);
98
                }
-
 
99
            }
-
 
100
            
-
 
101
            // Si le menu contient les mots recherchés nous poursuivons 
-
 
102
			if ($aso_resultat['poids'] > 0) {
-
 
103
                // Création de l'url
-
 
104
	            // TODO : utiliser comme pour spip un fichier de config spécifique pour virer PAP_URL d'ici
-
 
105
	            $une_url =& new Pap_URL(PAP_URL);
-
 
106
	            $une_url->setId($menu_id);
-
 
107
	            $aso_resultat['url_simple'] = $une_url->getURL();
-
 
108
	            $une_url->addQueryString('var_recherche', $this->traiterMotif($motif, 'url'), true);
-
 
109
	            $aso_resultat['url'] = $une_url->getURL();
-
 
110
	            $une_url->removeQueryString('var_recherche');
-
 
111
	            
-
 
112
	            // Récupération du titre de la page
-
 
113
	            if (trim($aso_menu_info['gm_nom']) != '') {
-
 
114
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_nom']);
-
 
115
	            } else if (trim($aso_menu_info['gm_titre']) != '') {
-
 
116
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre']);
-
 
117
	            } else if (trim($aso_menu_info['gm_titre_alternatif']) != '') {
-
 
118
	                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre_alternatif']);
-
 
119
	            }
-
 
120
	            $aso_resultat['hreflang'] = htmlentities($aso_menu_info['gm_ce_i18n']);
-
 
121
	            $raccourci_txt = '';
-
 
122
	            $aso_resultat['accesskey'] = htmlentities($aso_menu_info['gm_raccourci_clavier']);
-
 
123
	            if ($aso_resultat['accesskey'] != '') {
-
 
124
	                $raccourci_txt =    MORE_LG_RESULTAT_CADRE_OUVRIR.
-
 
125
	                                    MORE_LG_RESULTAT_RACCOURCI.$aso_resultat['accesskey'].' '.
-
 
126
	                                    MORE_LG_RESULTAT_CADRE_FERMER.MORE_LG_RESULTAT_POINT.' ';
99
	                }
127
	            }
-
 
Line -... Line 100...
-
 
100
	            }
-
 
101
	            
-
 
102
	            // Si le menu contient les mots recherchés nous poursuivons 
-
 
103
				if ($aso_resultat['poids'] > 0) {
-
 
104
	                // Création de l'url
-
 
105
		            // TODO : utiliser comme pour spip un fichier de config spécifique pour virer PAP_URL d'ici
-
 
106
		            $une_url =& new Pap_URL(PAP_URL);
-
 
107
		            $une_url->setId($menu_id);
-
 
108
		            $aso_resultat['url_simple'] = $une_url->getURL();
-
 
109
		            $une_url->addQueryString('var_recherche', $this->traiterMotif($motif, 'url'), true);
-
 
110
		            $aso_resultat['url'] = $une_url->getURL();
-
 
111
		            $une_url->removeQueryString('var_recherche');
-
 
112
		            
-
 
113
		            // Récupération du titre de la page
-
 
114
		            if (trim($aso_menu_info['gm_nom']) != '') {
-
 
115
		                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_nom']);
-
 
116
		            } else if (trim($aso_menu_info['gm_titre']) != '') {
-
 
117
		                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre']);
-
 
118
		            } else if (trim($aso_menu_info['gm_titre_alternatif']) != '') {
-
 
119
		                $aso_resultat['titre'] = htmlentities($aso_menu_info['gm_titre_alternatif']);
-
 
120
		            }
-
 
121
		            $aso_resultat['hreflang'] = htmlentities($aso_menu_info['gm_ce_i18n']);
-
 
122
		            $raccourci_txt = '';
-
 
123
		            $aso_resultat['accesskey'] = htmlentities($aso_menu_info['gm_raccourci_clavier']);
-
 
124
		            if ($aso_resultat['accesskey'] != '') {
-
 
125
		                $raccourci_txt =    MORE_LG_RESULTAT_CADRE_OUVRIR.
-
 
126
		                                    MORE_LG_RESULTAT_RACCOURCI.$aso_resultat['accesskey'].' '.
-
 
127
		                                    MORE_LG_RESULTAT_CADRE_FERMER.MORE_LG_RESULTAT_POINT.' ';
-
 
128
		            }
128
	            $aso_resultat['title'] = htmlentities($raccourci_txt.$aso_menu_info['gm_description_resume']);
129
		            $aso_resultat['title'] = htmlentities($raccourci_txt.$aso_menu_info['gm_description_resume']);
129
	            
130
		            
130
	            $aso_resultat['description'] = htmlentities($aso_menu_info['gm_description_libre']);
131
		            $aso_resultat['description'] = htmlentities($aso_menu_info['gm_description_libre']);
131
	            if (($jour = date('d', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
132
		            if (($jour = date('d', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
132
	                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
133
		                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
133
	            }
134
		            }
134
	            if (($mois = $this->traduireMois(date('m', strtotime($aso_menu_info['gm_date_creation'] ))) ) != '' ) {
135
		            if (($mois = $this->traduireMois(date('m', strtotime($aso_menu_info['gm_date_creation'] ))) ) != '' ) {
135
	                $aso_resultat['date_creation'] .= '<span class="page_modification_mois"> '.$mois.'</span>'."\n";
136
		                $aso_resultat['date_creation'] .= '<span class="page_modification_mois"> '.$mois.'</span>'."\n";
136
	            }
137
		            }
137
	            if (($annee = date('Y', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
138
		            if (($annee = date('Y', strtotime($aso_menu_info['gm_date_creation'] )) ) != 0 ) {
138
	                $aso_resultat['date_creation'] .= '<span class="page_modification_annee"> '.$annee.'</span>'."\n";
139
		                $aso_resultat['date_creation'] .= '<span class="page_modification_annee"> '.$annee.'</span>'."\n";
139
	            }
140
		            }
-
 
141
		                
140
	                
142
	                $this->setResultat($aso_resultat);
141
                $this->setResultat($aso_resultat);
143
				}
142
            }
144
            }
143
        }
145
        }
144
        return $this->getResultats();
146
        return $this->getResultats();
Line 145... Line 147...
145
    }
147
    }
146
}
148
}
147
 
149
 
-
 
150
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
151
*
-
 
152
* $Log: not supported by cvs2svn $
148
/* +--Fin du code ----------------------------------------------------------------------------------------+
153
* Revision 1.13  2007-10-29 18:29:30  jp_milcent
149
*
154
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes.
150
* $Log: not supported by cvs2svn $
155
*
151
* Revision 1.12  2007-01-02 18:49:22  jp_milcent
156
* Revision 1.12  2007-01-02 18:49:22  jp_milcent
152
* Amélioration de la gestion du motif.
157
* Amélioration de la gestion du motif.