X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fsearch%2Fclasses.inc.php;h=91c924dfd4753d0497e3ad450f470d1788bc31da;hb=a7d35093a40837b3a17d7fbac0259995f084812c;hp=8a2710146b7de268cfff5bbdf065e0149e209a8b;hpb=137e819f19e50f84f6c44bc42dff2b6b69f14d6a;p=platal.git diff --git a/modules/search/classes.inc.php b/modules/search/classes.inc.php index 8a27101..91c924d 100644 --- a/modules/search/classes.inc.php +++ b/modules/search/classes.inc.php @@ -1,6 +1,6 @@ 0 AS actif,'; + (COUNT(em.email) > 0 OR FIND_IN_SET("googleapps", u.mail_storage) > 0) AS actif,'; // hide private information if not logged if (S::logged()) $globals->search->result_fields .=' @@ -96,7 +96,7 @@ class ThrowError $page->changeTpl('search/index.tpl'); $page->assign('xorg_title','Polytechnique.org - Annuaire'); $page->assign('baseurl', $globals->baseurl); - $page->trig('Erreur : '.$explain); + $page->trigError($explain); $page->run(); } } @@ -254,7 +254,7 @@ class QuickSearch extends SField $this->strings = preg_split("![^a-zA-Z%]+!",$s, -1, PREG_SPLIT_NO_EMPTY); if (count($this->strings) > 5) { global $page; - $page->trig("Tu as indiqué trop d'éléments dans ta recherche, seuls les 5 premiers seront pris en compte"); + $page->trigWarning("Tu as indiqué trop d'éléments dans ta recherche, seuls les 5 premiers seront pris en compte"); $this->strings = array_slice($this->strings, 0, 5); } @@ -307,8 +307,8 @@ class QuickSearch extends SField $where[] = 'ems.email = ' . XDB::escape($this->email); } if (!empty($this->ip)) { - $ip = XDB::escape($this->ip); - $where[] = "( ls.ip = $ip OR ls.forward_ip = $ip )"; + $ip = ip_to_uint($this->ip); + $where[] = "( ls.ip = $ip OR ls.forward_ip = $ip ) AND ls.suid = 0"; } return join(" AND ", $where); @@ -755,6 +755,11 @@ class SFieldGroup { $this->fields = $_fields; $this->and = $_and; + foreach ($this->fields as $key=>&$field) { + if (is_null($field)) { + unset($this->fields[$key]); + } + } } // }}} @@ -764,7 +769,9 @@ class SFieldGroup { $b = true; for ($i=0 ; $b && $ifields) ; $i++) { - $b = $b && $this->fields[$i]->too_large(); + if (!is_null($this->fields[$i])) { + $b = $b && $this->fields[$i]->too_large(); + } } return $b; }