加入CODE CHINA

· 不限速    · 不限空间    · 不限人数    · 私仓免费

免费加入
    README.md

    前言

    • 【重要】

    如果你先前已经下载了源码,后期发现存在些许问题时 请及时反馈给我,以便及时更新; 或者回来参考我更新的内容,尤其是 “使用指导” 部分,或许这时我已经自测并做了补充信息哦.

    框架版本: ThinkPHP5.1.40
    后台入口: xxxxx.com/cmsx;
    • 最新更新
    2021-05-21
     > 角色权限配置 显示优化
     > 菜单,对于权限添加编辑重写
     > 链接访问,权限设置整理逻辑

    【推荐】一款正在优化中CMS管理系统 —— Lin-CMS

    ①. 闲话闲说

    - 近期使用 LayUI 的过程中;
    - 越发觉得对方的设计理念符合我的审美,主要是后台开发者使用简单;
    - 而另一方面;
    - 想到作为一名 PHPer 却一直没有一套属于自己的后台管理系统;
    - 所以决定花费一些时间;
    - 在借鉴官方文档和其他开发者设计思路的前提下,打造一个属于自己的后台管理系统 ...

    ②. 提示信息

    系统设计:后端基于PHP语言设计,前端基于 Layui 模块化框架

    > 补充时间:[2018-11-21 19:36]
    > 项目开发中,难免会用到一些比较流行的 PHP开发框架, 所以在此提供 ThinkPHP5.1 框架下整理的系统代码
    > 近期抽出时间,正在优化 ThinkPHP5  这个框架的代码,可用,也希望多给指点,进行后期的优化升级
    > 后期的更新优化记录,会补充到后面的附录中 ...

    一 主要功能

    毕竟一个人瞎折腾,能力有限,暂且展示已完成的主要功能,欢迎指摘以及技术指导,道友参上!

    ①. 菜单管理

    菜单的链接即为定义的路由

    • 根据鄙人设计思路:一般若是根级目录下有二级目录时,此根级目录的链接不生效,不然无法正确引导其他页面

    • 说明信息

    > 主要注意的是其中的 "action"  的填写,可以参考已有的数据,这是对应于路由文件中的写法

    ②. 管理员列表

    后期如果添加更多的信息,可自行扩展,此处是主要的属性信息

    • 说明信息
    > 对于密码的加密,一般每个开发者都有自己的想法,我的加密比较简单 md5+base64,可自行复杂性优化
    > 封装处理方法为:IAuth::setAdminUsrPassword()
    > 修改数据的时候,注意,如果不想改动密码,是无需进行填写的!

    ③. 角色管理

    此功能主要是为了给管理员分配不同的权限

    • 即打开的导航菜单更有不同,以避免权力的滥用,这部分的 js 代码写的最耗费时间

    ④. 权限配置

    此处,最近参考 ThinkPHP 之前框架对权限的设计,进行了补充优化

    • 说明信息
    > 1.对于权限控制功能,隐藏的比较深; 要求只对二级菜单后 做权限控制,以区分不同角色的分级管理
    > 2.跟菜单的添加操作一样,填错了直接后面删除即可,感觉这样更少了麻烦
    > 3.注意,新补充的方法链接如果不做权限的添加,那很可能无法访问哦!

    ⑤. 文章管理

    这是常规的后台信息管理功能,其次还有个“今日赠言”,也是大同小异

    • 此处较为亮点的功能即为 layer文件上传TinyMCE 富文本编辑器 的使用

    Laravel+Layer 图片上传功能整理

    二 使用指导

    对于项目的安装配置,毕竟是两种不同的框架设计,所以在使用上,需要 “因材施教”,在此进行分别指导说明

    • 第一步. 执行下面的命令,加载 ThinkPHP 框架核心代码

    composer install

    【补充—— 2020-12-11】:

    最近发现,使用 composer2.0 会造成很多已安装拓展包的冲突,这里建议不要升级 composer !

    • 此时,请确认一下文件 \vendor\topthink\think-captcha\src\helper.php 中的 captcha_img() 方法,并进行覆写如下:
    function captcha_img($id = '')
    {
        $js_src = "this.src='".captcha_src()."'";
        return '<img src="' . captcha_src($id) . '" title="点击更新验证码" alt="点击更新验证码" onclick="'.$js_src.'" />';
        //return '<img src="' . captcha_src($id) . '" alt="captcha" />';
    }

    【注】:

    • 上面的源码中,注意 "οnclick" 一词,需要手动输入以防止输入法影响 (已经跟CSDN 提了建议,明明依然存在问题,非说已经改好了!也是无语了!!!

    此处操作,保证登录验证码的正常使用,可参看文章 :【 ThinkPHP5.0+ 验证码功能实现

    • 第二步. 获取数据库数据

    为了操作方便,建议打开 MySql 管理工具,直接运行所提供的 "database/tp5_pro.sql" 数据库文件

    • 说明信息
    > 其次就是到 config/database.php 文件中,配置正确的数据库连接信息
      这是鄙人的默认数据,后期可自行修改优化.
    > 注意前面的 运行 composer 命令;
      强烈建议学习新版本的框架,要学会使用composer哦

    无聊的话,也可以试看一下之前写的一篇 Composer 简单使用 —— Composer de涉水初探

    Ⅲ. 浏览器访问

    对于配置完成后的访问,一般都是需要自行配置虚拟域名的哦

    • 以我的操作为例,在自己的集成环境 PhpStudy 服务中:
    > 配置的虚拟域名为 tp51Pro.com ;
    > 选用的服务器为 apache ;
    > PHP版本:5.6+ (请选择高版本,以避免不支持的情况)

    如果使用的是 Nginx 做服务器,需要进行 URL 重写 的设置,可参考文章 :【ThinkPHP5.1 配置Nginx/Apache下的 URL重写

    • 则入口网址为:
    > 前台 : tp51pro.com/
    > 后台 :
    	    tp51pro.com/cmsx (推荐)
    	    tp51pro.com/cms/login/index.html
    	    
    	    登录数据  ——  [用户名]:moTzxx@admin  [密码]:admin 
    • 前台登录效果,仅为参考,毕竟主要的任务时进行后台管理的实现嘛
    • 后台首页进入效果:

    ➹ 三 行为比较

    其实,对应的 Laravel5.5 框架初步编写的后台管理系统早已支持使用,后期优化完善后再做上传比较

    • 【提示】:
    > 可以注意到: 当下流行的 ThinkPHP5.1 和 Laravel5.5 有着极为接近的设计理念;
       甚至同样的代码,仅仅稍作修改即能通用;
       例如:
    >  1. 注册路由方式类同
    >  2. 模型的对象化使用极为相似,但是两者间的几个关键词要注意;
       	  比如 ThinkPHP5.1使用 field、order、find、select、alias等;
       	  而 Laravel5.5 使用 select、orderBy、get、first 等
    >  3. model 类 命名的方式不一样,注意 "s",比如表格 articles ,前者 model 命名为 Articles,后者却为 Article
    >  4. 对于数据表的字段命名
    	  注意到一点:其中的 "created_at/updated_at" 不能生效,
    	  是因为框架默认的自动时间戳配置不同
    >  5. 页面跳转方式要注意下,同时前者可以 __construct() 初始化判断 Session 数据,而后者不可
    >  6. 等等等 ...

    ✎ 附录

    ①. GitHub 源码下载

    ②. 好说歹说

    - 首先,此项目的设计参考了很多网上资源,所以即便有任何的谬赞之处也不好居功
      尤其使用了好多自己中意的图片
      比如 —— 吾皇巴扎黑,阿里巴巴矢量图标库
    
    - 其次,自己主要是为了方便使用
      下载使用的朋友,后期可根据自己的需求进行功能扩展
    
    - 最后的最后,在接下来的时间里,我还会根据自己的经验进行项目优化
      在此开放提供源码也希望能得到有兴趣的伙伴给与中肯的意见
      欢迎指摘,谢谢...

    ③. 功能扩展日志

    • 2018/12/03 补充添加了 登录验证码 的功能

    方法请参考: ThinkPHP5 验证码功能实现, 请自行补充验证码点击刷新功能的代码!

    ④. FTP文件上传操作的扩展配置

    • 相信成型的网站基本都需要一个或几个图片资源服务器,这时,考虑使用的便是 FTP文件上传功能的扩展
    - 本项目做了处理,如果道友已经创建好了FTP信息,可以打开文件 "/config/ftp.php"
    - 对应填写 FTP 配置信息
    - 设置 "FTP_USE" 参数为 true
    - 并配置 "IMG_SERVER_PUBLIC" 参数为图片服务器地址

    ⑤. 优化登录信息加密保存

    • 相对而言,后台项目的开发触及数据的操作,对于登录信息的保存要求自然严格一些; 近期,优化设计了这一模块,可在后台进行配置

    	> 其对应的配置文件为: "/config/sys_auth.php" ;
    	> 注意截图中的提示信息,方便后期安全性的更新操作!

    补充】:

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/JingYin007/tp51Pro2

    发行版本

    当前项目没有发行版本

    贡献者 1

    开发语言

    • TypeScript 53.2 %
    • JavaScript 35.8 %
    • CSS 4.7 %
    • HTML 3.6 %
    • PHP 1.8 %