[插件制作入门教程]留言板1-2 自定义钩子


我们需要加载此插件时,就立刻建立自己的数据表,以供我们使用

  • guestbook

    • config.php

    • guestbook.sql

    • config.php

    • GuestbookPlugin.php

    • data

GuestbookPlugin.php

<?php

namespace plugins\guestbook;

use cmf\lib\Plugin;
use think\Db;

class GuestbookPlugin extends Plugin
{
    public $info = array(
        'name'        => 'Guestbook',
        'title'       => '留言板',
        'description' => '留言板描述',
        'status'      => 1,
        'author'      => 'duan',
        'version'     => '1.0'
    );

    public $hasAdmin = 1;//插件是否有后台管理界面


    // 插件安装
    public function install()
    {
        $dbConfig = Config('database');
        $dbSql = cmf_split_sql(PLUGINS_PATH . 'guestbook/data/guestbook.sql', $dbConfig['prefix'], $dbConfig['charset']);

        if (empty($dbConfig) || empty($dbSql)) {
            $this->error("非法安装");
        }

        $db = Db::connect($dbConfig);

        foreach ($dbSql as $key => $sql) {
                $db->execute($sql);
        }

        return true;//安装成功返回true,失败false
    }

    // 插件卸载
    public function uninstall()
    {
        $dbConfig = Config('database');
        $sql = "DROP TABLE IF EXISTS " . $dbConfig['prefix'] . "plugin_sy_guestbook";

        if (empty($dbConfig) || empty($sql)) {
            $this->error("非法安装");
        }

        $db = Db::connect($dbConfig);

        try {
            $db->execute($sql);
        } catch (\Exception $e) {
            return false;
        }

        return true;//卸载成功返回true,失败false
    }

}

data/config.php
直接利用公共的数据库配置文件

<?php
/**
 * 配置文件
 */
if(file_exists(CMF_ROOT."data/conf/database.php")){
    $database=include CMF_ROOT."data/conf/database.php";
}else{
    $database=[];
}

return $database;

data/guestbook.sql

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for cmf_plugin_sy_guestbook
-- ----------------------------
DROP TABLE IF EXISTS `cmf_plugin_sy_guestbook`;
CREATE TABLE `cmf_plugin_sy_guestbook` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '留言ID号',
  `name` varchar(50) DEFAULT NULL COMMENT '留言者姓名',
  `tel` varchar(15) DEFAULT NULL COMMENT '留言者电话',
  `fax` varchar(15) DEFAULT NULL COMMENT '留言者传真',
  `email` varchar(50) DEFAULT NULL COMMENT '留言者邮箱',
  `qq` varchar(15) DEFAULT NULL COMMENT '留言者QQ号',
  `subject` varchar(255) DEFAULT NULL COMMENT '留言标题',
  `message` text COMMENT '留言信息',
  `isread` tinyint(2) DEFAULT '1' COMMENT '是否查看过',
  `update_time` int(10) DEFAULT NULL COMMENT '更新时间',
  `create_time` int(10) DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of cmf_plugin_sy_guestbook
-- ----------------------------
SET FOREIGN_KEY_CHECKS=1;

现在如果重新安装此插件,可以到数据库查看具体信息了

首先感谢WelkinVan 他写的《ThinkCMF5从入门到精通》给了我很多帮助
点击去《ThinkCMF5从入门到精通



评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 8.0.0发布啦!祝大家节日快乐! 立即体验!