企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
和上一章节差不多主要多了一个后台设置以及插入数据 这次我们在addons添加一个dajishi文件如下 然后前往官网[http://www.115cms.com/index/home/set.html](http://www.115cms.com/index/home/set.html) 基本设置创建模板插件如图 ![](http://cdn.dow.115cms.com/2020-02-29_5e59d1d2894a6.jpg) 创建好你目录命名的插件footer标识方可进行下一步  如果不申请的话你是无法在后台安装的 controller 是控制器 \-----Dajishi.php 控制器首字母必须是大写开头 view  视图 \-----home.html 钩子输出的视图 \-----index-index.html 控制器输出的模板文件 config.php 基本设置 dajishi.php 配置文件 ico.png 插件的图标 install.sql 安装的sql语句 uninstall.sql 卸载的sql语句 addons/dajishi/dajishi.php 如下代码 ~~~ <?php namespace addons\dajishi; use app\api\controller\Addon; use Think\Db; use Think\Config; /* @梦雨 50361804@qq.$com www.115cms.com */ class dajishi extends Addon { //插件的配置 public $info = array( 'name' => 'dajishi', //标识名称与文件同名 'title' => '大记事', //插件标题 'description' => '用于显示网站的记录大记事', //插件描述 'status' => 1, //状态 'pic' => '/addons/dajishi/ico.png', //插件的图标 'author' => '梦雨', //插件的作者 'version' => '1.0' //插件版本 ); //有后台设置显示数据表方法页面 public $admin_list = array( //条件 例如只显示open为1的数据 //'where' => array('open' => 1), 'where' => array() , //显示的表 'model' => 'dajishi', //排序方式 'order' => 'id desc', //搜索的字段 多个字段用|隔开例如 title|uid 'ks' => 'content' ); public $custom_adminlist = 'admin.html'; //万年不变安装方法 public function install() { //$this->info['description']是插件的描述 //$this->info['name']是插件的标题 //dajishi是钩子名称 $this->getisHook('dajishi', $this->info['name'], $this->info['description']); $db_config = array(); $db_config['prefix'] = Config::get('database.prefix'); $dirname = dirname(__FILE__); $sqldata = file_get_contents($dirname . '/install.sql'); $sql_array = preg_split("/;[\r\n]+/", str_replace('my_', $db_config['prefix'], $sqldata)); foreach ($sql_array as $k => $v) { if (!empty($v)) { Db::query($v); } } return true; } //万年不变卸载方法 public function uninstall() { $db_config = array(); $db_config['prefix'] = Config::get('database.prefix'); $dirname = dirname(__FILE__); $sqldata = file_get_contents($dirname . '/uninstall.sql'); $sql_array = preg_split("/;[\r\n]+/", str_replace('my_', $db_config['prefix'], $sqldata)); foreach ($sql_array as $k => $v) { if (!empty($v)) { Db::query($v); } } return true; } //插件添加钩子dajishi的方法 public function dajishi() { $c = $this->getConfig('dajishi'); $this->assign('c', $c); //输出方法到/addons/dajishi/home.html页面显示 if ($c['open'] == 1) { echo $this->tplfetch('home'); } } } ~~~ 然后addons/dajishi/controller/Dajishi.php 如下代码 ~~~ <?php namespace addons\dajishi\controller; use app\index\controller\Addons; use think\Db; class Dajishi extends Addons { //添加页面方法 public function index() { $c = $this->getConfig('dajishi'); $this->assign('c', $c); if ($c['open'] == 0) { $this->error('页面不存在', '/'); } //输出在view目录下的模板显示 echo $this->fetch('addons/dajishi/view/index-index.html'); } //后台添加大记事 public function add() { //后台操作请加上不然未登录用户都会能访问编辑 if (!session('admin_name')) { $this->error('请登录', url('admin/login/index')); } if (request()->isPost()) { $data['time'] = strtotime(input('time')); //xss是过滤方法 $data['content'] = xss(input('content')); $data['open'] = input('open'); if (!Db::name('dajishi')->data($data)->insert()) { $this->error('添加失败'); } else { $this->success('添加成功'); } } //输出在view目录下的模板显示 echo $this->fetch('addons/dajishi/view/index-add.html'); } } ~~~ config.php设置文件 ~~~ <?php return array( //当config.php不存在的时候当前插件就没有设置的方法 'open' => array( 'title' => '是否开启', 'type' => 'radio', 'options' => array( '1' => '启用', '0' => '关闭', ) , 'value' => '1', 'labelwidth' => '150px', ) , 'title' => array( 'title' => '页面标题', 'type' => 'text', 'value' => '115CMS大记事', 'labelwidth' => '150px', 'width' => '400px', ) , 'keywords' => array( 'title' => 'SEO关键字', 'type' => 'textarea', 'rows' => '10', 'cols' => '54', 'value' => '115cms,大记事', 'labelwidth' => '150px', ) , 'description' => array( 'title' => 'SEO描述', 'type' => 'textarea', 'rows' => '10', 'cols' => '54', 'value' => '115CMS大记事', 'labelwidth' => '150px', ) , ); ~~~