Example #1
0
 public function design()
 {
     if (IS_POST) {
         //字段基本检测
         Validate::make([['title', 'required', '模板名称不能为空'], ['industry', 'required', '请选择行业类型'], ['name', 'regexp:/^[a-z]\\w+$/i', '模板标识必须以英文字母开始, 后跟英文,字母,数字或下划线'], ['version', 'regexp:/^[\\d\\.]+$/i', '请设置版本号, 版本号只能为数字或小数点'], ['resume', 'required', '模板简述不能为空'], ['author', 'required', '作者不能为空'], ['url', 'required', '请输入发布url'], ['thumb', 'required', '模板缩略图不能为空'], ['position', 'regexp:/^\\d+$/', '微站导航菜单数量必须为数字']]);
         //模板标识转小写
         $_POST['name'] = strtolower($_POST['name']);
         //模板缩略图
         if (!is_file($_POST['thumb'])) {
             message('缩略图文件不存在', 'back', 'error');
         }
         //检查插件是否存在
         if (is_dir('theme/' . $_POST['name']) || $this->db->where('name', $_POST['name'])->first()) {
             message('模板已经存在,请更改模板标识', 'back', 'error');
         }
         if (!mkdir('theme/' . $_POST['name'], 0755, TRUE)) {
             message('模板目录创建失败,请修改 theme 目录的权限', 'back', 'error');
         }
         mkdir('theme/' . $_POST['name'] . '/mobile', 0755, TRUE);
         mkdir('theme/' . $_POST['name'] . '/web', 0755, TRUE);
         //缩略图处理
         $info = pathinfo($_POST['thumb']);
         copy($_POST['thumb'], 'theme/' . $_POST['name'] . '/thumb.' . $info['extension']);
         $_POST['thumb'] = 'thumb.' . $info['extension'];
         $this->createManifestFile();
         message('模板创建成功', 'prepared', 'success');
     }
     $modules = Db::table('modules')->get() ?: [];
     return view()->with('modules', $modules);
 }
Example #2
0
 public function doSitepost()
 {
     $tid = Request::get('tid', 0, 'intval');
     $ticket = new Ticket();
     if (IS_POST) {
         //表单验证
         switch (Request::get('type')) {
             case 1:
                 //折扣券
                 Validate::make([['condition', 'regexp:/^[0-9\\.]+$/', '"满多少钱可使用"只能为数字'], ['discount', 'regexp:/^0\\.\\d$/', '"折扣"只能为0-1的小数']]);
                 break;
             case 2:
                 Validate::make([['condition', 'regexp:/^[0-9\\.]+$/', '"使用条件"只能为数字'], ['discount', 'regexp:/^[0-9\\.]+$/', '"代金券面额"只能为数字']]);
                 if ($_POST['condition'] < $_POST['discount']) {
                     message('代金券面额必须少于使用条件的金额。', 'back', 'error');
                 }
                 //代金券
                 break;
         }
         $ticket['tid'] = $tid;
         foreach (Request::post() as $k => $v) {
             $ticket[$k] = $v;
         }
         $insertTid = $ticket->save();
         $tid = $tid ?: $insertTid;
         //模块设置
         $ticketModule = new TicketModule();
         $ticketModule->where('tid', $tid)->delete();
         foreach (Request::post('module', []) as $module) {
             $ticketModule['tid'] = $tid;
             $ticketModule['module'] = $module;
             $ticketModule->save();
         }
         //会员组
         $ticketGroups = new TicketGroups();
         $ticketGroups->where('siteid', SITEID)->where('tid', $tid)->delete();
         foreach (Request::post('groups', []) as $group_id) {
             $ticketGroups['tid'] = $tid;
             $ticketGroups['group_id'] = $group_id;
             $ticketGroups->save();
         }
         message('卡券数据更新成功', site_url('lists', ['type' => q('type')]));
     }
     //文字描述
     if (q('get.type') == 1) {
         $msg = ['module' => ['title' => '折扣券'], 'title' => ['title' => '折扣券名称', 'help' => ''], 'condition' => ['title' => '满多少钱可打折', 'help' => '请填写整数。默认订单金额大于0元就可以使用'], 'discount' => ['title' => '折扣', 'help' => '请填写0-1的小数。'], 'description' => ['title' => '折扣券说明', 'help' => ''], 'amount' => ['title' => '折扣券总数量', 'help' => '此设置项设置折扣券的总发行数量。'], 'limit' => ['title' => '每人可使用数量', 'help' => '此设置项设置每个用户可领取此折扣券数量。']];
     } else {
         $msg = ['module' => ['title' => '代金券'], 'title' => ['title' => '代金券名称', 'help' => ''], 'condition' => ['title' => '使用条件', 'help' => '订单满多少钱可用。'], 'discount' => ['title' => '代金券面额', 'help' => '代金券面额必须少于使用条件的金额。'], 'description' => ['title' => '代金券说明', 'help' => ''], 'amount' => ['title' => '代金券总数量', 'help' => '此设置项设置代金券的总发行数量。'], 'limit' => ['title' => '每人可使用数量', 'help' => '此设置项设置每个用户可领取此代金券数量。']];
     }
     $field = Db::table('ticket')->find($tid);
     //所有会员组
     $groups = service('site')->getSiteGroups();
     //卡券可使用的模块
     $modules = service('ticket')->getTicketModules($tid);
     //卡券可使用的会员组
     $groupsIds = service('ticket')->getTicketGroupIds($tid);
     View::with(['msg' => $msg, 'field' => $field, 'groups' => $groups, 'modules' => $modules, 'groupsIds' => $groupsIds]);
     return view($this->template . '/post.html');
 }
