private function find_constituency($args) { if ($args['s'] != '') { $searchterm = $args['s']; } else { return false; } list($constituencies, ) = \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery($searchterm); $constituency = ""; if (count($constituencies) == 1) { $constituency = $constituencies[0]; } $cons = array(); $mp_types = array('mp' => 0, 'former' => 0); if ($constituency != '') { try { // Got a match, display.... $MEMBER = new \MySociety\TheyWorkForYou\Member(array('constituency' => $constituency, 'house' => 1)); $cons[] = $MEMBER; if ($MEMBER->current_member(1)) { $mp_types['mp']++; } else { $mp_types['former']++; } } catch (\MySociety\TheyWorkForYou\MemberException $e) { $cons = array(); } } elseif (count($constituencies)) { foreach ($constituencies as $constituency) { try { $MEMBER = new \MySociety\TheyWorkForYou\Member(array('constituency' => $constituency, 'house' => 1)); $cons[] = $MEMBER; if ($MEMBER->current_member(1)) { $mp_types['mp']++; } else { $mp_types['former']++; } } catch (\MySociety\TheyWorkForYou\MemberException $e) { continue; } } } return array($cons, $mp_types); }
public function testConstituencySearch() { $this->assertEquals(array(array('Alyn and Deeside'), false), \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery('Alyn')); $this->assertEquals(array(array('Alyn and Deeside'), false), \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery('Alyn and Deeside')); }
private function searchForConstituenciesAndMembers() { // Do the search if ($this->data['alertsearch']) { $this->data['members'] = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookupWithNames($this->data['alertsearch'], true); list($this->data['constituencies'], $this->data['valid_postcode']) = \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery($this->data['alertsearch']); } # If the above search returned one result for member or constituency search, # use it immediately if (isset($this->data['members']) && $this->data['members']->rows() == 1) { $this->data['pid'] = $this->data['members']->field(0, 'person_id'); unset($this->data['members']); $this->data['alertsearch'] = ''; } if (isset($this->data['constituencies']) && count($this->data['constituencies']) == 1 && $this->data['valid_postcode']) { $MEMBER = new \MEMBER(array('constituency' => $this->data['constituencies'][0], 'house' => 1)); $this->data['pid'] = $MEMBER->person_id(); $this->data['pc'] = $this->data['alertsearch']; unset($this->data['constituencies']); $this->data['alertsearch'] = ''; } if (isset($this->data['constituencies'])) { $cons = array(); foreach ($this->data['constituencies'] as $constituency) { try { $MEMBER = new \MEMBER(array('constituency' => $constituency, 'house' => 1)); $cons[$constituency] = $MEMBER; } catch (\MySociety\TheyWorkForYou\MemberException $e) { // do nothing } } $this->data['constituencies'] = $cons; } }