迅睿CMS是基于PHP7设计的一款web内容管理系统,预设了丰富的模板管理功能,用户也可根据需要添加扩展类、CI扩展类和字段等等,支持多插件,具有高效、灵活和简洁的特点,为用户开发网站提供了完整的开源解决方案。适用于不同的场景。
软件特色
一、程序架构
迅睿CMS框架是采用PHP7全新语法开发的web内容管理系统开发框架,拥有迅睿CMS强大的内容管理功能和灵活扩展的特性,堪称 PHP 万能建站框架。强大而灵活的内容模块和插件机制,开发者可以自定义内容模块,也可以根据自身的需求以插件的形式进行扩展。
迅睿CMS框架采用最新CodeIgniter4框架,拥有完善的二次开发文档,并且遵循框架原生编程风格,非常方便二次开发;CodeIgniter 安装包中包含《用户手册》,手册囊括了入门介绍、教程、“手把手”指导,还包括了框架组件的参考文档。
二、效率与安全
1、运用全新PHP7语法特性,设计时考虑到性能优化,运行效率高达4倍于PHP5系列开发环境
2、运用CI框架的扩展性和路由模式,加上ZF框架强大丰富的中间件和扩展包,大大提高系统的扩展性能
3、Zend框架官方全部扩展包支持自由引入本系统,按需加载模式,最大限度地提高开发效率
4、利用ZF提供的与安全相关的组件,包括 SQL 注入、XSS、CSRF、垃圾邮件和密码暴力破解攻击
5、动态缓存技术让动态页面新增支持缓存,让采用动态页面模式的网站访问速度更快,效率更高
6、全站支持HTTPS传输协议,更安全,支持小程序数据请求的URL规范
7、表单增加“csrf_token”验证功能,防护更强
三、多插件机制
CI4框架采用多个Module作为App应用,迅睿CMS继续沿用此设计模式,并且支持多个App插件化。
1、插件目录结构:dayrui/App/***/。
2、插件支持独立运行。
3、插件内部结构遵循CI4App规则。
四、自定义CI扩展类
迅睿CMS在不破坏CI4框架本身的情况下,进行了扩展CI自带的类库。
1、重写CI错误异常显示类,中国化。
2、重写路由类,符合国内建站程序的URL结构,如:c=控制器&m=方法名&id=参数。
3、重写钩子类,CI4钩子类会加载所有App中的自定义钩子,App数量过多时会影响速度,迅睿CMS提出全局钩子配置文件。
4、重写安全类,强化过滤非法字符串。
五、模板解析类(视图)
CI4本身的模板解析类不太灵活,迅睿CMS采用天睿自主研发天睿模板引擎技术,MVC设计模式实现业务逻辑与表现层的适当分离,使网页设计师能够轻松设计出理想的模板。
1、支持原生态PHP语法特性。
2、支持CI框架语法结构。
3、{变量}自定义系统标签语法结构。
4、模板缓存,只需要一次解析,提升性能。
六、自定义扩展类目录
迅睿CMS有全局Library目录,专门用于扩展类库,与Librarys用法不太一样,但原理一样。
1、全局Library调用。
2、可继承全局Library函数类。
3、App有自己独立的Library函数类。
4、跨App支持调用任意App的Library函数类。
七、网站模板机制
CI4不具备终端识别模式,迅睿CMS增加多终端识别和自定义终端显示。
1、迅睿CMS模板分为手机端和电脑端。
2、后台可以直接编辑网站模板和手机模板。
3、编辑模板自动备份,以免老模板丢失。
4、编辑模板时自动检测模板语法是否正确。
5、为模板文件中文命名,以免快速区分。
八、万能Table类
迅睿CMS框架为开发者准备了万能的Table类,此类用于对数据表的增删改查操作,只需要配置文件,逻辑功能由迅睿CMS来帮你完成。
1、支持任意表数据展示。
2、多表联合查询。
3、自定义字段格式入库规则。
九、自定义字段
迅睿CMS采用非常成熟的自定义字段方案,可以支持到栏目表自定义字段、内容表自定义字段、表单表自定义字段、用户表自定义字段、评论表自定义字段、页面表自定义字段、链接表自定义字段、tag表自定义字段等。
1、文本字段,有单行文本、多行文本、文本事件字段
2、上传字段,有单文件上传、多文件上传
3、日期时间字段,支持自定义年月格式显示
4、联动菜单字段,用于无限分类层级显示的数据,例如城市
5、百度地图字段,用于定位地图坐标,坐标范围内筛选数据
6、富文本字段,百度编辑器、百度移动编辑器
7、选项字段,单选字段、多选字段、下拉选择字段
8、颜色字段,用于选择网页颜色值
9、属性字段,用于类似于商品属性的数据
10、内容关联字段,用于加载其他模块内容的字段,例如专题功能
11、价格字段,用于CMF站内购物交易,例如文章买卖、下载收费
12、单行分组字段,用于把N个字段放在一行显示
12、多行分组字段,用于把N个字段放在一个组里面显示
13、强大的DIY字段,此字段功能相当强大,可以让开发者打造自己的字段
使用教程
自定义数据接口
cms提供直接输出、PHP代码体两种方便开发者使用的数据输出接口。
1、直接输出
本类型是将后台录入的数据格式原样输出到客户端
返回格式为:
array(3) {
["code"]=>
int(1)
["msg"]=>
string(2) "ok"
["data"]=>
string(7) "test123"
}
2、JSON数组
本类型数据内容必须是一个json格式的数组字符串
返回格式为:
array(3) {
["code"]=>
int(1)
["msg"]=>
string(2) "ok"
["data"]=>
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
}
3、php执行代码
本类型需要有php的开发经验,直接写php代码返回结果
例如:
定义test.php接口文件:./dayrui/App/Httpapi/Api/test.php
/**
* api 示例文件
* 变量介绍
* $return 表示标准返回变量
*/
$return = []; // 返回数据
// 查询全部会员,并返回username和email
$data = PhpcmfService::M()->table('member')->getAll();
if ($data) {
foreach ($data as $r) {
$return[] = [
'id' => $r['id'],
'username' => $r['username'],
];
}
}
后台选择test.php文件
那么,返回格式为:
array(3) {
["code"]=>
int(1)
["msg"]=>
string(2) "ok"
["data"]=>
array(13) {
[0]=>
array(2) {
["id"]=>
string(1) "1"
["username"]=>
string(5) "admin"
}
......
本类型对php技能要求比较高,如果遇到执行错误可以在错误日志检查结果。
4、模板查询标签
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果
例如调用news模块全部数据:
{module module=news}
或者
{list action=module module=news}
模板标签只能写一段,不能写多段
通过以上的list查询方法可调用循环标签的全部数据,当然你可以对结果进行格式化处理,使用回调方法。
任意页面查询API接口
XunRuiCMS框架支持读取任何页面的数据接口,接口格式如下:
/index.php?appid=[授权ID]&appsecret=[授权码]&[任意页面地址参数]
一、举例说明
例如新闻详情页面的默认地址是:
http://www.demo.com/index.php?s=demo&c=show&id=110
那么,我们可以用《任意页面接口》读取本页面的数据:
http://www.demo.com/index.php?appid=1&appsecret=FCAD3481CFB2D55&s=demo&c=show&id=110
返回全部数据为:
二、自定义回调方法
如上例所示,返回的结果实在太多了,不利于APP的传输,那么CMS支持自定义回调方法(定义方法参考《回调方法》章节),参数格式如下:
/index.php?appid=[授权ID]&appsecret=[授权码]&api_call_function=[回调方法名称]&[任意页面地址参数]
三、任意页面接口的其他例子
1、模块内容列表或搜索
/index.php?appid=[授权ID]&appsecret=[授权码]&s=[模块目录]&c=search&pagesize=10&page=1
2、模块内容详情页面
/index.php?appid=[授权ID]&appsecret=[授权码]&s=[模块目录]&c=show&id=[文章内容]id
3、模块内容评论页面列表
/index.php?appid=[授权ID]&appsecret=[授权码]&s=[模块目录]&c=comment&id=[文章内容]id
4、模块栏目列表页面
/index.php?appid=[授权ID]&appsecret=[授权码]&s=[模块目录]&c=category&id=[栏目id号]
四、查询出来的数据有问题怎么排查?
方式1、通过接口访问,(去掉回调函数参数api_call_function)试试变量是否出了,如果不出来说明数据库无这个字段
方式2、通过接口访问,(加上回调函数参数api_call_function=你的函数名称)试试变量是否出了,如果不出来说明回调函数写法有问题
更新日志
增加云服务菜单
增加栏目的拒绝访问判断不对管理员
增加后台对订单的删除功能
增加评论模板comment_ajax.html,用于函数调用
增加任意表内容替换功能,方便迁移时更换域名等内容
增加错误日志查看源文件功能
增加共享栏目可以修改栏目类型和模块属性
增加共享栏目支持同一父栏目下创建多个模块栏目功能
增加共享栏目类型和模块支持变更操作功能
增加栏目seo配置增加catpname参数表示栏目上下级变量
当同一父级栏目下存在多个不同的模块栏目时,其父级栏目将自动转换为单页栏目
腾讯云附件api更新
改进api执行自定义函数时必须由dr_开头的自定义函数
软件评论 您的评论需要经过审核才能显示
网友评论