From 580912d12b142d2484bfe849df657fc163f712c4 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Tue, 8 Feb 2005 06:09:06 +0000 Subject: [PATCH] closes #109 some tiny corrections : * one bug in quick search (offset was ignored) * make 'modification date' checkboxes work again + Make search a real clean module with public include and hidden ones (like said in the R.I.P doc) git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-457 --- ChangeLog | 3 +- htdocs/advanced_search.php | 19 +++++++------ htdocs/search.php | 9 ++---- include/{xorg.search.inc.php => search.inc.php} | 32 ++++++++++++++-------- .../classes.inc.php} | 0 templates/search.adv.form.tpl | 2 +- templates/search.quick.form.tpl | 2 +- 7 files changed, 38 insertions(+), 29 deletions(-) rename include/{xorg.search.inc.php => search.inc.php} (87%) rename include/{search.classes.inc.php => search/classes.inc.php} (100%) diff --git a/ChangeLog b/ChangeLog index d3d903f..930befa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,7 +18,8 @@ New : Bug/Wish : - - #270: private/public flags are now used for search. -Car + - #109: Lots of sorting methods for search. -Car + - #270: Private/public flags are now used for search. -Car Fixes (from 0.9.4 branch) : diff --git a/htdocs/advanced_search.php b/htdocs/advanced_search.php index 47aa049..c25d670 100644 --- a/htdocs/advanced_search.php +++ b/htdocs/advanced_search.php @@ -20,7 +20,7 @@ ***************************************************************************/ require_once("xorg.inc.php"); -require_once("search.classes.inc.php"); +require_once('search.inc.php'); new_skinned_page('search.tpl', AUTH_COOKIE); $page->assign('advanced',1); @@ -63,7 +63,6 @@ function form_prepare() if (!Env::has('rechercher')) { form_prepare(); } else { - require_once('xorg.search.inc.php'); // {{{ function get_list() function get_list($offset, $limit, $order, $order_inv) { @@ -101,12 +100,12 @@ if (!Env::has('rechercher')) { $freeField = new RefSField('free',array('q.profile_freetext'),'','','',false); $fields = new SFieldGroup(true, array( - $nameField, $firstnameField, $nicknameField, $promo1Field, - $promo2Field, $womanField, $subscriberField, $aliveField, - $townField, $countryField, $regionField, $entrepriseField, - $posteField, $secteurField, $cvField, $natField, $binetField, - $groupexField, $sectionField, $schoolField, $diplomaField, - $freeField) + $nameField, $firstnameField, $nicknameField, $promo1Field, + $promo2Field, $womanField, $subscriberField, $aliveField, + $townField, $countryField, $regionField, $entrepriseField, + $posteField, $secteurField, $cvField, $natField, $binetField, + $groupexField, $sectionField, $schoolField, $diplomaField, + $freeField) ); @@ -142,7 +141,9 @@ if (!Env::has('rechercher')) { return Array($liste, $nb_tot); } - $search = new XOrgSearch(get_list); + // }}} + + $search = new XOrgSearch('get_list'); $search->setNbLines($globals->search->per_page); $page->assign('url_search_form', $search->make_url(Array('rechercher'=>0))); diff --git a/htdocs/search.php b/htdocs/search.php index 2ab604c..a6a66f9 100644 --- a/htdocs/search.php +++ b/htdocs/search.php @@ -20,7 +20,7 @@ ***************************************************************************/ require_once("xorg.inc.php"); -require_once("search.classes.inc.php"); +require_once("search.inc.php"); new_skinned_page('search.tpl', AUTH_PUBLIC); if (logged()) { @@ -31,7 +31,6 @@ require_once("applis.func.inc.php"); require_once("geoloc.inc.php"); if (Env::has('quick')) { - require_once("xorg.search.inc.php"); $page->assign('formulaire', 0); function get_list($offset, $limit, $order, $order_inv) { @@ -39,8 +38,6 @@ if (Env::has('quick')) { $qSearch = new QuickSearch('quick'); $fields = new SFieldGroup(true, array($qSearch)); - $offset = new NumericSField('offset'); - if ($qSearch->isempty()) { new ThrowError('Recherche trop générale.'); } @@ -63,8 +60,8 @@ if (Env::has('quick')) { HAVING mark>0 ORDER BY '.($order?($order.($order_inv?" DESC":"").', '):'') .implode(',',array_filter(array($fields->get_order_statement(), 'u.promo DESC, NomSortKey, prenom'))).' - LIMIT '.$offset->value.','.$globals->search->per_page; - $list = $globals->xdb->iterator($sql); + LIMIT '.$offset * $globals->search->per_page.','.$globals->search->per_page; + $list = $globals->xdb->iterator($sql); $res = $globals->xdb->query("SELECT FOUND_ROWS()"); $nb_tot = $res->fetchOneCell(); return array($list, $nb_tot); diff --git a/include/xorg.search.inc.php b/include/search.inc.php similarity index 87% rename from include/xorg.search.inc.php rename to include/search.inc.php index 963f714..c161308 100644 --- a/include/xorg.search.inc.php +++ b/include/search.inc.php @@ -20,6 +20,7 @@ ***************************************************************************/ require_once('xorg.plugin.inc.php'); +require_once("search/classes.inc.php"); // {{{ class XOrgSearch @@ -45,22 +46,28 @@ class XOrgSearch extends XOrgPlugin // }}} // {{{ function setAuth() - function setAuth() { - foreach ($this->orders as $key=>$o) - if ($o[3] == AUTH_COOKIE) + function setAuth() + { + foreach ($this->orders as $key=>$o) { + if ($o[3] == AUTH_COOKIE) { $this->orders[$key][3] = logged(); - elseif ($o[3] == AUTH_PUBLIC) + } elseif ($o[3] == AUTH_PUBLIC) { $this->orders[$key][3] = true; - else + } else { $this->orders[$key][3] = identified(); + } + } } // }}} // {{{ function addOrder() - function addOrder($name, $field, $inv_order, $text, $auth, $defaut=false) { + function addOrder($name, $field, $inv_order, $text, $auth, $defaut=false) + { $this->orders[$name] = array($field, $inv_order, $text, $auth); - if ($defaut) $this->order_defaut = $name; + if ($defaut) { + $this->order_defaut = $name; + } } // }}} @@ -72,9 +79,11 @@ class XOrgSearch extends XOrgPlugin global $page; $offset = intval($this->get_value('offset')); - $tab = $this->orders[$this->get_value('order')]; - if (!$tab || !$tab[3]) $tab = $this->orders[$this->order_defaut]; - $order = $tab[0]; + $tab = $this->orders[$this->get_value('order')]; + if (!$tab || !$tab[3]) { + $tab = $this->orders[$this->order_defaut]; + } + $order = $tab[0]; $order_inv = ($this->get_value('order_inv') != '') == $tab[1]; list($list, $total) = call_user_func($this->_callback, $offset, $this->limit, $order, $order_inv); @@ -104,7 +113,8 @@ class XOrgSearch extends XOrgPlugin "text"=>$o[2], "url" =>$this->make_url(Array('order' =>$key,'order_inv'=>($o[0] == $order) && ($order_inv != $o[1]))), "asc" =>($o[0] == $order) && $order_inv, - "desc"=>($o[0] == $order) && !$order_inv); + "desc"=>($o[0] == $order) && !$order_inv + ); } $page->assign('search_order_link', $order_links); diff --git a/include/search.classes.inc.php b/include/search/classes.inc.php similarity index 100% rename from include/search.classes.inc.php rename to include/search/classes.inc.php diff --git a/templates/search.adv.form.tpl b/templates/search.adv.form.tpl index a1de05c..acd19ab 100644 --- a/templates/search.adv.form.tpl +++ b/templates/search.adv.form.tpl @@ -292,7 +292,7 @@

{min_auth level='cookie'} - + mettre les fiches modifiées récemment en premier

{/min_auth} diff --git a/templates/search.quick.form.tpl b/templates/search.quick.form.tpl index 838476f..15d6b6c 100644 --- a/templates/search.quick.form.tpl +++ b/templates/search.quick.form.tpl @@ -26,7 +26,7 @@
{min_auth level='cookie'} - + mettre les fiches modifiées récemment en premier {if $smarty.request.nonins}
Chercher uniquement des non inscrits -- 2.1.4