Beispiel #1
0
 function edit()
 {
     $vid = intval($this->Post['vid']);
     $options = $this->Post['old_option'];
     $new_options = $this->Post['option'];
     $old_pic = jget('old_pic');
     $new_pic = jget('pic_id');
     $vote = $this->VoteLogic->id2voteinfo($vid, 'm');
     if (empty($vote) || $vote['verify'] == 0) {
         json_error('当前投票不存在或正在审核中');
     }
     if (jdisallow($vote['uid'])) {
         json_error('你没有权限');
     }
     load::logic('vote');
     $VoteLogic = new VoteLogic();
     $is_voted = $VoteLogic->get_count_vote_user($vid);
     $no_chk_maxchoice = false;
     if ($is_voted) {
         $no_chk_maxchoice = true;
     }
     $post_data = $this->Post;
     $params = array('no_chk_option' => true, 'no_chk_maxchoice' => $no_chk_maxchoice);
     $ret = $this->VoteLogic->chk_post($post_data, 'modfiy', $params);
     if ($ret == -1) {
         json_error("投票主题长度不能小于两个字节。");
     } else {
         if ($ret == -3) {
             json_error("投票截止时间小于当前时间。");
         }
     }
     $where_ary = array('vid' => $vid);
     if ($no_chk_maxchoice) {
         $set_ary = array('subject' => $post_data['subject'], 'is_view' => $post_data['is_view'], 'expiration' => $post_data['expiration']);
     } else {
         $set_ary = array('subject' => $post_data['subject'], 'maxchoice' => $post_data['maxchoice'], 'multiple' => $post_data['maxchoice'] > 1 ? 1 : 0, 'is_view' => $post_data['is_view'], 'expiration' => $post_data['expiration']);
     }
     $set_ary['time_val'] = max(0, (int) $post_data['time_val']);
     $set_ary['time_unit'] = in_array($post_data['time_unit'], array('y', 'm', 'd', 'h', 'i', 's')) ? $post_data['time_unit'] : 'h';
     $set_ary['vote_limit'] = max(0, min(100, (int) $post_data['vote_limit']));
     $VoteLogic->update_vote($vid, $set_ary);
     $VoteLogic->update_vote_field($vid, array('message' => $post_data['message']));
     $this->VoteLogic->update_options($vid, $options, $new_options, $is_voted, $old_pic, $new_pic);
     json_result('编辑投票项成功', $vid);
 }