Exemplo n.º 1
0
 public function index()
 {
     $id = intval($this->params['id']);
     try {
         $vote = new Vote($id);
     } catch (VoteNullException $e) {
         $this->error("未知的投票");
     }
     $u = User::getInstance();
     if ($this->RequestHandler->isPost()) {
         $this->requestLogin();
         if ($vote->isDeleted()) {
             $this->error("此投票已删除");
         }
         if ($vote->isEnd()) {
             $this->error("此投票已截止");
         }
         if ($vote->getResult($u->userid) !== false) {
             $this->error("你已经投过票了");
         }
         if (!isset($this->params['form']['vote'])) {
             $this->error("未知的参数");
         }
         if ($vote->type == "0") {
             $viid = intval($this->params['form']['vote']);
             if (!$vote->hasItem($viid)) {
                 $this->error("未知的选项,投票失败");
             }
             $vote->vote($u->userid, $viid);
         } else {
             if ($vote->type == "1") {
                 $items = array_values((array) $this->params['form']['vote']);
                 if (count($items) == 0) {
                     $this->error("请至少选择一个选项");
                 }
                 if (count($items) > $vote->limit && $vote->limit != 0) {
                     $this->error("投票个数超过限制,投票失败");
                 }
                 foreach ($items as $v) {
                     if (!$vote->hasItem(intval($v))) {
                         $this->error("未知的选项,投票失败");
                     }
                 }
                 $vote->vote($u->userid, $items);
             } else {
                 $this->error("错误的投票");
             }
         }
     }
     if ($vote->isDeleted() && !$u->isAdmin()) {
         $this->error("此投票已删除");
     }
     $wrapper = Wrapper::getInstance();
     $data['vote'] = $wrapper->vote($vote, array('items' => true));
     $this->set('data', $data);
 }
Exemplo n.º 2
0
}
</style>
</head>
<body>
<?php 
include 'vote.php';
$vote = new Vote();
$action = '';
//get action
if (isset($_REQUEST['action'])) {
    $action = $_REQUEST['action'];
}
//vote and show results
if ('vote' == $action) {
    //vote
    $vote->vote($_REQUEST['id']);
    //show results
    $total = $vote->getTotal();
    echo '<ul>';
    foreach ($vote->showResults() as $vote) {
        $percent = 0;
        if (isset($vote['number']) && !empty($vote['number'])) {
            $percent = $vote['number'] / $total * 100;
        }
        echo '<li class="result">';
        echo '<span class="bar" style="width:' . $percent . '%;">&nbsp;</span>';
        echo '<span class="label">' . $vote['name'] . '&nbsp;(<strong>' . $percent . '%</strong>)</span>';
        echo '</li>';
    }
    echo '</ul>';
    //show options
Exemplo n.º 3
0
 public function ajax_vote()
 {
     if (!$this->RequestHandler->isPost()) {
         $this->error(ECode::$SYS_REQUESTERROR);
     }
     $this->requestLogin();
     if (!isset($this->params['vid'])) {
         $this->error("未知的投票");
     }
     $vid = intval($this->params['vid']);
     try {
         $vote = new Vote($vid);
     } catch (VoteNullException $e) {
         $this->error("未知的投票");
     }
     $u = User::getInstance();
     if ($vote->isDeleted() && !$u->isAdmin()) {
         $this->error("此投票已删除");
     }
     $myres = $vote->getResult($u->userid);
     if ($myres !== false) {
         $this->error("你已经投过票了");
     }
     if ($vote->isDeleted()) {
         $this->error("此投票已删除");
     }
     if ($vote->isEnd()) {
         $this->error("此投票已截止");
     }
     if ($vote->type == "0") {
         @($viid = $this->params['form']['v' . $vote->vid]);
         if (!$vote->hasItem($viid)) {
             $this->error("未知的选项,投票失败");
         }
         $vote->vote($u->userid, $viid);
     } else {
         if ($vote->type == "1") {
             $items = array_keys($this->params['form']);
             if (count($items) > $vote->limit && $vote->limit != 0) {
                 $this->error("投票个数超过限制,投票失败");
             }
             $items = preg_replace("/v{$vote->vid}_/", "", $items);
             foreach ($items as $v) {
                 if (!$vote->hasItem($v)) {
                     $this->error("未知的选项,投票失败");
                 }
             }
             $vote->vote($u->userid, $items);
         } else {
             $this->error("错误的投票");
         }
     }
 }
Exemplo n.º 4
0
require_once '../class/nl-auth-class.php';
require_once '../class/nl-vote-class.php';
require_once 'api_headers.php';
try {
    if (is_get()) {
        if (0 >= ($newsID = _get("newsID", 0))) {
            throw new Exception("could not find news by ID", -1);
        }
        $voteObj = new Vote($newsID);
        echo $voteObj->getJson();
    } else {
        if (is_post()) {
            if (0 >= ($newsID = _get("newsID", 0))) {
                throw new Exception("could not find news by ID", -1);
            }
            $voteType = _post("voteType", null);
            if ($voteType != "agree" && $voteType != "disagree") {
                throw new Exception("unknown vote type " . $voteType, -1);
            }
            $auth = Auth::getInstance();
            if (!$auth->canVote()) {
                throw new Exception("current user cannot vote", -1);
            }
            $voteObj = new Vote($newsID);
            echo $voteObj->vote($voteType, $auth->getUserID())->getJson();
        }
    }
} catch (Exception $e) {
    $result = array("errCode" => $e->getCode(), "errMessage" => $e->getMessage());
    echo json_encode($result);
}