前言
趁着有时间,学习一波插件,插件是个好东西,希望人人都会写。
环境
语言:php5.6
框架:ThinkCMF
教程开始
1. 编写插件
- 创建插件配置文件:创建插件主类文件:在根目录的plugins文件夹下创建一个HelloWorld文件夹,在HelloWrold文件夹下面 创建 config.php 文件
config.php代码如下
<?php
/**
* Created by PhpStorm.
* User: **
* Date: 2017/8/14
* Time: 上午 10:27
*/
return array(
'text'=>array(
'title' => '文本:', // 表单的label标题
'type' => 'text',// 表单的类型:text,password,textarea,checkbox,radio,select等
'value' => 'hello,ThinkCMF!',// 表单的默认值
'tip' => '这是文本组件的演示' //表单的帮助提示
)
);
- 在HelloWrold文件夹下面,创建一个继承与Plugin的HelloWorldPlugin类,该类的命名空间为plugins\HelloWorld。
HelloWorldPlugin类的代码如下
namespace plugins\HelloWorld;
use Common\Lib\Plugin;
class HelloWorldPlugin extends Plugin
{
//插件的配置信息
public $info = array(
'name'=>'HelloWorld',//Demo插件英文名,改成你的插件英文就行了
'title'=>'HelloWorld插件',
'description'=>'HelloWorld插件',
'status'=>1,
'author'=>'ThinkCMF',
'version'=>'1.0'
);
//安装方法必须实现
public function install()
{
//安装成功返回true,失败false
return true;
// TODO: Implement install() method.
}
//卸载方法必须实现
public function uninstall()
{
//卸载成功返回true,失败false
return true;
// TODO: Implement uninstall() method.
}
//实现的show钩子方法
public function show() {
//获取config文件里面的text数组
$config=$this->getConfig('text');
//赋值
$this->assign($config);
//载入模板index.html,传入参数不要写.html后缀
$this->display('index');
}
}
- 创建模板文件:在HelloWorld文件夹下面创建一个View文件夹,在View文件下创建一个index.html文件
index.html文件 代码如下
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ThinkCMF插件演示首页</title>
</head>
<body>
<h1 align="center">{$text}</h1>
</body>
</html>
- 创建外部访问文件:在HelloWorld文件夹下面创建一个Contrller文件夹,在Contrller文件下创建一个所需文件,本教程用不到就不创建。
2.添加钩子
- 打开 根目录/application/Portal/hooks.php 添加 show 方法
代码如下:
<?php
return array(
'show',
);
3.使用教程
登录 thinkcmf的后台,选择扩展工具,点击插件管理,如下图
点击安装,安装HelloWorld插件,如下图
- 调用方法 hook('钩子方法') 如下
hook('show');
显示结果
注意事项
如果修改了钩子,即在hooks.php里面添加了钩子或者删除了钩子方法,必须到ThinkCMF后台去更新或者重装插件
-
查看插件的钩子方法,打开后台在插件管理里面的钩子列里面方法就是,可以使用的钩子方法 如下图的show方法。
修改了插件的配置信息即在主文件里(HelloWorldPlugin )的 $info 数组, 也要去后台更新插件或者重装插件。