废话不多说先上效果图
部分功能简介:
1、支持选择是否关注公众号后报名参加活动。
2、支持用户上传照片报名,可设置照片数量可传1-5张。
3、支持IP限制,可以限制单IP每天投票量,2种投票模式。
4、支持选择投票开始时间和结束时间,自动生成排名。
5、支持报名,报名好后参加投票的模式。
6、增加图片上传时可上传云存储功能,这样当页面浏览时可以极大降低你服务器的带宽占用。
7、作品详情页有票数明细的排名,还有距上一名差多数票的展示
8、刷票嫌疑用户自动屏蔽:可以自定义1分钟内同作品投票数达到多少自动屏蔽刷票嫌疑作品!
9、增加上传背景音乐功能!
10、增加可设置开启和关闭限制投票用户IP区域,可限制省份限制 !
11、可设置开启和关闭投票验证码功能,投票前需要手动拖动图片完成验证!屏蔽机器刷票!
12、设置每个微信用户每天可投票数,还能开启每个微信用户每天给同一个作品只能投一票的限制!
13、活动可灵活的设置报名是否需要审核,白天开启免审,晚上开启审核
14、后台支持手动添加作品,也可以修改所有作品的票数等信息!
15、可自定义报名作品上传的最多图片数!
16、拥有TP独立后台,不受框架束缚,支持多用户套餐天数限制!
class UserController extends SystemController
{
public function _initialize()
{
parent::_initialize();
}
public function index()
{
$role = M('Role')->getField('id,name');
$map = array('is_setuser' => 1);
$UserDB = D('User');
$count = $UserDB->where($map)->count();
$Page = new \Think\Page($count, 20);
$Page->parameter = I('get.');
$Page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER% %GO_PAGE%');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$show = $Page->show();
$list = $UserDB->where($map)->order('id ASC')->limit($Page->firstRow . ',' . $Page->listRows)->select();
$this->assign('role', $role);
$this->assign('list', $list);
$this->assign('page', $show);
$this->display();
}
public function add()
{
$UserDB = D("User");
if (IS_POST) {
$password = $_POST['password'];
$repassword = $_POST['repassword'];
if (empty($password) || empty($repassword)) {
$this->error('密码必须填写!');
}
if ($password != $repassword) {
$this->error('两次输入密码不一致!');
}
if ($UserDB->create()) {
$user_id = $UserDB->add();
M('user_info')->add(array('uid' => $user_id));
if ($user_id) {
$data['user_id'] = $user_id;
$data['role_id'] = $_POST['role'];
if (M("role_user")->data($data)->add()) {
$this->success('添加成功!', U('System/User/index'));
} else {
$this->error('用户添加成功,但角色对应关系添加失败!');
}
} else {
$this->error('添加失败!');
}
} else {
$this->error($UserDB->getError());
}
} else {
$role = D('Role')->getAllRole(array('status' => 1, 'isadmin' => 1), 'sort DESC');
$this->assign('role', $role);
$this->display('set');
}
}