WeMall微商城源码投票插件Vote的主要源码
WeMall微信商城源码投票插件Vote,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考
AdminController.class.php
<?php
namespace Addons\Vote\Controller;
class AdminController extends InitController
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$config = M("AddonVoteConfig")->find();
$this->assign("config", $config);
$record = D('Addons://Vote/AddonVoteRecord'); // 实例化User对象
$count = $record->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 12);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$Page->setConfig('theme', "<div class='widget-content padded text-center'><ul class='pagination'></li><li>%FIRST%</li><li>%UP_PAGE%</li><li>%LINK_PAGE%</li><li>%DOWN_PAGE%</li><li>%END%</li><li><a> %HEADER% %NOW_PAGE%/%TOTAL_PAGE% 页</a></ul></div>");
$show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$record = $record->limit($Page->firstRow . ',' . $Page->listRows)->order("id desc")->relation(true)->select();
$this->assign("record", $record);// 赋值数据集
$this->assign('page', $show);// 赋值分页输出
$this->display();
}
public function addConfig()
{
M("AddonVoteConfig")->where(array("id" => "1"))->save($_POST);
$this->success('设置成功', 'Admin/Admin/index/addon/Vote');
}
}
IndexController.class.php
<?php
/**
* Created by PhpStorm.
* User: heqing
* Date: 15/7/30
* Time: 09:40
*/
namespace Addons\Vote\Controller;
class IndexController extends InitController
{
public $appUrl = "";
public function __construct()
{
parent::__construct();
$this->appUrl = "http://" . I("server.HTTP_HOST");
}
public function init()
{
return R("App/Common/init");
}
public function oauthRegister($wxuser)
{
return R("App/Common/oauthRegister", array($wxuser));
}
public function index()
{
$user=R("App/Public/oauthLogin");
// if (!session("userUid")) {
// $weObj = $this->init();
// $token = $weObj->getOauthAccessToken();
// if (!$token) {
// $weObj = $this->init();
// $url = $weObj->getOauthRedirect($this->appUrl . u_addons('Vote://App/Index/index'));
// header("location: $url");
// return;
// } else {
// $wxuser = $weObj->getOauthUserinfo($token["access_token"], $token["openid"]);
// session("userUid", $wxuser["openid"]);
// $this->oauthRegister($wxuser);
// }
// }
$user = M("User")->where(array("uid" => session("userUid")))->find();
$config = M("AddonVoteConfig")->find();
$this->assign("config", $config);
$this->assign("user", $user);
M("AddonVoteConfig")->where(array("id"=>$config["id"]))->setInc("visiter_num");
$this->display();
}
public function vote()
{
$username=M('User')->where(array("id"=>session("userId")))->find();
M("AddonVoteRecord")->add(array("user_id"=>session("userId"),"username"=>$username['username']));
M("AddonVoteConfig")->where(array("id"=>I("get.id")))->setInc("vote_num");
}
}
Index_index.html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>投票系统</title>
<meta name="format-detection" content="telephone=no, address=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- apple devices fullscreen -->
<meta name="apple-touch-fullscreen" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link href="__CSS__/bootstrap.min.css" rel="stylesheet">
<link href="__CSS__/font-awesome.min.css" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/common.css" rel="stylesheet">
<link href="__CSS__/sign.css" rel="stylesheet">
<script type="text/javascript" src="__JS__/jquery.min.js"></script>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
</head>
<body>
<div class="container container-fill">
<div class="pcenter-main">
<div class="head">
<div class="pdetail">
<div class="img-circle"><img src="{$user.avater}"></div>
<div class="pull-left">
<span class="name">{$user.username}</span>
<span class="type">会员ID: {$user.id}</span>
</div>
</div>
<div class="head-nav">
<a class="head-nav-list"
href="">累计投票<span>{$config.vote_num}</span></a>
<a class="head-nav-list"
href="">访问量<span>{$config.visiter_num}</span></a>
</div>
</div>
</div>
<div class="scroll-container">
<div class="wrapper">
<ul class="list-group">
<li class="list-group-item" style="padding: 0px 0px;border-bottom: 1px solid #ccc;">
<div class="con">
<div class="list-hd">
<h5>项目:</h5><span>{$config.name}</span>
</div>
</div>
</li>
<li class="list-group-item" style="padding: 1px 0px;border-bottom: 1px solid #ccc;">
<div class="con">
<div class="list-hd">
<h5>时间:</h5><span>{$config.activity_time}</span>
</div>
</div>
</li>
<li class="list-group-item" style="padding: 0px;">
<div class="con">
<div class="list-hd">
<h5>投票介绍:</h5><span>{$config.about}</span>
</div>
</div>
</li>
</ul>
</div>
</div>
<ul class="nav nav-bardown nav-justified" style="z-index:10;">
<li><a href="javascript:openUrl('{:u_addons(\'Vote://Index/vote\',array(\'id\'=>$config[\'id\']))}')"><span class="btn btn-default" style="border-radius: 50px;padding: 10px 30px;">点击投票</span></a></li>
</ul>
</div>
<script type="text/javascript">
function openUrl(url){
$.get(url , function (data) {
alert('投票成功!');
location.reload();
});
}
</script>
</body>
</html>
Admin_index.html
<section class="content-header">
<h1>
投票管理
<small></small>
</h1>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-danger">
<div class="box-header with-border">
<h3 class="box-title">大转盘设置</h3>
<!-- /.box-tools -->
</div>
<div class="box-body no-padding">
<div class="mailbox-controls">
<div class="btn-group">
<a data-toggle="tab" href="#tab1" class="btn btn-danger "><i class="icon-comments"></i>投票设置</a>
</div>
<div class="btn-group">
<a data-toggle="tab" href="#tab2" class="btn btn-danger "><i class="icon-user"></i>投票记录</a>
</div>
<div class="tab-content padded" id="my-tab-content">
<div class="tab-pane active" id="tab1">
<p>
<form action="{:u_addons('Vote://Admin/Admin/addConfig')}" id="myForm" method="post"
onsubmit="return false;" class="form-horizontal">
<div class="form-group">
<label class="control-label col-md-2">投票名称</label>
<div style="margin-top:50px" class="col-md-7">
<input class="form-control" placeholder="" value="{$config.name}"
name="name" type="text">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">活动时间</label>
<div class="col-md-7">
<input class="form-control" placeholder=""
value="{$config.activity_time}" name="activity_time" type="text">
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-md-2">活动说明</label>
<div class="col-md-7">
<!style给定宽度可以影响编辑器的最终宽度
<script type="text/plain" id="myEditor" style="width:100%;height:340px;"></script>
</div>
</div> -->
<div class="form-group">
<label class="control-label col-md-2">活动说明</label>
<div class="col-md-7">
<!--style给定宽度可以影响编辑器的最终宽度-->
<script id="UEditor" name="about" type="text/plain" style="height:340px;">
{$config.about}
</script>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2"></label>
<div class="col-md-7">
<button class="btn btn-danger"
onclick="myFormSubmit('{:u_addons(\'Vote://Admin/Admin/index\')}')"
type="submit">提交
</button>
<button class="btn btn-default-outline">取消</button>
</div>
</div>
</form>
</p>
</div>
<div class="tab-pane" id="tab2">
<p>
<div class="widget-content padded clearfix">
<table class="table table-hover">
<thead>
<th class="check-header hidden-xs">
<label><input id="checkAll" name="checkAll"
type="checkbox"><span></span></label>
</th>
<th>
ID
</th>
<th>
用户名
</th>
<th class="hidden-xs">
时间
</th>
</thead>
<tbody>
<volist name="record" id="record">
<tr>
<td class="check hidden-xs">
<label><input name="optionsRadios1" type="checkbox"
value="option1"><span></span></label>
</td>
<td>
{$record.id}
</td>
<td>
{$record.username}
</td>
<td class="hidden-xs">
{$record.time}
</td>
</tr>
</volist>
</tbody>
</table>
<div class="pull-right">
{$page}
</div>
</div>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- <include file="Common:umeditor"/> -->
<script type="text/javascript">
// //实例化编辑器
// var um = UM.getEditor('myEditor' , {
// textarea : 'about'
// });
// function setFocus() {
// UM.getEditor('myEditor').focus();
// }
$(function() {
//实例化编辑器异步载入
var editor = new UE.ui.Editor();
editor.render("UEditor");
});
if ('{$config}') {
$('select[name="status"]').val('{$config.status}');
$('select[name="everyday"]').val('{$config.everyday}');
// UE.getEditor('myEditor').setContent('{$config.activity_explain}');
}
</script>
<!-- <script>
if ('{$config}') {
$('select[name="status"]').val('{$config.status}');
$('select[name="everyday"]').val('{$config.everyday}');
UM.getEditor('myEditor').setContent('{$config.about}');
}
</script> -->
wemall官网网址: www.wemallshop.com

