iwebshop插件的操作
<?php
class Miao extends pluginBase
{
//插件名字
public static function name(){
return "秒杀";
}
//插件介绍
public static function description(){
return "运用此插件吸引顾客,设置限时抢购。";
} //新建数据库
public static function install(){
$miao = new IModel('miao');
if($miao->exists()){
return true;
}
//建立表
$data = array(
"comment" => self::name(),
"column" => array(
"id" => array("type" => "int(11) unsigned",'auto_increment' => 1),
"biao" => array("type" => "varchar(100)","comment" => "标题"),
"forea_time" => array("type" => "varchar(80)","comment"=>"秒杀开始时间"),
"end_time" => array("type" => "varchar(80)","comment"=>"秒杀结束时间"),
"jia" => array("type" => "varchar(20)","comment" => "价格"),
"num" => array("type" => "varchar(20)","comment" => "数量"),
"desc" => array("type" => "text","comment" => "描述"),
"goods_id"=>array("type"=>"int(11) unsigned"),
),
"index" => array("primary" => "id"),
);
$miao->setData($data);
return $miao->createTable();
}
//卸载数据表
public static function uninstall()
{
$ppt = new IModel('miao');
return $ppt->dropTable();
}
//钩子(显示到模块上)
public function reg(){
plugin::reg("onSystemMenuCreate", function () {
Menu::$menu['营销']['营销活动']['/plugins/seckill_list']=$this->name();
});
plugin::reg("onBeforeCreateAction@plugins@seckill_list", function () {
self::controller()->seckill_list = function () {
$this->seckill_list();
};
});
plugin::reg("onBeforeCreateAction@plugins@seckill_edit", function () {
self::controller()->seckill_edit = function () {
$this->seckill_edit();
};
});
plugin::reg("onBeforeCreateAction@plugins@seckilll_edit", function () {
self::controller()->seckilll_edit = function () {
$this->seckilll_edit();
};
});
plugin::reg("onBeforeCreateAction@plugins@seckill_del", function () {
self::controller()->seckill_del = function () {
$this->seckill_del();
};
});
plugin::reg("onBeforeCreateAction@plugins@seckill_upt", function () {
self::controller()->seckill_upt = function () {
$this->seckill_upt();
};
});
}
public function seckill_list(){
$testObj = new IModel("miao");
$arr = $testObj->query();
$this->list = $arr;
$this->redirect('seckill_list',$arr);
}
public function seckill_edit(){
$this->redirect('seckill_edit');
}
public function seckilll_edit(){
$is_close = IReq::get("is_close"); //是否开启 if($is_close==0) {
$goods_id = IReq::get("goods_id"); //商品id
$biao = IReq::get("title"); //标题
$forea_time = IReq::get("start_time"); //开始时间
$end_time = IReq::get("end_time"); //结束时间
$desc = IReq::get("intro"); //介绍
$jia = IReq::get("regiment_price"); //秒杀价格
$num = IReq::get("num"); //秒杀价格
$arr = array(
"biao" => $biao,
"forea_time" => $forea_time,
"end_time" => $end_time,
"desc" => $desc,
"jia" => $jia,
"goods_id" => $goods_id,
"num" => $num
);
$testObj = new IModel("miao");
$testObj->setData($arr);
$testObj->add();
$this->seckill_list();
}
}
public function seckill_del(){
$id = IReq::get("id");
$testObj = new IModel("miao");
$testObj->del("id=$id");
$this->seckill_list();
}
public function seckill_upt(){
$testObj = new IModel("miao");
$id = IFilter::act(IReq::get("id"), 'int');
$arr = $testObj->query("id=$id");
$this->list = $arr;
$this->redirect('seckill_edit');
}
}
iwebshop插件的操作的更多相关文章
- 在CHROME里安装 VIMIUM 插件, 方便操作
VIMIUM 插件使用方法 VIMIUM 命令列表 网页导航 j, :向下滚动网页 k, :向上滚动网页 h : 向左滚动 l : 向右滚动 gg : 滚动到网页头部 G : 滚动到网页底部 :向上翻 ...
- Eclipse添加git插件及操作
注册账号新建仓库 在Github已经注册成功自己的账号 新建一个仓库 创建成功后记住url: 安装Git插件 首先像安装Pydev一样 点击help的Install New Software 点击Ad ...
- FitVids,一个轻视频插件,操作简单
最近在找一个视频插件,偶尔看见一个口碑啥的都不错的插件,FitsVids. fitvids.js 是个轻量级,易于使用的 jQuery 插件,用来在网页上播放指定宽度的嵌入视频.Fitvides.js ...
- Blender插件之操作器(Operator)实战
前言 在Blender中, 操作器(Operator)是它的核心. 用户通过各种操作器来创建和操作场景中的物体. 操作器对象继承自 class bpy.types.Operator(bpy_struc ...
- 自制jQuery焦点图切换简易插件
首页经常是需要一个焦点图切换的效果,最近做的项目也正好需要,所以在网上搜索,后面查到了一个半成品的插件,这里我自己修改了一下. js文件夹下面有两个文件夹jquery.jslide.js与jquery ...
- 使用webstorm操作git
0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...
- jQuery扩展插件和拓展函数的写法
<script type="text/JavaScript"> //jQuery插件的写法(需要传入操作对象) ;(function ...
- 如何开发 Sublime Text 2 的插件
Sublime Text 2是一个高度可定制的文本编辑器,一直以来对希望有一个快速强大现代的编辑工具的的程序员保持着持续的吸引力.现在,我们将创建自己的一个Sublime plugin,实现用Nett ...
- Rest Client(Rest接口调试工具,有保存功配置功能) chrome浏览器插件
Rest Client(Rest接口调试工具,有保存功配置功能) chrome浏览器插件 下载地址 插件的操作很简单,下面是一些简单的实例. 1.安装 在谷歌应用商城搜索postman,如下图1-1所 ...
随机推荐
- Javascript面对对象. 第三篇
3.字面量 为了让属性和方法很好的体现封装的效果,并且减少不必要的输入原型的创建可以使用字面量. function Box(){} //使用字面量的方法创建原型对象,这里的{}就是对象,是Object ...
- HL-340编译驱动
make -C /lib/modules/3.4.39/build SUBDIRS=/home/linaro/Desktop/ch341_drv modulesmake: *** /lib/modul ...
- Extjs 数据代理
Ext.data.proxy.Proxy 代理类的根类 客户端代理: 1.LocalStorageProxy:将数据存储在localStorage中,此种方式可以持久的将数据存储在客户端 要使用代理, ...
- Dockerfile注意事项
准则 尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件. 避免安装不必须的包. 每个容器应该只关注一个功能点. 最小化镜像的层数. 多行参数时应该 ...
- BZOJ 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者(贪心)
这= =,就是线段覆盖对了= =直接贪心就行了= = CODE: #include<cstdio>#include<iostream>#include<cstring&g ...
- Xamarin组件包 Xamarin.ToolKit第二波
Xamarin.ToolKit第二波 一 圆角按钮 xamarin.froms提供的标准button按钮设置了圆角和边框,都没有明显圆角样式,于是乎自己重写了渲染类.道理吧就是重写ButtonRend ...
- Windows内存管理简介:
1:连续的内存空间分配: (1)单一连续分配:只能单作业,单任务运行: 分为系统和用户区:用户区是指除了系统需外左右的内存,由于单用户,单任务,要不都被占用,要不全空 (2):固定空间分配:固定分 ...
- SaberRD之直流工作点分析
直流工作点分析(DC Operating Point Analysis)用于确定电路的静态工作点. 静态工作点的概念来源于三极管的电流放大特性.三极管放大电路中,当交流输入信号为零时,电路处于直流工作 ...
- LOGISTIC回归分析
前面的博客有介绍过对连续的变量进行线性回归分析,从而达到对因变量的预测或者解释作用.那么如果因变量是离散变量呢?在做行为预测的时候通常只有"做"与"不做的区别" ...
- 第六篇 项目疑问 ------- BaseService<T> where T : class, new() 含义
public abstract class BaseService<T> where T : class, new() { //当前仓储 //DbSession的存放 //为了职责单一的原 ...