Example #3
0
 public function validate()
 {
     $v = \Validate::make($this->attributes, $this->{$rules});
     if ($v->passes()) {
         return true;
     }
     $this->errors = $v->messages();
     return false;
 }
Example #4
0
 public function doSitePost()
 {
     if (IS_POST) {
         Validate::make([['welcome', 'required', '欢迎信息关键字 不能为空'], ['default', 'required', '默认信息关键字 不能为空']]);
         $data['welcome'] = Request::post('welcome');
         $data['default_message'] = Request::post('default');
         Db::table('site_setting')->where('siteid', SITEID)->update($data);
         service('site')->updateCache();
         message('系统回复消息设置成功', '', 'success');
     }
     return view($this->template . '/post.html');
 }
Example #5
0
 /**
  * 后台帐号登录
  * @return mixed
  */
 public function login()
 {
     $User = new User();
     if (IS_POST) {
         Validate::make([['username', 'required', '用户名不能为空', 3], ['password', 'required', '请输入帐号密码', 3], ['code', 'captcha', '验证码输入错误', 1]]);
         if (!service('user')->login(Request::post())) {
             message($User->getError(), 'back', 'error');
         }
         //系统维护检测
         service('user')->checkSystemClose();
         message('登录成功,系统准备跳转', q('get.from', u('system/site/lists')));
     }
     if (Session::get('user.uid')) {
         go('system/site/lists');
     }
     return view();
 }
Example #6
0
 public function doWebChangeMobile()
 {
     if (IS_POST) {
         Validate::make([['mobile', 'required|phone', '手机号输入错误', 3]]);
         if (Validate::fail()) {
             message(Validate::getError(), 'back', 'error');
         }
         if ($this->db->where('mobile', $_POST['mobile'])->where('uid', '<>', Session::get('member.uid'))->get()) {
             message('手机号已经被使用', 'back', 'error');
         }
         $_POST['uid'] = Session::get('member.uid');
         if ($d = $this->db->save()) {
             //更新用户session
             $this->db->updateUserSessionData();
             message('手机号更新成功', web_url('entry/home'), 'success');
         }
         message($this->db->getError(), 'back', 'error');
     }
     View::make($this->ucenter_template . '/change_mobile.html');
 }
