From 63fac48e801886b27c5b0254c16f25a5c9084071 Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Sun, 9 Dec 2007 18:33:27 +0100 Subject: [PATCH] Searching mentors in advanced search works back. (Closes #741) Signed-off-by: Florent Bruneau --- ChangeLog | 3 +++ include/userset.inc.php | 2 +- modules/search/classes.inc.php | 9 ++++++++- modules/search/search.inc.php | 7 ++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3be860f..1cbb959 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,9 @@ Bug/Wish: - #729: Fix positioning of addresses on public profile -FRU - #742: Sub domain was hidden when editing profile -FRU + * Search: + - #741: Mentor search in advanced search -FRU + * XnetGrp: - #732: Adapt subscription text to sex -FRU - #735: Encoding of list description in member edition form -FRU diff --git a/include/userset.inc.php b/include/userset.inc.php index a0f72b1..70c965e 100644 --- a/include/userset.inc.php +++ b/include/userset.inc.php @@ -110,7 +110,7 @@ class SearchSet extends UserSet 'u.promo DESC, NomSortKey, prenom'))); } - private function getAdvanced() + private function getAdvanced($join, $where) { global $globals; $this->advanced = true; diff --git a/modules/search/classes.inc.php b/modules/search/classes.inc.php index 8a27101..11202bb 100644 --- a/modules/search/classes.inc.php +++ b/modules/search/classes.inc.php @@ -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; } diff --git a/modules/search/search.inc.php b/modules/search/search.inc.php index f4de2ab..331a1a7 100644 --- a/modules/search/search.inc.php +++ b/modules/search/search.inc.php @@ -41,6 +41,11 @@ function advancedSearchFromInput() $womanField = new RefSField('woman',array('FIND_IN_SET(\'femme\',u.flags)+1'),'','',''); $subscriberField = new RefSField('subscriber',array('!(u.perms IN (\'admin\',\'user\'))+1'),'','',''); $aliveField = new RefSField('alive',array('(u.deces!=0)+1'),'','',''); + if (Env::v('only_referent') == 'on') { + $referentField = new RefSField('only_referent', array('"on"'), 'mentor', 'mt', 'mt.expertise != "" AND mt.uid=u.user_id'); + } else { + $referentField = null; + } if (!Env::i('cityid')) { $townField = new RefSField('city',array('ac.city'),'adresses','ac',getadr_join('ac'),false); @@ -70,7 +75,7 @@ function advancedSearchFromInput() return array( $nameField, $firstnameField, $nicknameField, $promo1Field, - $promo2Field, $womanField, $subscriberField, $aliveField, + $promo2Field, $womanField, $subscriberField, $aliveField, $referentField, $townField, $countryField, $regionField, $mapField, $entrepriseField, $posteField, $secteurField, $cvField, $natField, $binetField, $groupexField, $sectionField, $schoolField, $diplomaField, -- 2.1.4