• 齐博x1二次开发实例分享:模块安装文件讲解


    频道模块存放的目录是
    /application/频道目录/

    插件存放的目录是
    /plugins/插件目录/

    他的安装目录都是/install/

    推荐参考默认的
    /application/cms/install/
    复制整个安装目录出来进行修改

    install.sql 数据库资料,一般来说,这是必须的,一个模块是缺少不了数据库的

    数据库中其它都好理解,但是有一项非常关键的地方,大家务必高度重视
    举个例子

    1. 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);

    idtype,
    这两项是非常关键的, id的值全部设置为0 设置为空即''也可以, type的值必须设置为-1

    非常关键,重要的话,再重复一次, type的值必须设置为-1

    因为系统所有的配置都存放在qb_config这个数据表里, 安装的时候,如何区分开来,就是根据 type为-1进行特别处理的. 其它各项参数保留从你原来系统导出来的值即可

    你在本地调试模块添加参数的时候,在后台开发者功能那里添加各项参数, 添加好之后,就需要把他们导出来. 导出来后,其它可以不变,就只要把 id type 这两项,按上面说的,改一下,即可

    用到其它数据表的话,最好是加上
    DROP TABLE IF EXISTS ******;

    如果有用到钩子的话,

    1. 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
    这个文件

    1. public function run($id=0){
    2. }

    方法统计用这个
    $id代表安装成功以后对应的模型ID

    系统卸载时,要把残留全清空的话,需要扫行脚本的话,
    install/Uninstall.php
    请在这个文件写脚本.

    1. public function run($id=0){
    2. query("DELETE FROM `qb_hook_plugin` WHERE `hook_class` = 'app\\weibo\\hook\\Content'");
    3. query("DELETE FROM `qb_hook_plugin` WHERE `hook_class` = 'app\\weibo\\hook\\MsgRemind'");
    4. }

    他会在卸载前先执行.因为卸载后整个目录都会被删除掉.
    比如上面的就是要钩子清空掉. 不然会残留有钩子,下次安装的时候,又会重复出现钩子.容易造成重复执行的问题.

    如果仅仅是操作数据库的话,也可以把数据库代码放到
    uninstall.sql
    这个文件里边

    重要提示:
    如果安装时要安装钩子的话,请务必要确认卸载的时候,要把钩子清除干净,以防止用户重复安装导致多个钩子重复运行.

    info.php
    这个就是参数配置文件,每个模块都一样,对应的修改即可

    1. return [
    2. 'keywords'=>basename(dirname(__DIR__)), //关键字,即是目录名也是数据表区分符
    3. 'name'=>'微动态', //模块名称
    4. 'author'=>'齐博', //开发者
    5. 'author_url'=>'http://www.php168.com', //开发者网站或者是演示网址
    6. 'type'=>'1', //当前模块是否可以复制
    7. 'about'=>'', //介绍
    8. 'version'=>'1.0', //版本号
    9. 'icon'=>'fa fa-fw fa-weibo', //CSS图片
    10. 'ifsys'=>'0', //是否禁止卸载
    11. 'config_group' =>['基础设置',], //参数配置分组
    12. //涉及到的数据表,不要写前缀
    13. 'sql_db' =>['content','content1','field','module','member','sort','groups','visit','feed','fav'],
    14. 'bind_modules' =>'bbs', //依赖于哪个模块,多个用逗号隔开
    15. 'bind_plugins' =>'', //依赖于哪个插件,多个用逗号隔开
    16. ];

     

  • 相关阅读:
    rabbitmq-exporter部署方式
    UE4 回合游戏项目 10- 添加怪物死亡动画
    Android 解决GreenDao:Failed to notify project evaluation listener
    【数据库】期末复习(计科版)
    开源软件:推动软件行业繁荣的力量
    主键约束!
    爬虫基础 & JS逆向
    企业场景排行榜简介: 现实世界用例排行榜
    274. H 指数 Python
    第12章-二叉搜索树 12.1 什么是二叉搜索树 12.2 查询二叉搜索树
  • 原文地址:https://blog.csdn.net/u012240615/article/details/127713687