齐博x1模块安装文件讲解
频道模块存放的目录是
/application/频道目录/
插件存放的目录是
/plugins/插件目录/
他的安装目录都是/install/
推荐参考默认的
/application/cms/install/
复制整个安装目录出来进行修改
install.sql 数据库资料,一般来说,这是必须的,一个模块是缺少不了数据库的
数据库中其它都好理解,但是有一项非常关键的地方,大家务必高度重视
举个例子
INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, -1, 'SEO标题', 'mseo_title', '', 'text', '', 0, '', '', 100, 4);
id, type,
这两项是非常关键的, id的值全部设置为0 设置为空即''也可以, type的值必须设置为-1
非常关键,重要的话,再重复一次, type的值必须设置为-1
因为系统所有的配置都存放在qb_config这个数据表里, 安装的时候,如何区分开来,就是根据 type为-1进行特别处理的. 其它各项参数保留从你原来系统导出来的值即可
你在本地调试模块添加参数的时候,在后台开发者功能那里添加各项参数, 添加好之后,就需要把他们导出来. 导出来后,其它可以不变,就只要把 id type 这两项,按上面说的,改一下,即可
用到其它数据表的话,最好是加上
DROP TABLE IF EXISTS ******;
如果有用到钩子的话,
INSERT INTO `qb_hook_plugin` (`id`, `hook_key`, `plugin_key`, `hook_class`, `about`, `ifopen`, `list`, `author`, `author_url`, `version`, `version_id`) VALUES(0, 'layout_body_foot', '', 'app\\weibo\\hook\\MsgRemind', '有新的微博动态消息,就弹层提醒', 1, 0, '齐博', 'http://www.php168.com', '', 0);
还需要你把钩子的数据表导出来,如上所示.
钩子数据表也需要把id的值变成0 其它就不需要修改
如果安装后,需要执行一些特别的操作,可以把脚本写在
install/Install.php
这个文件
public function run($id=0){
}
方法统计用这个
$id代表安装成功以后对应的模型ID
系统卸载时,要把残留全清空的话,需要扫行脚本的话,
install/Uninstall.php
请在这个文件写脚本.
public function run($id=0){
query("DELETE FROM `qb_hook_plugin` WHERE `hook_class` = 'app\\weibo\\hook\\Content'");
query("DELETE FROM `qb_hook_plugin` WHERE `hook_class` = 'app\\weibo\\hook\\MsgRemind'");
}
他会在卸载前先执行.因为卸载后整个目录都会被删除掉.
比如上面的就是要钩子清空掉. 不然会残留有钩子,下次安装的时候,又会重复出现钩子.容易造成重复执行的问题.
如果仅仅是操作数据库的话,也可以把数据库代码放到
uninstall.sql
这个文件里边
重要提示:
https://www.wanxiangyundang.com/
如果安装时要安装钩子的话,请务必要确认卸载的时候,要把钩子清除干净,以防止用户重复安装导致多个钩子重复运行.
info.php
这个就是参数配置文件,每个模块都一样,对应的修改即可
return [
'keywords'=>basename(dirname(__DIR__)), //关键字,即是目录名也是数据表区分符
'name'=>'微动态', //模块名称
'author'=>'齐博', //开发者
'author_url'=>'http://www.php168.com', //开发者网站或者是演示网址
'type'=>'1', //当前模块是否可以复制
'about'=>'', //介绍
'version'=>'1.0', //版本号
'icon'=>'fa fa-fw fa-weibo', //CSS图片
'ifsys'=>'0', //是否禁止卸载
'config_group' =>['基础设置',], //参数配置分组
//涉及到的数据表,不要写前缀
'sql_db' =>['content','content1','field','module','member','sort','groups','visit','feed','fav'],
'bind_modules' =>'bbs', //依赖于哪个模块,多个用逗号隔开
'bind_plugins' =>'', //依赖于哪个插件,多个用逗号隔开
];
齐博x1模块安装文件讲解的更多相关文章
- 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)
password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...
- 齐博X1到底是个什么鬼?
什么是齐博/齐博CMS之X1? 齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. ...
- 最近无聊搭建一个齐博X1的下载页面
https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...
- 齐博x1齐博首创钩子的使用方法
齐博X1有两套钩子体系,第一套是基于TP思路设计的.跟外面的大同小异.现在重点讲一下第二套我们首创的使用方法. 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可如下 ...
- 齐博x1到底是怎么的存在?
齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. 系统已经对接好QQ.微信登录,同 ...
- 齐博软件 著名的老牌CMS开源系统 X1.0基于thinkphp开发的高性能免费开源PHP开放平台齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块
齐博X1--标签变量大全 1.网站名称: {$webdb.webname} 2.网址: {$webdb[www_url]} {:get_url('home')} 3.网站SEO关键词: 首页:{$we ...
- 齐博x1服务器性能太差,调整系统升级每次校验的文件数
系统升级需要校验本地的文件是否被修改过,系统默认每次检验1千个文件,一般来说需要分四到五页来处理,如下图所示. 如果你的服务器性能太差的话,就需要手工把数值调小.把下面的代码复制出来.进入后台数据库管 ...
- Python中模块安装文件的创建及使用
在Python编程中,我们常常需要自己编写模块,当模块文件写好了,就需要创建安装文件,方便模块的发布. 此时,常用的方法,就是使用Python distutils(代表distribution uti ...
- 齐博x1标签实例:标签的嵌套用法,调用聚合数据
齐博标签非常强大,可以让不懂程序的你,轻松就能实现所见即所得. 下面跟大家讲解一下,最复杂的运用, 同时使用了union 动态变量参数 与 分页处理标签 比如下面这张图,不仅仅想调用圈子,还想同时调用 ...
随机推荐
- 皮皮调度(1)——从Airflow到DolphinScheduler,以及“皮皮调度”的来历
按照前一篇文章 <GraalVM -- 让Java变得再次强大> 末尾提到的计划,本来这篇文章是想写一下GraalVM的后续<深耕云原生的Java应用框架 -- Quarkus> ...
- ceph 009 管理定义crushmap 故障域
管理和自定义crushmap 定义pg到osd的映射关系 通过crush算法使三副本映射到理想的主机或者机架 更改故障域提高可靠性 pg到osd映射由crush实现 下载时需要将对象从osd搜索到,组 ...
- 我就获取个时间,机器就down了
本文主要讲解linux 时间管理系统中的一个问题 背景:linux 时间管理,包含clocksource,clockevent,timer,tick,timekeeper等等概念 , 这些概念有机地组 ...
- Java 解析Tiff深入研究
最近在读取客户发过来的tiff文件是,底层竟然报错了,错误:bandOffsets.length is wrong! 没办法,因为错误消息出现在tiff的read中,因此就对 底层序中tiff读取 ...
- 「题解报告」P3354
P3354 题解 题目传送门 一道很恶心的树形dp 但是我喜欢 题目大意: 一片海旁边有一条树状的河,入海口有一个大伐木场,每条河的分叉处都有村庄.建了伐木场的村庄可以直接处理木料,否则要往下游的伐木 ...
- 【Android 逆向】ARM switch 逆向
#include <stdio.h> int switch1(int a, int b, int i){ switch (i){ case 1: return a + b; break; ...
- LSB隐写术
此为北京理工大学某专业某学期某课程的某次作业 一.项目背景 1.隐写术 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容. 2.L ...
- Erda 开源的迷失和反思
前言 Erda 是我从2018年初加入上家公司直到今年初离开的四年时间里一直在做的一个云原生 PaaS 平台.在开源之前,Erda 在公司内部的名字代号是 D ,在21年初改名为现在的 Erda 进行 ...
- winfrom杀死进程及关闭进程
ProcessStartInfo process = new ProcessStartInfo(); process.FileName = AppDomain.CurrentDomain.BaseDi ...
- MinIO对接k8s使用
文档地址:https://github.com/minio/operator/blob/master/README.md https://docs.min.io/minio/k8s/deploymen ...