
Easy-Admin是一个通用的后台信息管理系统。本通用后台包含以下功能:
1、RBAC权限管理功能:便捷地对系统中用户进行权限分配,所以权限分配可以在一个页面分配完成。
2、简单新闻发布版块:基本的新闻发布、修改、删除。
3、无极限分类功能: 满足新闻分类等的无极限分类的功能
系统说明
Easy-Admin就如其名,它能够为你快速搭建一个方便的后台信息管理系统,并且提供简洁易用的管理界面。大部分CMS系统往往功能都是比较庞大繁杂的,不管从学习使用或者是进行二次开发都是成本比较高的。Easy-Admin不是一个CMS,它仅仅帮你创建一个方便可用的后台信息管理,并集成一些常用的操作。简而言之,Easy-Admin能够帮你轻松搞定信息的CURD、权限管理(多管理员)和数据文件管理。手头有企业站小伙伴们可以试试看,能帮到你就是这个项目的价值所在。
环境要求
请确保当前系统的PHP版本大于5.3。
访问安装文件
http://domain/easy-admin/install.php
文件结构
当前项目文件提供的是安装时所需最小要求,安装前后的目录结果会有所变化。安装后系统自动将删除Install目录和install.php文件,同时生成Data,Common,Cache三个目录。
下面是安装前的目录结构:
Easy-Admin
├── Admin
│ ├── Common
│ │ ├── Common
│ │ └── Conf
│ └── Home
│ ├── Controller
│ ├── Logic
│ ├── Model
│ ├── Service
│ └── View
├── Install
│ ├── Common
│ │ ├── Common
│ │ └── Conf
│ ├── Data
│ └── Home
│ ├── Controller
│ └── View
├── Public
│ ├── images
│ │ ├── admin
│ │ └── install
│ ├── javascripts
│ │ ├── admin
│ │ └── install
│ ├── Min
│ │ ├── builder
│ │ └── lib
│ ├── stylesheets
│ │ ├── admin
│ │ └── install
│ └── uploads
├── ThinkPHP
├── LICENSE
├── README.md
├── admin.php
└── install.php
自定义
支持数据类型
字符型:char, varchar
整型:tinyint, int, smallint, bigint
浮点型:float, double
文本型:text, mediumtext, longtext
支持表单域类型
text:文本域
password:密码域
select:下拉框
radio:单选框
checkbox:复选框
textarea:多行文本域
file:文件上传,返回的值是文件存放的位置
date:日期控件
editor:编辑器,KingEditor全功能和简介功能
relationlink:可关联其他模型的下拉框
主菜单
菜单配置在Admin/Comom/Conf/menu_config.php文件中。
// File: Admin/Comom/Conf/menu_config.php
'Posts' => array(
'name' => '文章管理',
'target' => 'Posts/index',
// 'mapping' => 'test',
'sub_menu' => array(
array('item' => array('Posts/index' => '文章列表')),
array('item' => array('Posts/add') => '添加文章')),
array('item' => array('Posts/edit') => '修改文章')),
array('item' => array('Posts/delete') => '删除文章'))
)
)
'Posts':菜单对应的模块名称(Controller的名字)
'name':主菜单中显示出来的名字
'target':点击主菜单后跳转到的操作
'sub_menu':主菜单下的子菜单,即左侧的菜单
'mapping':把该子菜单映射到某个主菜单下
过滤函数
你可以选择过滤函数来过滤表单提交后某字段的值。比如,我们不希望文章标题中出现HTML效果,我们需要对它进行转义,那么我们就可以注册自定过滤函数来实现这个需求。
我们在Common/Common/目录下创建filter_function.php文件:
// File: Common/Common/filter_function.php
// 自定义的过滤函数
function my_html_filter($val) {
return htmlspecialchars($val);
}
// 注册函数
// registry_filter方法的参数必须是一个数组
registry_filter(array(
// 函数名
'my_html_filter'
));
// 不管是自定义还是php自带的函数,只要函数定义过了都可以注册
// registry_filter(array(
// 'htmlspecialchars'
// ));
经过上面的操作后我们就可以在字段定义中选择使用这个自定义函数了。
填充函数
我们有时希望某些字段值能自动填充,那么我们就可以通过注册填充函数来实现。比如,我们需要为每篇生成一个随机的uuid。
// File: Common/Common/fill_function.php
function uuid() {
$uuid = '';
// some logic code here
return $uuid;
}
registry_fill(array(
// 函数名
'uuid'
));
自定义填充函数和自定义过滤函数是一样的。
过滤函数必须要有一个参数和一个返回值,填充函数需要一个返回值。
内置filter:sql_injection、strip_sql_injection、filter_special_chars
内置fill:uuid、datetime
可配置项
系统提供较多的可配置项,当然你也可以完全不管,功能依然能够正常使用。
安全配置
// File: Admin/Comom/Conf/security_config.php
// 表单令牌
'TOKEN_ON' => false
'TOKEN_NAME' => '__hash__'
'TOKEN_TYPE' => 'md5'
'TOKEN_RESET' => true
// 认证token
'AUTH_TOKEN' => 'eaadmin'
// 登录超时
'LOGIN_TIMEOUT' => 3600
// 不用认证登录的模块
'NOT_LOGIN_MODULES' => 'Public'
// 开启权限认证
'USER_AUTH_ON' => true
// 登录认证模式
'USER_AUTH_TYPE' => 1
// 认证识别号
'USER_AUTH_KEY' => 'mineaad'
// 超级管理员认证号
'ADMIN_AUTH_KEY' => 'eaadminae'
// 游客识别号
'GUEST_AUTH_ID' => 'guest'
// 无需认证模块
'NOT_AUTH_MODULE' => 'Public'
// 需要认证模块
'REQUIRE_AUTH_MODULE' => ''
// 认证网关
'USER_AUTH_GATEWAY' => 'Public/index'
// 关闭游客授权访问
'GUEST_AUTH_ON' => false
// 管理员模型
'USER_AUTH_MODEL' => 'Admin'
邮箱配置
// File: Admin/Comom/Conf/mail_config.php
// SMTP服务器
'SMTP_HOST' => 'smtp.example.com'
// SMTP认证
'SMTP_AUTH' => true
// SMTP端口
'SMTP_PORT' => 465
// SMTP服务器用户名
'SMTP_USER_NAME' => 'smtpservername'
// SMTP服务器密码
'SMTP_PASSWORD' => 'smtpserverpwd'
// 发送邮件的邮箱地址
'MAIL_FROM' => 'email@example.com'
// 发送邮件的发送者名称
'SENDER_NAME' => 'ea-admin'
// 回复者邮件
'MAIL_REPLY' => 'email@example.com'
// 回复者名称
'REPLYER_NAME' => 'youname'
// 字符集
'SMTP_CHARSET' =>'UTF-8'
// 邮件内容替换,?为占位符
'MAIL_BODY' => '在浏览器中运行下面的链接进行重置密码操作:
?'
数据备份
// File: Admin/Comom/Conf/backup_config.php
// 数据库文件备份的目录路径
'BACKUP_DIR_PATH' => WEB_ROOT . 'Data/'
// 数据库文件zip存放目录路径
'BACKUP_ZIP_DIR_PATH' => WEB_ROOT . 'Data/zip/'
// 数据库文件备份名称前缀
'BACKUP_PREFIX' => 'ea_'
// 数据库备份文件名中的随机数长度
'BACKUP_FILE_CODE_LENGTH' => 6
// sql文件注释头名称
'BACKUP_DESCRIPTION_NAME' => 'Easy-Admin Backup File.'
// sql文件注释头url
'BACKUP_DESCRIPTION_URL' => 'Github: http://github.com/happen-zhang/easy-admin'
// 读取sql文件注释的最大字节数
'BACKUP_DESCRIPTION_LENGTH' => 2000
// sql每页条数
'BACKUP_SQL_LIST_ROWS' => 10000
// sql文件分卷大小
'SQL_FILE_SIZE' => 5242880
约定
方法名
add:数据表单添加页面
create:对提交的表单数据处理后存到数据库
edit:数据表单编辑页面
update:对提交的表单数据处理后更新到数据库
方法名:helloWorld()
类中的变量名(包括方法中的变量):$helloWorld = 'hi'
函数:hello_world()
类外部的变量名:$hello_world = 'hi'
键值: beginer['hello_world'] = 'hi'
表单域名:
扩展库说明
本系统的开发没有修改过ThinkPHP中的核心系框架中的内容,如果需要,你可以尝试着对ThinkPHP版本的升级。
下面是引用到的PHP第三方库:
Min:Public/Min
PHPMailer:ThinkPHP/Library/Vendor/PHPMailer:ThinkPHP
下面是ThinkPHP工具类,均放在 ThinkPHP/Library/Org/Util/ 目录下:
Page.class.php:分页类 有改动
Rbac.class.php:角色权限管理
UploadFile.class.php:文件上传类 有改动
Category.class.php:无限分级类
程序作者说明
本系统的页面来源于 @leohdr ,在此感谢 @leohdr 兄的分享。
本系统的代码都是我一个人所写,我十分愿意分享给大家。由于个人精力有限,系统可能还存在尚未发现的bug,如果你在使用系统的过程发现bug,可以issuse给我,谢谢。