CasPHP 便捷简单的 ThinkPHP 框架
便捷简单的 PHP 框架,自适应后台管理界面
Convenient and succinct(便捷的 简明的;言简意赅的)
核心框架:framework: 5.1.28
助手函数:think-helper: 1.0.6
验证码: think-captcha: 2.0.2
前端组件: layui v2.5.4
表格、弹窗、时间、上传、部分字体图标
https://www.layui.com/
表单验证器: bootstrapValidator v0.5.3
http://bootstrapvalidator.com
编辑器: KindEditor 4.1.10
http://kindeditor.net/
字体图标: Font Awesome 4.7.0
http://fontawesome.dashgame.com/
页面布局框架: Bootstrap v3.3.7
http://getbootstrap.com
修改源码部分,标记一下防止后期框架升级
- layui 表格工具栏添加操作可选项
operateToolbar
- ThinkPHP 分页添加参数
paginate(config['additionalInfo'])
- bootstrapValidator 输入验证改为失去光标验证
数据库字段定义
数据表是以模块名_控制器命名
是否系统内置;系统内置不可删除;1不删除,0可以删除
是否为菜单,0不是菜单,1菜单
是否启用,0禁用,1启用
是否属于基本权限;登录即可访问的页面;0不是,1是
权限管理
权限控制只是控制了 模块/控制器,方法没有控制
如果权限父级菜单禁用,子级是可以访问的,禁用只作用于设置的菜单
权限菜单批量删除,删除的是勾选的菜单,如果子级未勾选将不会删除,只是无法显示出来
权限/角色/用户【 禁用 】允许其他操作,只是用户不可访问
列表页面
列表页面因 ajax 请求返回数据的方式不方面调试,表格使用的是 layui 转为静态表格的方式
添加修改
所有添加修改页面不显示是否系统内置选项
删除
删除勾选,可以勾选复选框,后端数据不会删除(行内没有删除图标的数据)系统内置的数据
layui 待修复问题
1、弹窗第一次与第二次不一样大小
2、静态表格无法重载
3、表格右上方工具栏无法实现再次点击消失信息框
使用 ajax/直接跳转 提交的方法
登录、锁屏、重置密码、个人信息、删除、添加、修改
直接使用 ajax 提交的方法:
系统安装、发送邮件、是否为菜单、是否启用、单个/多个排序
数据验证页面
安装、登录、锁屏、个人信息、发送邮件、重置密码使用 validators.js 验证
语言包
语言包只定义了中文,如需其他语言自行定义
待修复bug
登录、找回密码 验证码无法自动刷新
ThinkPHP 框架不支持场景验证覆盖重写,版本 5.1.28 LTS,(https://github.com/top-think/think/issues/970)
待优化
icon 图标选择器添加一个关闭按钮
auth 权限列表因未找到合适的插件(因为其中判断条件较多)使用的是layui纯静态表格
构建form表单
public function test(){
$form=new Form();
$data=['key1'=>'value1sdfsdfsd','key2'=>'value2','key3'=>'value3dsfsdf'];
$value='key1';
$href=['key1'=>'href1','key2'=>'href2'];
$data2=explode(',','asdfdsfdsfdsfdsfds,b,c,d,e,f,g');
$select_data=explode(',','1,2');
$disable_data=explode(',','5,6');
return $form->tabNav($data,$value,'','')->fieldItem([
['name'=>'select_multiple','type'=>'select_multiple','data'=>$data2,'select_data'=>$select_data,'disable_data'=>$disable_data],
['name'=>'radio','type'=>'radio','data'=>$data,'value'=>'key3'],
['name'=>'checkbox','type'=>'checkbox','data'=>$data,'value'=>'key3'],
['name'=>'checkbox_multiple','type'=>'checkbox_multiple','data'=>$data2,'select_data'=>$select_data,'disable_data'=>$disable_data],
['data'=>'date','type'=>'date'],
['data'=>'time','type'=>'time']
])->create();
}
搜索表单构造器
// 搜索框框
$search_form=new searchForm();
$search=$search_form->fieldItem([
['name'=>'t','type'=>'date_range'],
$search_name_field
])->create(); // 模板中调用
{:action("common/Base/includePage",['template'=>'search','data'=>$search])}
项目地址:
https://github.com/xue-y/cas-php
https://packagist.org/packages/xue-y/cas-php
CasPHP 便捷简单的 ThinkPHP 框架的更多相关文章
- 基于ThinkPHP框架的简单的后台管理系统
版权声明:本文为博主原创文章,未经博主允许不得转载. 基于ThinkPHP框架的简单的后台管理系统 一个简单的后台管理系统,可能还不全面,可以自己改,有登录功能 实例如图:
- 攻城记:Thinkphp框架的项目规划总结和踩坑经验
一.项目模块规划 1.项目分为PC端.移动端.和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/Admin: 对应入口 ...
- ThinkPHP框架如何修改X-Powered-By
以前用ThinkPHP框架开发了一个小网站,前几天查询页面HTTP状态发现,里面有一项: X-Powered-By: ThinkPHP 2.0 这样虽然没什么,但感觉如果别有用心的人查询会知道你是用这 ...
- Thinkphp框架----微信公众测试号开发
最开始的一个步骤.注册一个微信公众测试号.URL:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login; 接口配置的信息,对新手 ...
- 【PHP ThinkPHP框架】小bug汇总[更新]
目录结构 1.函数调用 2.绑定select下拉框数据 3.PHP查询功能 4.格式化时间和价钱 5.IF标签比较两个变量 6.eq标签比较两个变量 7.新增信息或者修改信息的自动验证和自动填充 8. ...
- 阿里大于验证码发送 (ThinkPhp框架)
1.登录平台 阿里大于2.登陆之后我们可以看到资费,使用场景等,在进入正题之前我们需要一些准备工作,首先我们先了解下短信的请求参数,在这里我们需要注意的是sms_param这个参数,在接下来我们申请短 ...
- 使用Thinkphp框架开发移动端接口
本文给大家分享的是使用thinkphp框架开发移动端接口的2种方法,一种是开发API,另外一种是实现移动端访问自动切换移动主题模板,从而实现伪app访问,下面我们就来详细看下如何实现吧. 方案一:给 ...
- thinkphp框架的路径问题 - 总结
thinkphp框架的路径问题 - 总结 (2011-06-21 11:01:28) 转载▼ 标签: thinkphp 框架 路径 杂谈 分类: Php TP中有不少路径的便捷使用方法,比如模板中使用 ...
- ThinkPHP框架一
1.1 框架的概念 框架其实就是可重用代码的集合,框架的代码是框架架构的代码,不是业务逻辑代码,框架代码保护类.方法.函数等等,框架代码按照一定的规则组合起来就形成了框架. 1.2 不使用框架开发的时 ...
随机推荐
- Ubuntu下root账户无法使用xshell远程连接解决方法
以前使用xshell连接服务器跑程序都很顺利,但这次整了一个root账户,发现居然连不上.百度一下,发现ubuntu系统本身是拒绝root账户远程连接的. 解决办法:参考点击传送门
- Clang的线程安全分析静态工具
本文内容来自 Thread Safety Analysis,如需完整学习,请参考相关链接. Clang线程安全分析工具是C++语言的一种扩展,用于警告代码中潜在的竞争条件.它在编译期间进行静态分析,无 ...
- 转 zabbix debug and zabbix使用percona插件监控mysql
########## https://www.cnblogs.com/keithtt/p/8542987.html zabbix使用percona插件监控mysql 1.添加percona仓库. ...
- 【SSH进阶之路】Spring的IOC逐层深入——依赖注入的两种实现类型(四)
上篇博文,我们介绍了为什么使用IOC容器,和IOC的设计思想以及IOC容器的优缺点,并且给大家转载了一篇介绍IOC原理的博文,我们这篇主要给大家依赖注入的两种方式,以及他们的优缺点. 我们这篇博文还是 ...
- IDEA下同时使用Git和svn
使用Git时将文件改成Git,Svn时改成svn 修改项目下.idea目录的vcs.xml配置文件. <?xml version="1.0" encoding="U ...
- leetocode 207 课程表
解题思路: 本题可约化为:课程安排图是否是 有向无环图(DAG).即课程间规定了前置条件,但不能构成任何环路,否则课程前置条件将不成立. 思路是通过 拓扑排序 判断此课程安排图是否是 有向无环图(DA ...
- PHP_MySQL高并发加锁事务处理
1.背景: 现在有这样的需求,插入数据时,判断test表有无username为‘mraz’的数据,无则插入,有则提示“已插入”,目的就是想只插入一条username为‘mraz’的记录. 2.一般程序 ...
- [转帖]keepalived实现服务高可用
keepalived实现服务高可用 https://www.cnblogs.com/clsn/p/8052649.html 第1章 keepalived服务说明 1.1 keepalived是什么? ...
- learning、trying、teaching
在工作中学习和提升,学以致用,学习的效果是最好的:工作后学习不需要大段时间,而是要挤出时间,利用时间碎片来学习. 1,Learning 这是第一阶段,看书.google.看视频.看别人的博客,但要是“ ...
- enum类型的标签内容根据语言的取法
昨天做了一个开发,说要取enum里面英文label 例如 JournalType 枚举值有 transfer\profit/loss 但是在中文的AX系统时会显示“转移\盈亏”, 但是客户又 ...