MENU
关闭
插件的位置/app/
例如在app目录创建一款插件命名为hello
结构如下
/app/hello/
├─controller //控制器目录
│ │─Index.php//注意首字母大写 后边会示例代码
│ ├─可以创建更多的控制器
├─view //视图目录
│ ├─home.html//这里只是我们的一个例子 这是我们钩子指向的一个路径 代码自己diy
│ ├─指向的文件这里创建
├─hello.php//配置文件
│─route.php//路由配置文件主要是缩短url路径
│─pic.jpg//是我们的插件图标 在配置文件指向这个地址 不一定非要pic.jpg
└─更多...
控制器里面的index.php配置 请大家举一反三
<?php
namespace app\hello\controller;
use think\Controller;
use think\Db;
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2020 http://115cms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: @梦雨 <50361804@qq.com>
// +----------------------------------------------------------------------
// | 这是一个控制器Index 下面的index是方法
// +----------------------------------------------------------------------
class Index extends Controller
{
//首页
public function index()
{
hook('hello');
echo "</br>第一个钩子的调用方式 标签:{:hook('hello')} 在任意模板位置存放调用</br>";
hook('hello1');
echo "</br>第二个钩子的调用方式 标签:{:hook('hello1')} 在任意位置存放调用</br>";
echo '</br>你好!我是第一个插件方法示例 因为我配置了路由访问我就是/h_index.html </br>如果没有配置 那么我的地址就在/hello/index/index.html 似乎有点长';
}
}
hello.php 配置 这个文件要和插件的目录一样
<?php
namespace app\hello;
use app\index\controller\Addons;
use think\Db;
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2020 http://115cms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: @梦雨 <50361804@qq.com>
// +----------------------------------------------------------------------
class hello extends Addons
{
// 插件的信息配置
public $info = array(
'name' => 'hello',//插件目录,标识
'title' => '示例插件',//插件名称
'description' => '一个简单的示例插件',//插件描述
'banben' => '1.0',//插件版本号
'pic' => '/app/hello/pic.jpg',//插件图标
'admin' => '1',//1是有设置配置在下方配置信息,0是无
'set' => '/index.php/h_index.html',//插件的其他管理地址在在已安装插件进入的页面 留空没有
);
// 插件的设置配置
public $admin = array(
'demo' => array(
'md' => '12',//容器宽度1-12
'title' => '示例开关',//标题说明
'type' => '单选框',//类型 单选框 选择框 输入框 文本域 密码框 附件 颜色 时间
'options' => array(
'1' => '启用',
'0' => '关闭',
),
'value' => '1',//默认值
),
'demo1' => array(
'md' => '4',
'title' => '示例选择',
'type' => '选择框',
'options' => array(
'1' => '选择一',
'2' => '选择二',
),
'value' => '2',
),
'demo2' => array(
'md' => '4',
'title' => '示例输入',
'type' => '输入框',
'value' => '我的默认值',
'required' => 'required',//必填 可空
),
'demo3' => array(
'md' => '4',
'title' => '示例密码框',
'type' => '密码框',
'value' => '',
'required' => 'required',//必填 可空
),
'demo4' => array(
'md' => '12',
'title' => '示例文本域',
'type' => '文本域',
'value' => '',
'rows' => '4',//文本域高度
'required' => 'required',//必填 可空
),
'demo5' => array(
'md' => '4',
'title' => '示例附件',
'type' => '附件',
'value' => '',
'required' => 'required',//必填 可空
),
'demo6' => array(
'md' => '4',
'title' => '时间选择',
'type' => '时间',
'value' => '2021-01-01',//格式 默认值
),
'demo7' => array(
'md' => '4',
'title' => '颜色选择',
'type' => '颜色',
'value' => '#ffffff',//格式 默认值
),
);
// 安装方法
public function install()
{
$this->Hook('hello', $this->info['name']);//第一个钩子
$this->Hook('hello1', $this->info['name']);//第二个钩子
$sqldata = file_get_contents(dirname(__FILE__) . '/install.sql');
sql($sqldata);
return true;
}
// 卸载方法
public function uninstall()
{
$sqldata = file_get_contents(dirname(__FILE__) . '/uninstall.sql');
sql($sqldata);
return true;
}
// 钩子一方法
public function hello()
{
echo $this->view('home');
}
// 钩子二方法
public function hello1()
{
echo '你好!我是另一个钩子的方法';
}
}
一个完整的插件就完成
这里有一个完整的示例包
可以下载上传到app目录后台查看效果
115CMS采用面当前最流行的ThinkPHP框架开发,它是一款高效开源的内容管理系统。 本产完全采用模块化开发,插件主题功能,增加了程序的维护性、可扩展性,使二次开发变得简单、容易,系统设计的模板标签。
在线QQ: 50361804 / 1340828870
QQ群: 点击加入
Copyright ©2022 115cms All Rights Reserved. 黔ICP备2021005045号-4贵公网安备 52030302000777号