前端到后台ThinkPHP开发整站(3)
2018-06-22 05:24:00来源:未知 阅读 ()
继续我的这个项目的第三晚的开发了,时间比较少,今晚写的代码不多,今晚仍然是造轮子写一个公共的控制器和一个公共的JS。直接上代码吧!
以下是一个公共的控制器,后台控制器都继承于它,构造函数中进行验证当前用户是否登录状态和提供快获取当前登录用户的数据。
<?php namespace Admin\Controller; use Think\Controller; /** * 后台管理公共控制器 */ class CommonController extends Controller{ public function __construct(){ parent::__construct(); $this->_init(); } /** * 初始化 */ private function _init(){ // 如果已经登录 $isLogin=$this->isLogin(); if(!$isLogin){ //跳转到登录页面 $this->redirect('/admin.php?c=login'); } } /** * 获取当前登录用户信息 */ public function getLoginUser(){ return session('adminUser'); } /** * 判断是否登录 */ public function isLogin(){ $user=$this->getLoginUser(); return ($user && is_array($user)); } /** * 更新数据状态 */ public function setStatus($data,$models){ try{ if($_POST){ $id=$data['id']; $status=$data['status']; if(!$id){ return jsonResult(0, 'ID不存在'); } $ret=D($models)->updateStatusById($id,$status); if($ret){ return jsonResult(1, '操作成功'); }else{ return jsonResult(0, '操作失败'); } } return jsonResult(0,'没有提交的内容'); }catch(Exception $ex){ return jsonResult(0, $e->getMessage()); } } /** * 数据排序 */ public function listorder($model=''){ $listorder=$_POST['listorder']; $jumpUrl=$_SERVER['HTTP_REFERER']; $errors=array(); $resultData=array('jump_url'=>$jumpUrl); try{ if($listorder){ foreach($listorder as $id=>$v){ $id=D($model)->updateListorderById($id,$v); if($id===FALSE){ $errors[]=$id; } } if(array_count_values($errors)>0){ $group=implode(',', $errors); return jsonResult(0, "排序失败-{$group}", $data,$resultData); } return jsonResult(1, '排序成功', $resultData); } }catch(Exception $ex){ return jsonResult(0, $ex->getMessage()); } return jsonResult(0, '排序失败', $resultData); } } ?>
以下一段JS,主要是做一些表单操作的方法。
var common = function(queryDom) { if(!queryDom){ console.error('请传入需要操作的DOM选择字符'); return; } function commonObj() { this.dom = ''; } function todelete(url, data) { $.post( url, data, function(s) { if(s.status == 1) { return dialog.success(s.message, ''); // 跳转到相关页面 } else { return dialog.error(s.message); } }, "JSON"); } /** * 提交form表单操作 */ commonObj.prototype.add = function(formDom, func) { $(this.dom).click(function() { var data = $(formDom).serializeArray(); postData = {}; $(data).each(function(i) { postData[this.name] = this.value; }); console.log(postData); // 将获取到的数据post给服务器 url = SCOPE.save_url; jump_url = SCOPE.jump_url; $.post(url, postData, function(result) { if(result.status == 1) { //成功 if(typeof(func) == 'function') { func(); } else { return dialog.success(result.message, jump_url); } } else if(result.status == 0) { // 失败 return dialog.error(result.message); } }, "JSON"); }); } /** * 编辑模块 */ commonObj.prototype.click = function() { $(this.dom).on('click', function() { var id = $(this).attr('attr-id'); var url = SCOPE.edit_url + '&id=' + id; window.location.href = url; }); } /* * 删除操作 */ commonObj.prototype.delete = function() { $(this.dom).on('click', function() { var id = $(this).attr('attr-id'); var a = $(this).attr("attr-a"); var message = $(this).attr("attr-message"); var url = SCOPE.set_status_url; data = {}; data['id'] = id; data['status'] = -1; layer.open({ type: 0, title: '是否提交?', btn: ['yes', 'no'], icon: 3, closeBtn: 2, content: "是否确定" + message, scrollbar: true, yes: function() { // 执行相关跳转 todelete(url, data); }, }); }); } /** * 排序操作 */ commonObj.prototype.order = function() { $(this.dom).click(function() { // 获取 listorder内容 var data = $("#singcms-listorder").serializeArray(); postData = {}; $(data).each(function(i) { postData[this.name] = this.value; }); console.log(data); var url = SCOPE.listorder_url; $.post(url, postData, function(result) { if(result.status == 1) { //成功 return dialog.success(result.message, result['data']['jump_url']); } else if(result.status == 0) { // 失败 return dialog.error(result.message, result['data']['jump_url']); } }, "JSON"); }); } /** * 更改状态 */ commonObj.prototype.updateStatus = function() { $(this.dom).on('click', function() { var id = $(this).attr('attr-id'); var status = $(this).attr("attr-status"); var url = SCOPE.set_status_url; data = {}; data['id'] = id; data['status'] = status; layer.open({ type: 0, title: '是否提交?', btn: ['yes', 'no'], icon: 3, closeBtn: 2, content: "是否确定更改状态", scrollbar: true, yes: function() { // 执行相关跳转 todelete(url, data); }, }); }); } commonObj.prototype.push = function() { $(this.dom).click(function() { var id = $("#select-push").val(); if(id == 0) { return dialog.error("请选择推荐位"); } push = {}; postData = {}; $("input[name='pushcheck']:checked").each(function(i) { push[i] = $(this).val(); }); postData['push'] = push; postData['position_id'] = id; //console.log(postData);return; var url = SCOPE.push_url; $.post(url, postData, function(result) { if(result.status == 1) { // TODO return dialog.success(result.message, result['data']['jump_url']); } if(result.status == 0) { // TODO return dialog.error(result.message); } }, "json"); }); } return new commonObj(); }
今晚就弄了那么点,反正慢慢来,不会有人催我项目进度的,主要是自己能坚持把这个项目做完。代码写到这里天色已晚,困了,都没去运行下,肯定会有些BUG的了,等一个模块开发完再去调试代码吧!
源码地址:https://github.com/YoZiLin/TP-CMS
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:thinkphp分页集成
- ThinkPHP3.1.x修改成功与失败跳转页面的方法 2020-03-22
- ThinkPHP分页类使用详解 2020-02-24
- ThinkPHP验证码使用简明教程 2020-02-24
- thinkPHP5项目中实现QQ第三方登录功能 2020-02-19
- thinkPHP5分页功能实现方法分析 2020-02-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash