private function find_constituency($args) { if ($args['s'] != '') { $searchterm = $args['s']; } else { return false; } list($constituencies, ) = search_constituencies_by_query($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), search_constituencies_by_query('Alyn')); $this->assertEquals(array(array('Alyn and Deeside'), false), search_constituencies_by_query('Alyn and Deeside')); }
function find_constituency($args) { // We see if the user is searching for a postcode or constituency. global $PAGE; if ($args['s'] != '') { $searchterm = $args['s']; } else { $PAGE->error_message('No search string'); return false; } list($constituencies, $validpostcode) = search_constituencies_by_query($searchterm); $constituency = ""; if (count($constituencies) == 1) { $constituency = $constituencies[0]; } if ($constituency != '') { // Got a match, display.... $MEMBER = new MEMBER(array('constituency' => $constituency, 'house' => 1)); $URL = new URL('mp'); if ($MEMBER->valid) { $URL->insert(array('p' => $MEMBER->person_id())); print '<h2>'; if (!$MEMBER->current_member(1)) { print 'Former '; } print 'MP for ' . preg_replace('#' . preg_quote($searchterm, '#') . '#i', '<span class="hi">$0</span>', $constituency); if ($validpostcode) { // Display the postcode the user searched for. print ' (' . _htmlentities(strtoupper($args['s'])) . ')'; } ?> </h2> <p><a href="<?php echo $URL->generate(); ?> "><strong><?php echo $MEMBER->full_name(); ?> </strong></a> (<?php echo $MEMBER->party_text(); ?> )</p> <?php } } elseif (count($constituencies)) { $out = ''; $heading = array(); foreach ($constituencies as $constituency) { $MEMBER = new MEMBER(array('constituency' => $constituency, 'house' => 1)); if ($MEMBER->valid) { if ($MEMBER->current_member(1)) { $heading[] = 'MPs'; } else { $heading[] = 'Former MPs'; } $URL = new URL('mp'); $URL->insert(array('p' => $MEMBER->person_id())); $out .= '<li><a href="' . $URL->generate() . '"><strong>' . $MEMBER->full_name() . '</strong></a> (' . preg_replace('#' . preg_quote($searchterm, '#') . '#i', '<span class="hi">$0</span>', $constituency) . ', ' . $MEMBER->party() . ')</li>'; } } print '<h2>'; print join(" and ", array_unique($heading)); print " in constituencies matching ‘" . _htmlentities($searchterm) . "’</h2>"; print "<ul>{$out}</ul>"; } }
function find_constituency ($args) { // We see if the user is searching for a postcode or constituency. global $PAGE; if ($args['s'] != '') { $searchterm = $args['s']; } else { $PAGE->error_message('No search string'); return false; } list ($constituencies, $validpostcode) = search_constituencies_by_query($searchterm); $constituency = ""; if (count($constituencies)==1) { $constituency = $constituencies[0]; } if ($constituency != '') { // Got a match, display.... $MEMBER = new MEMBER(array('constituency'=>$constituency, 'house' => 1)); $URL = new URL('mp'); if ($MEMBER->valid) { $URL->insert(array('m'=>$MEMBER->member_id())); print '<h2>MP for ' . preg_replace('#' . preg_quote($searchterm, '#') . '#i', '<span class="hi">$0</span>', $constituency); if ($validpostcode) { // Display the postcode the user searched for. print ' (' . htmlentities(strtoupper($args['s'])) . ')'; } ?></h2> <p><a href="<?php echo $URL->generate(); ?>"><strong><?php echo $MEMBER->full_name(); ?></strong></a> (<?php echo $MEMBER->party(); ?>)</p> <?php } } elseif (count($constituencies)) { print "<h2>MPs in constituencies matching '".htmlentities($searchterm)."'</h2><ul>"; foreach ($constituencies as $constituency) { $MEMBER = new MEMBER(array('constituency'=>$constituency, 'house' => 1)); $URL = new URL('mp'); if ($MEMBER->valid) { $URL->insert(array('m'=>$MEMBER->member_id())); } print '<li><a href="'.$URL->generate().'"><strong>' . $MEMBER->full_name() . '</strong></a> (' . preg_replace('#' . preg_quote($searchterm, '#') . '#i', '<span class="hi">$0</span>', $constituency) . ', '.$MEMBER->party().')</li>'; } print '</ul>'; } }
$details['email'] = $alert['email']; $details['email_verified'] = true; } else { $details["email"] = trim(get_http_var("email")); $details['email_verified'] = false; } $details['keyword'] = trim(get_http_var("keyword")); $details['pid'] = trim(get_http_var("pid")); $details['alertsearch'] = trim(get_http_var("alertsearch")); $details['pc'] = get_http_var('pc'); $details['submitted'] = get_http_var('submitted') || $details['pid'] || $details['keyword']; $errors = check_input($details); // Do the search if ($details['alertsearch']) { $details['members'] = search_member_db_lookup($details['alertsearch'], true); list($details['constituencies'], $details['valid_postcode']) = search_constituencies_by_query($details['alertsearch']); } # If the above search returned one result for member or constituency search, # use it immediately if (isset($details['members']) && $details['members']->rows() == 1) { $details['pid'] = $details['members']->field(0, 'person_id'); unset($details['members']); $details['alertsearch'] = ''; } if (isset($details['constituencies']) && count($details['constituencies']) == 1 && $details['valid_postcode']) { $MEMBER = new MEMBER(array('constituency' => $details['constituencies'][0], 'house' => 1)); $details['pid'] = $MEMBER->person_id(); $details['pc'] = $details['alertsearch']; unset($details['constituencies']); $details['alertsearch'] = ''; }