3 Star 0 Fork 1

崔鹏宇 / flybirdcms

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 8.35 KB
一键复制 编辑 原始数据 按行查看 历史

FlyBirdCMS

本项目遵守Apache V2 License 开源协议
任何人可共享、拷贝、分享本项目的代码,请再发布者在新项目中包含本项目的协议,并尽量采用开源方式发布。
飞鸟建站官网,任何相关文档可在官网查找。

软件架构

  • PHP要求 >5.4 推荐7.0
  • MySQL要求 >5.5 ,推荐 5.7
  • ThinkPHP 5.0
  • MIP 百度移动网页加速器
  • ThinkPHP的日志设置见 app/config.php 中的log字段
  • 切记:如果修改了数据结构,要在public/package/mipcms_v_3_6_0.sql表中完善

开发框架说明

  • 从操作界面来区分,分为3部分:管理端(admin) 、 用户端、API端
  • 管理端是给管理员使用的功能;用户端是给普通用户访问的;API端是暴露出来的API接口,给App和小程序等使用的;
  • 管理端在Controller层必须继承 AdminApiBase;命名规则为ApiAdmin***;
  • Admin后台采用BootStrap 4.1.3
  • Admin后台采用Jquery 2.0.0
  • Admin后台采用ionicon 4.4.6
  • 所有的Api方法必须继承自ApiBase、AuthApiBase,AdminApiBase是管理后台接口的基础类
  • ApiBase:所有不需要用户登录即可调用的接口
  • AuthApiBase:必须登录后才可以调用的接口
  • AdminApiBase:管理员才可以调用的接口
  • 接口调用必须采用mip.ajax方法,该方法封装于/public/common/js/flybird-ajax.js文件中
  • Simeditor将indent按钮设置为首行缩进,原来为整段缩进。按Tab键,为快捷键。
  • 重新安装需要删除install文件夹下的install.lock文件
  • mip-pbpix 为平步科技开发的基于mip的用户访问统计插件,获取用户的微信信息和访问轨迹

代码规范

  • controller层的方法建议采用全小写,多个单词之间以下划线分隔,比如 get_by_id
  • model层的方法建议采用驼峰法,比如 getById
  • 自定义taglib命名为tagXXXX,比如tagArticle;方法名为全小写,多个单词之间以下划线分隔;
  • model层提供若干常用方法:getOne getById getList getPage doSave doAdd doEdit doDel
  • controller层提供若干常用方法名: get_one get_by_id get_list get_page do_save do_add do_edit do_del
  • getOne的参数: getOne($where )
  • getById的参数: getById($id)
  • getList的参数: getList($where,$order=null,$page=null,$limit=null)
  • getPage的参数: getPage($where,$order=null,$page=1,$limit=15) 返回值包括list和count的数组
  • doSave的参数: doSave($arr)
  • doAdd的参数: doAdd($arr)
  • doEdit的参数: doEdit($arr)
  • doDel的参数: doDel($id) 或者 doDel($ids) 或者doDel($where)
  • 所有数据库的操作都放到model层
  • 数据库的操作要加上缓存
  • controller层接受的参数都要采用htmlp方式进行处理,防止xss攻击

配置说明

  • 附件、图片、视频上传采用的iview控件 uploader
  • 文件上传服务端在/app/admin/controller/ApiAdminUpload.php文件
  • 文件大小限制需要配置Nginx和php.ini
  • Nginx在Server中增加client_max_body_size 30M ,否则会出现413异常
  • php.ini设置 upload_max_filesize = 30M,否则php服务端获得file对象为 empty

iview UI框架说明

  • Input控件的标签名为 i-input
  • RadioGroup控件的标签名为 Radio-Group
  • ButtonGroup控件的标签名为 Button-Group
  • Button控件的标签名为 i-button
  • 前台页面提示采用 this.$Message.success(config)
  • $Message.success 的参数支持onClose事件

前台template

  • 建议不要修改目前的template,应该新增template
  • material-icons 图标列表地址
  • 为了支持Mip规范,前端模板页面必须采用main-mip.html模板,即 {extend name="main/main-mip"/}
  • 为了支持Mip规范,不能引用第三方js代码
  • 为了支持Mip规范,生成的页面,一定要使用MIP源代码检查,在Mip代码检查工具中检查
  • 为了支持Mip规范,标签中不允许使用style属性,所有的样式必须为class方式
  • 采用mip-img标签代替 img标签

技术架构

文件上传

  • 管理后台文件上传都调用的ApiAdminUpload.php中的方法
  • 管理后台文件上传要求 file标签的name属性值必须等于 fileDataFileName

