source: pmb4.2/trunk/fuentes/pmb/classes/tags.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// © 2006 mental works / www.mental-works.com contact@mental-works.com
5//      repris et corrigé par PMB Services
6// +-------------------------------------------------+
7// $Id: tags.class.php,v 1.6 2015-04-03 11:16:19 jpermanne Exp $
8
9// définition de la classe d'affichage des 'tags'
10
11
12
13class tags {
14
15        // ---------------------------------------------------------------
16        //              propriétés de la classe
17        // ---------------------------------------------------------------
18        var $search_tag=''; 
19        // ---------------------------------------------------------------
20        //              constructeur
21        // ---------------------------------------------------------------
22        function tags() {               
23        }
24       
25        function get_array($start='', $pos_cursor=0){
26                global $dbh;
27                global $pmb_keyword_sep;
28               
29                $liste_mots = array();
30                $liste_res = array();
31                $tags = array();
32                $liste_finale = array();
33               
34                $deb_chaine='';
35                $fin_chaine='';
36
37                if(strlen($start)==$pos_cursor){
38                        $liste_mots=explode($pmb_keyword_sep,$start);
39                        $mot = array_pop($liste_mots);
40                        $deb_chaine = implode($pmb_keyword_sep,$liste_mots);
41                        if(trim($deb_chaine)!=='') $deb_chaine.=$pmb_keyword_sep;                       
42                } else {
43                        $liste_mots = explode($pmb_keyword_sep,substr($start,0,$pos_cursor));
44                        $mot = array_pop($liste_mots);
45                        $deb_chaine = implode($pmb_keyword_sep,$liste_mots);
46                        if (trim($deb_chaine)!=='') $deb_chaine.=$pmb_keyword_sep;
47                        $liste_mots = explode($pmb_keyword_sep,substr($start,$pos_cursor));
48                        array_shift($liste_mots);
49                        $fin_chaine = $pmb_keyword_sep.implode($pmb_keyword_sep,$liste_mots);   
50                }
51                $mot=trim($mot);
52                if ($mot==='') return $liste_finale;
53               
54                $this->search_tag = $mot;
55
56                $requete = "select distinct index_l from notices where index_l is not null and index_l like '".addslashes($mot)."%' or index_l like '%".$pmb_keyword_sep.addslashes($mot)."%' ";
57                $res = pmb_mysql_query($requete,$dbh);
58                while(($mot_trouve=pmb_mysql_fetch_object($res))){
59                        $liste_tmp = explode($pmb_keyword_sep,$mot_trouve->index_l);
60                        foreach($liste_tmp as $v) {
61                                if (strip_empty_chars(substr($v,0,strlen($mot))) == strip_empty_chars($mot)) $liste_res[]=$v;
62                        }
63                }
64                $liste_res=array_unique($liste_res);
65                asort($liste_res);
66               
67                foreach($liste_res as $v) {
68                        $liste_finale[] = array($v=>$deb_chaine.$v.$fin_chaine); 
69                }
70                return $liste_finale;
71        }
72       
73       
74        function get_taille_search(){
75                return strlen($this->search_tag);
76        }
77       
78}
79?>
Note: See TracBrowser for help on using the repository browser.