コード例 #1
0
ファイル: Normal.php プロジェクト: udp12/theyworkforyou
 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);
 }
コード例 #2
0
 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'));
 }
コード例 #3
0
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 &lsquo;" . _htmlentities($searchterm) . "&rsquo;</h2>";
        print "<ul>{$out}</ul>";
    }
}
コード例 #4
0
ファイル: index.php プロジェクト: nallachaitu/theyworkforyou
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>';
    }
}
コード例 #5
0
    $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'] = '';
}