Example #1
0
 /**
  * Test looking up a person by full name works as expected.
  */
 public function testSearchMemberDbLookupFullName()
 {
     // Test a full name.
     $results = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookup('Mary Smith');
     $this->assertEquals(1, $results->rows());
     $this->assertEquals(3, $results->field(0, 'person_id'));
     // Test an inverse full name.
     $results = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookup('Smith Mary');
     $this->assertEquals(1, $results->rows());
     $this->assertEquals(3, $results->field(0, 'person_id'));
     // Test a name with title.
     $results = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookup('Mrs Smith');
     $this->assertEquals(1, $results->rows());
     $this->assertEquals(3, $results->field(0, 'person_id'));
 }
Example #2
0
 private function parse_person_params()
 {
     $searchstring = '';
     # Searching from MP pages
     if ($searchspeaker = trim(get_http_var('pid'))) {
         $searchstring .= " speaker:{$searchspeaker}";
     }
     # Searching from MP pages
     if ($searchspeaker = trim(get_http_var('person'))) {
         $q = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookup($searchspeaker);
         $pids = array();
         $row_count = $q->rows();
         for ($i = 0; $i < $row_count; $i++) {
             $pids[$q->field($i, 'person_id')] = true;
         }
         $pids = array_keys($pids);
         if (count($pids) > 0) {
             $searchstring .= ' speaker:' . join(' speaker:', $pids);
         }
     }
     return $searchstring;
 }
Example #3
0
 private function find_members()
 {
     $searchstring = trim(preg_replace('#-?[a-z]+:[a-z0-9]+#', '', $this->searchstring));
     $q = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookup($searchstring);
     if (!$q) {
         return array();
     }
     $members = array();
     if ($q->rows() > 0) {
         $row_count = $q->rows();
         for ($n = 0; $n < $row_count; $n++) {
             $member = new \MySociety\TheyWorkForYou\Member(array('person_id' => $q->field($n, 'person_id')));
             // searchMemberDbLookup returns dups so we
             // key by person_id to work round this
             $members[$member->person_id] = $member;
         }
     }
     return $members;
 }