微信公众号和微信小程序框架

电子邮箱支持

管理后台说明

设置 - 站点设置

  • 站点状态(systemStatus):关闭后,前端页面不可访问。在extend/mip/Init.php的mipInit方法中对 systemStatus 变量进行了判断。 即,在进入前端Mip页面的时候,验证 systemStatus 变量是否true,否则就不可使用任何前台页面。
  • 缓存JS和CSS(cache_js_css):关闭后,每次加载都加载JS和CSS文件

设置 - 网站菜单

  • 该功能是为了自定义前台网站的菜单的,通过这种方式可以灵活的设置前台菜单
  • 废弃了原来从数据库中直接加载内容分类的方式

自定义TagLib

  • noclose为非闭合的,得到的value值可以之后的页面任何位置使用
  • close为闭合的

开源协议

  • FlyBirdCMS基于Apache V2 License开源协议,任何个人和组织均可使用本项目及其中的代码,不受任何约束;
  • FlyBirdCMS的部分代码来源于互联网,如果有异议,可以联系作者进行删除;

2.0.1 版本升级

  • 文章分类减少图片和描述,增加文章分类扩展功能。
  • 升级主菜单,可直接从分类中创建菜单节点。
  • 升级分类,实现无限多级菜单。
  • 文章新增的时候简介和发布时间字段。
  • 改为所有的排序都为sort字段倒叙。
  • 修正登录时候的验证码的验证。
  • 修正用户Session丢失问题。
  • 修正iview的数据初始化的时候尽量不使用null
  • 删除articles 表中的root_cid字段,采用fullcid字段

2.0.0 版本升级

  • 对文章分类的字段进行优化,剔除反人类思维的设计,剔除没有必要的字段和功能。
  • 计划优化所有的TagLib,真正得到前后端分离
  • 计划可以自由设置文章的字段
  • 优化controller层、model层的方法名

1.0.6 修正

  • 删除商城相关的代码
  • 广告模块重命名为图片资源模块
  • 用户访问记录和历史模块删除掉

1.0.5 Bug修正

  • 版本升级为 1.0.5
  • install调用的105.sql文件修正。改正安装的时候SQL语句执行错误问题;
  • 105.sql文件中每个SQL语句后必须加 分号(;)
  • 105.sql文件中 CREAT TABLE 后增加了 If Not Exists
  • 105.sql文件中 双引号修改为 ,在调用sql执行的时候会正则表达式判断: preg_match('/CREATE TABLE ([^ ]*)/', $item, $matches);
  • scss文件必须编译为css文件,PhpStorm中需要配置 File wachers >> SCSS Compressed ,具体的百度即可;
  • template/default的模板中,main-mip.html中不要饮用 custum.css,因为 flybird.scss中已经import了 custum.scss
  • 修正模板tag,所有的模板tag只用于操作数据,不再渲染html。
  • 修正模板tag,所有的模板tag都是close=0的。
  • 废弃Fbview.crumb模板标签
  • 修改common/Mipitem模板标签路径,为common/tags/Mipitem
  • 废弃Fbmip.fixed模板标签
  • 废弃Fbmip.a模板标签
  • 废弃Fbmip.img模板标签
  • 废弃Mipcms 模板标签,路径在/app/article/Mipcms.php
  • 废弃原app/article/model/Articles.php 类
  • 优化了伪原创模块生成机制
  • 新增文章的时候,默认选中6个标签
  • 优化文档,新增图片可直接从其他网站粘贴过来,只要原图片允许第三方页面读取,就直接下载到本地数据库中。
  • 修正文章分类保存的时候,如果数据没变化保存提示错误的bug
  • 调整pingbuwang界面的 banner部分,放在block菜单下
  • 伪原创增加了不同国家语言习惯的文章重写功能
  • 项目中抛弃 domains变量。原 $this->domains config('domains') {$mipInfo.domain} 变量都用 domain变量代替
  • 项目的robots.txt文件采用动态方式生成。生成方法见/app/index/Index.php的 robots_txt 方法。
  • 优化了异常提示,ajax提示将采用ajax方式提示;
  • 在config('app_dubug')为true的时候,会显示错误的文件位置;
  • 修正熊掌号功能
  • 修正文章的数据表,增加了root_cid字段,顶级分类id,方便查询。
PHP
1
https://gitee.com/cuipengyu/flybirdcms.git
git@gitee.com:cuipengyu/flybirdcms.git
cuipengyu
flybirdcms
flybirdcms
master

搜索帮助