这里不说后台一键复制 仅仅是以cms 为例简单的说下各个文件 各个配置的作用是什么
member_menu.php 会员中心菜单文件
~~~
<?php
return [
'cms' => [ // 模块目录名 小写
'title' => 'cms', // 模块目录名
'sons' => [
[
'title' => 'CMS功能', // 父级菜单名称
'sons' => [
[
'title' => '我发布的内容', //子菜单名称
'link' => 'content/index' //子菜单连接
],
[
'title' => '发布内容', //子菜单名称
'link' => 'content/postnew'
],
[
'title' => '采集公众号文章', //子菜单名称
'link' => 'content/copynews' //子菜单连接
]
]
]
]
]
];
~~~
Info.php
~~~
<?php
namespace app\cms; // 命名空间到cms模块 新模块的需要 把cms改为模块名 小写 小写 小写
// 下面这里保持不变即可
class Info{
public static $keyword;
}
~~~
config.php
~~~
<?php
return [
//自动表单 前台列表页母模板
'automodel_listpage'=>APP_PATH.'cms/view/index/default/content/list.htm',
//自动表单 前台详情展示页母模板
'automodel_showpage'=>APP_PATH.'cms/view/index/default/content/show.htm',
//自动表单 前台辅栏目列表页母模板
'automodel_category_listpage'=>APP_PATH.'common/builder/listpage/category_list.htm',
//发布信息选择模型页模板
'post_choose_model'=>APP_PATH.'common/builder/sort/model_list.htm',
//发布信息选择栏目页模板
'post_choose_sort'=>APP_PATH.'common/builder/sort/layout.htm',
// 是不是有副栏目 没有就删除
'use_category'=>true,
//发布内容必须要选择栏目 不是的话就写 false
'post_need_sort'=>true,
//模块关键字,目录名,也是数据表区分符
'system_dirname'=>basename(__DIR__),
];
~~~
admin_menu.php 配置和会员中心菜单配置方法是一致的 不多写了 参考cms示例
install 目录 Copyinstall.php 复制的时候执行 默认或者删除就可以
install 目录 Install.php 安装的时候执行的脚本 不需要执行留空或者删除 下面是一个小示例 没实际意义 仅仅是示例
~~~
<?php
namespace app\cms\install;
use app\common\controller\AdminBase;
class Install extends AdminBase{
public function run($id=0){
$hook=db('hook')->where(['name'=>'cms_content_show'])->find(); //读取钩子表
//判断钩子是不是存在 不存在就执行安装钩子操作
if(!$hook){
$data=['name'=>'cms_content_show','about'=>'内容展示页接口','ifopen'=>'1'];
db('hook')->insert($data);
}
//这里可以执行任意php代码
}
}
~~~
install 目录 install.sql 安装的SQL脚本 没得说码农都懂
install 目录Uninstall.php 卸载脚本 和安装脚本一样可以执行卸载模块时候的动作 下面是个小示例 一样没有实际意义仅仅是演示
~~~
<?php
namespace app\cms\install;
use app\common\controller\AdminBase;
class Uninstall extends AdminBase{
public function run($id=0){
$plugins=db('plugin')->where(['id'=>$id])->value('keywords');
//卸载钩子动作
db('hook_plugin')->where('plugin_key',$plugins)->delete();
}
}
~~~
install 目录 uninstall.sql 没用的可以删除
install 目录 info.php
~~~
<?php
return [
'keywords'=>basename(dirname(__DIR__)), //关键字,即是目录名也是数据表区分符
'name'=>'CMS系统', //模块名称
'author'=>'齐博', //开发者
'author_url'=>'http://www.php168.com', //开发者网站或者是演示网址
'type'=>'1', //当前模块是否可以复制 不可以复制就设为0
'about'=>'这里是模块介绍 字数不宜过多', //介绍
'version'=>'1.0', //版本号
'icon'=>'fa fa-fw fa-file-text', //CSS图片 小技巧后台模块哪里有图标选择器 可以选择个性图标
'ifsys'=>'0', //是否禁止卸载 禁止卸载就设为 1 不建议这么做
'config_group' =>['基础设置',], //参数配置分组 不建议写基础设置 可以改为 模块名设置 比如 cms设置 不然核心设置哪里一堆基础设置
//涉及到的数据表,不要写前缀
'sql_db' =>['content','content1','content2','content3','field','module','member','sort','category','info'], // 你这个模块有哪些数据表都要写在这里不然卸载的时候卸载不掉数据表 数据库命名格式 qb_模块名_数据表 比如 qb_cms_content 这里是省略 qb_cms_ 的 不要搞错了
];
~~~
接着上次继续来,
admin 目录
Category.php 辅栏目没有的可以删除 删除的话就需要把 config.php 中的 'use_category'=>true, 删除
打开这个文件代码
~~~
<?php
namespace app\cms\admin; //命名空间 很容易理解 定位到 application\cms\admin 目录 也就是当前文件的所在目录
use app\common\controller\admin\Category AS _Category; // use 更容易了 导入 application\common\controller\admin\Category 并且设置别名为 _Category
// 这里更容易了 Category 继承 _Category 也就是 app\common\controller\admin\Category (可能表达不清晰 反正是这么个意思)
class Category extends _Category
{
//此处不需要写任何代码
}
~~~
一个辅栏目的后台就定义完了 是不是想哭
如果你的模块是news 你只需要搜索 cms 改为 news 就可以了 admin 目录下的所有文件都是一样的改法 下面就不重复了简略说下作用即可
Content.php 内容和栏目控制器 必须存在
Field.php 字段定义可有可无 没有模型功能或者不需要定义字段就可以删除
Info.php 辅栏目内容 可有可无
Module.php 模型
Setting.php 设置
Sort.php 栏目
index\wxapp 小程序目录 没研究呢后期补上
index目录 member目录 model目录 traits目录都是和admin 一样 把cms换为你的模块名即可
上面说的这些其实在后台都可以一键复制自动化实现 介绍这么多就是为了让大家了解下X系统做个模块多么省事
上面方法做出的模块都是千篇一律 没特色 下期咱们说一下个性化的模块 算是进阶篇
- 空白目录
- 平日使用的小应用,小技巧.
- 小技巧,二级域名绑定
- 需要的按年月日发帖量和点击排序的使用
- 每周赚取的积分排行使用
- 齐博x1第三季《模板风格的制作》系列
- 导航的高亮处理
- Default下index中的模板分析
- 005-新建一个空模板并在后台选择
- 008-模板页面之间的继承
- 010-对比系统布局模板添加一些必要代码
- 015-栏目的调用3
- 017-栏目的调用5
- 019-模块的路径访问
- 002-前台模板index_style目录的分析
- 004-风格样式资源目录public/static
- 006-增加一个布局模板layout
- 007-用{block}标记来分割布局模板
- 011-加一个导航把系统后台的菜单调出
- 013-栏目的调用1
- 014-栏目的调用2
- 016-栏目的调用4
- 018-栏目的终极方法get_sort
- 020-插件的路径访问
- 神盾工具箱007-标签云
- 标签云上线啦
- 云标签(更新版本1.2)
- 云标签(更新版本1.3)
- 标签云(更新1.4)
- 标签云(更新1.8)
- 标签云(更新3.0)
- 标签云(更新3.1)
- 标签云(更新3.3)
- 齐博x1第一季《新手入门》系列
- 001-下载安装x1
- 002-认识齐博x1的后台
- 003-系统设置之基本设置
- 004-系统设置之会员注册
- 005-系统设置之邮箱接口设置
- 006-系统设置之水印设置
- 007-系统设置之联系方式
- 008-系统设置之短信接口
- 009-系统设置之登录接口
- 010-系统设置之其它设置
- 011-数据库工具
- 012-会员管理
- 013-模块的简单说明
- 014-伪静态的相关设置
- 齐博x1第二季《基本数据操作》系列
- 001-标签的使用
- 002-标签的使用
- 003系统参数的调用
- 004-列表页的内置变量
- 005-内容页的内置变量
- 齐博X1《实用技巧》
- 任意页调用用户的收藏列表
- 巧用字段后面js属性来获取表单内容
- 给标题栏加个按钮,点击获取内容里文字截取一段做标题
- 简单的模块制作说明---初级
- V系列转换程序重新起航 支持v全系列转X系列(v7转换支持添加到搜索)
- 简单插件制作流程---友情链接解说版
- 钩子简单制作-tag加连接解说版
- 织梦转X1程序
- 简单的模块制作说明---进阶篇(更新中)
- 模型字段内容页面调用小技巧
- 水平凡、lvyecms转X1
- fun 函数 来个抛砖引玉 最简单的分类信息显示手机号归属地
- 再来个抛砖引玉 内容页根据关键词调用相关内容 新功能哦!
- 序列号使用图文教程
- OSS有巨大的优惠活动 特此开启一篇免流量教程帖
- 搜索结果调用其他字段的办法
- 关于安装七牛、腾讯、OSS等云储存无法上传提示没参数的解答(必看)
- 鉴于很多人问列表的筛选怎么放到首页、内容页等等地方 贴出方法
- 下面根据运营经验给大家讲下服务器一般配置
- 一段不错的小js提高一点点阅读体验 计算本文阅读所需的时长
- 自定义时间插件更新了!新增编辑的时候自定义时间(已经安装过的请看修改教程
- 制作好的应用导出上架教程
- 支付插件卸载后无法重新安装的解决办法
- 任意位置调用万能表单的方法 顺便借楼说下purl的作用
- 新版圈子店铺类实例和详细接口教程附模板文件
- 新版圈子专题类的数据教程
- 滑动门+下滑加载更多详细图解
- 使用宝塔面板php7.3的用户如果无法安装应用的解决办法
- V系列如果发现被黑的排查方法附修复办法
- 电脑版直播OBS Studio简单教程
- 站内引用添加到编辑器后在编辑器显示错乱?一招告诉你怎么解决
- linux 宝塔面板安装rtmp简陋教程 (已加视频版教程)
- 内容页上传MP3加载播放器简单教程
- 免费的导播台Mshow简单的使用攻略
- 万能fun 调用任意数据表 任意字段就是这么任性调用
- bui框架前端自定义配色基础属性
- 关于自定义时间或者其他钩子安装后无效的一个解决办法
- 网站后台上传的logo图丢失的一个排除解决办法
- 插件如何做前台风格切换的功能详解
- 齐博X1--标签变量大全
- 齐博X1--应用实例收集
- 嵌套-循环栏目,并列出子栏目下的内容
- 齐博X1--+关注,私信,TA的圈子
- 齐博X1--栏目多图字段的循环调用
- 任意位置调用当前用户提交的表单
- 循环栏目并调用栏目信息内容
- 头部底部菜单高亮设置
- 万能表单
- 全站调用验证码
- 万能导出excel数据教程
- 如何重新模块索引