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); }
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'); }
public function validate() { $v = \Validate::make($this->attributes, $this->{$rules}); if ($v->passes()) { return true; } $this->errors = $v->messages(); return false; }
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'); }
/** * 后台帐号登录 * @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(); }
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'); }
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(); } }
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]); }
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); }