Example #7
0
 public function design()
 {
     if (IS_POST) {
         //字段基本检测
         Validate::make([['title', 'required', '模块名称不能为空'], ['industry', 'required', '请选择行业类型'], ['name', 'regexp:/^[a-z]\\w+$/i', '模块标识必须以英文字母开始, 后跟英文,字母,数字或下划线'], ['version', 'regexp:/^[\\d\\.]+$/i', '请设置版本号, 版本号只能为数字或小数点'], ['resume', 'required', '模块简述不能为空'], ['detail', 'required', '请输入详细介绍'], ['author', 'required', '作者不能为空'], ['url', 'required', '请输入发布url'], ['versionCode', 'required', '请选择兼容版本'], ['thumb', 'required', '模块缩略图不能为空'], ['cover', 'required', '模块封面图不能为空']]);
         //模块标识转小写
         $_POST['name'] = strtolower($_POST['name']);
         //检查插件是否存在
         if (is_dir('module/' . $_POST['name']) || is_dir('addons/' . $_POST['name']) || $this->module->where('name', $_POST['name'])->first()) {
             message('模块已经存在,请更改模块标识', 'back', 'error');
         }
         if (!mkdir('addons/' . $_POST['name'], 0755, TRUE)) {
             message('模块目录创建失败,请修改addons目录的权限', 'back', 'error');
         }
         mkdir('addons/' . $_POST['name'] . '/template', 0755, TRUE);
         //模块缩略图
         $info = pathinfo($_POST['thumb']);
         copy($_POST['thumb'], 'addons/' . $_POST['name'] . '/thumb.' . $info['extension']);
         $_POST['thumb'] = 'thumb.' . strtolower($info['extension']);
         //封面图片
         $info = pathinfo($_POST['cover']);
         copy($_POST['cover'], 'addons/' . $_POST['name'] . '/cover.' . $info['extension']);
         $_POST['cover'] = 'cover.' . strtolower($info['extension']);
         $this->siteScript();
         $this->moduleScript();
         $this->createMessageScript();
         $this->createManifestFile();
         message('模块创建成功', 'prepared', 'success');
     } else {
         return view();
     }
 }
Example #8
0
 public function doSiteTrade()
 {
     //会员编号
     $uid = Request::get('uid');
     //1 积分 2 余额
     $type = Request::get('type');
     if (IS_POST) {
         Validate::make([['remark', 'required', '备注不能为空'], ['remark', 'num', '更改数量必须为数字']]);
         //更改数量
         $data = [];
         $data['uid'] = $uid;
         $data['credittype'] = $type;
         $data['num'] = Request::post('num');
         $data['operator'] = v('user.info.uid');
         $data['remark'] = Request::post('remark');
         service('credit')->changeCredit($data);
         message(v("setting.creditnames.{$type}.title") . '更改成功', '', 'success');
     }
     return view($this->template . '/trade.html')->with(['uid' => $uid, 'type' => $type]);
 }
Example #9
0
 public function cover()
 {
     //验证登录
     service('user')->loginAuth();
     //后台分配菜单
     service('menu')->assign();
     if (!service('module')->verifyModuleAccess()) {
         message('你没有操作权限', 'back', 'error');
     }
     $bid = Request::get('bid');
     $replyCover = new ReplyCover();
     $moduleBindings = Db::table('modules_bindings')->where('bid', $bid)->first();
     if (IS_POST) {
         Validate::make([['title', 'required', '标题不能为空'], ['description', 'required', '描述不能为空'], ['thumb', 'required', '封面图片不能为空']]);
         $data = json_decode($_POST['keyword'], TRUE);
         $data['rid'] = $replyCover->where('module', v('module.name'))->where('do', $moduleBindings['do'])->pluck('rid');
         $data['module'] = 'cover';
         $data['rank'] = $data['istop'] == 1 ? 255 : min(255, intval($data['rank']));
         $data['keywords'] = $data['keyword'];
         $rid = service('WeChat')->rule($data);
         //添加封面回复
         $replyCover['id'] = $replyCover->where('rid', $rid)->pluck('id');
         $replyCover['do'] = $moduleBindings['do'];
         $replyCover['rid'] = $rid;
         $replyCover['title'] = $_POST['title'];
         $replyCover['description'] = $_POST['description'];
         $replyCover['thumb'] = $_POST['thumb'];
         $replyCover['url'] = $_POST['url'];
         $replyCover['module'] = v('module.name');
         $replyCover->save();
         message('功能封面更新成功', 'back', 'success');
     }
     $field = $replyCover->where('siteid', SITEID)->where('module', v('module.name'))->where('do', $moduleBindings['do'])->first();
     //获取关键词回复
     if ($field) {
         $data = Db::table('rule')->where('rid', $field['rid'])->first();
         $data['keyword'] = Db::table('rule_keyword')->orderBy('id', 'asc')->where('rid', $field['rid'])->get() ?: [];
         View::with('rule', $data);
     }
     $field['url'] = '?a=site/' . $moduleBindings['do'] . "&siteid=" . SITEID . "&t=web&m=" . v('module.name');
     $field['name'] = $moduleBindings['title'];
     return view()->with('field', $field);
 }