X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fuserset.inc.php;h=63921604cb679b50dfbf8cde0fbdae33a0c28284;hb=5656271f16c8ab5b790fcefbcc6db25d4d7f6753;hp=0da93adfa0e5e87ba82a6c6fc60d96b27abecd8a;hpb=dd9bac8f7903e9924525ad8db3e38650ff5ad1b6;p=platal.git diff --git a/include/userset.inc.php b/include/userset.inc.php index 0da93ad..6392160 100644 --- a/include/userset.inc.php +++ b/include/userset.inc.php @@ -88,7 +88,7 @@ class SearchSet extends UserSet $qSearch = new QuickSearch('quick'); $fields = new SFieldGroup(true, array($qSearch)); if ($qSearch->isEmpty()) { - new ThrowError('Recherche trop générale.'); + new ThrowError('Aucun critère de recherche n\'est spécifié.'); } $this->score = $qSearch->get_score_statement(); $pwhere = $fields->get_where_statement(); @@ -374,5 +374,47 @@ class GeolocView implements PlView } } +class GadgetView implements PlView +{ + public function __construct(PlSet &$set, $data, array $params) + { + $this->set =& $set; + } + + public function fields() + { + return "u.user_id AS id, + u.*, a.alias AS forlife," . + (S::logged() ? "q.profile_mobile AS mobile, " : "IF(q.profile_mobile_pub = 'public', q.profile_mobile, NULL) as mobile, ") . + "u.perms != 'pending' AS inscrit, + u.perms != 'pending' AS wasinscrit, + u.deces != 0 AS dcd, u.deces, + FIND_IN_SET('femme', u.flags) AS sexe, + adr.city, gp.a2, gp.pays AS countrytxt, gr.name AS region" . + (S::logged() ? ", c.contact AS contact" : ''); + } + + public function joins() + { + return "LEFT JOIN adresses AS adr ON (u.user_id = adr.uid AND FIND_IN_SET('active', adr.statut)".(S::logged() ? "" : " AND adr.pub = 'public'").") + LEFT JOIN geoloc_pays AS gp ON (adr.country = gp.a2) + LEFT JOIN geoloc_region AS gr ON (adr.country = gr.a2 AND adr.region = gr.region)" . + (S::logged() ? + "LEFT JOIN contacts AS c On (c.contact = u.user_id AND c.uid = " . S::v('uid') . ")" + : ""); + } + + public function apply(PlatalPage &$page) + { + $page->assign_by_ref('set', + $this->set->get($this->fields(), $this->joins(), null, null, null, 5, 0)); + } + + public function args() + { + return null; + } +} + // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>