WeMall微商城源码投票插件Vote的主要源码的更多相关文章
- WeMall微商城源码报名插件Apply的主要源码
WeMall微信商城源码报名插件Apply,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace A ...
- 二维码生成插件qrious及网站扫码登录的一些理解
什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型. ...
- WeMall微信商城签到插件Sign的主要源码
WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...
- MyBatis 源码分析 - 插件机制
1.简介 一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展.这样的好处是显而易见的,一是增加了框架的灵活性.二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作.以 My ...
- 亚马逊左侧菜单延迟z三角 jquery插件jquery.menu-aim.js源码解读
关于亚马逊的左侧菜单延迟,之前一直不知道它的实现原理.梦神提到了z三角,我也不知道这是什么东西.13号那天很有空,等领导们签字完我就可以走了.下午的时候,找到了一篇博客:http://jayuh.co ...
- MyBatis 源码篇-插件模块
本章主要描述 MyBatis 插件模块的原理,从以下两点出发: MyBatis 是如何加载插件配置的? MyBatis 是如何实现用户使用自定义拦截器对 SQL 语句执行过程中的某一点进行拦截的? 示 ...
- 精尽MyBatis源码分析 - 插件机制
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
- Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码
本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第二篇,主要介绍如何调试 Maven 源码和插件源码.系列文章总目录参见:https://www.cnblogs.com/xi ...
- php 微信公众号+微商城开发 基于Thinkphp3.2框架开发
说明:本教程是自己自学+自己的理解+扩展(包括学习过程中遇到的一些问题) 参考教程:麦子学院--李忠益--http://www.maiziedu.com/u/70409/ 微盟: http://www ...
随机推荐
- 老司机教你下载tumblr上视频和图片的正确姿势
本文面向初学者. 很多同学问我:“我非常想学Python编程,但是找不到兴趣点”. 还有的同学呢,找到了很好的兴趣点,但是无从下手,“玄魂老师,我想下载tumblr上的视频, 怎么下载,Python能 ...
- 史上最全的synchronized解释
首先:推荐使用synchronized(obj)这种方法体的使用方式,一个类里面建议尽量使用单一的同步方法,多种方法混用,维护成本太大. 其次:关于java5.0新增的ReenTrantLock方法: ...
- Java连接数据库(mysql,sqlserver)
犹记当年为了使用java程序连接mysql数据库花费一天时间,最后发现是没有导入外包,如今看来真的发现自己那时有点二,也怪我使用的教科书上没有说明这点(强行甩锅,哈哈).今天分享出来,,希望后者不因为 ...
- Spark:一个独立应用
[TOC] Spark:一个独立应用 关于构建 Java和Scala 在Java和Scala中,只需要给你的应用添加一个对于spark-core的Maven依赖. Python 在Python中,可以 ...
- 学习window系统下的注册表
一直不明白注册表是一个什么鬼,查了资料后大概明白了注册表到底有什么用,其实简单来说注册表就是一个存放系统.硬件.应用配置信息的数据ku.##### 一.注册表的来历在最早的视窗操作系统win3.x中, ...
- PHP面向对象(OOP)----分页类
> 同验证码类,分页也是在个人博客,论坛等网站中不可缺少的方式,通过分页可以在一个界面展示固定条数的数据,而不至于将所有数据全部罗列到一起,实现分页的原理其实就是对数据库查询输出加了一个limi ...
- PLSQL触发器
触发器权限 数据库创建用户时想要在本用户下使用触发器,需要给用户触发器的权限 使用DBA用户执行 GRANT CREATE TRIGGER TO user_name; 如果想在当前用户下创建其他用户 ...
- java 多线程安全问题-同步代码块
/* 多线程的安全问题: while(true) { if(tick>0) { //线程0,1,2,3在余票为1时,都停滞在这里,之后分别获得CPU执行权,打印出0,-1,-2等错票 Syste ...
- udp 双机通信(服务器循环检测)2
此文摘自:http://blog.csdn.net/qinpeng100423/article/details/8980423,谢谢了 自己上一篇写的udp通信,只能运行一次,参考了这位博主的,只是把 ...
- javase基础回顾(一)ArrayList深入解析 解读ArrayList源代码(JDK1.8.0_92)
我们在学习这一块内容时需要注意的一个问题是 集合中存放的依然是对象的引用而不是对象本身. List接口扩展了Collection并声明存储一系列元素的类集的特性.使用一个基于零的下标,元素可以通过它们 ...