插件例子

燃烧的冰2020-01-14  5.3K+

wellcms 有着完善的插件开发机制,使得性能方面零损耗,不影响编译,强大而又简单,只需具有php和mysql基础就可以自由扩展程序的功能。

 

插件详细的例子可以参照 免费应用 作为例子

 

开发插件步骤:

在 plugin 目录 建一个插件目录,通过英文作者名加下划线加功能名。

 

plugin/

conf.json (配置文件)

icon.png (图标宽高:200*200)

install.php(数据表文件,以及需要操作的一些代码,有需求则使用此命名文件)

uninstall.php(卸载插件的数据表,缓存,附件等,有需求则使用此命名文件)

setting.php(插件后台设置参数文件,此命名文件与普通业务相同,系统默认搜索这个命名文件)

well_example/ (插件目录)

              hook/ (hook文件存放目录)

               index_route_case_end.php  (插入点,该插入点在 index.inc.php)

             route/ (业务逻辑目录)

               example.php (业务逻辑文件)

 

conf.json 内容:

{
	"name": "插件名example",
	"brief": "插件介绍example brief",
	"type": "0", // 无需修改 
	"version": "1.0.0", // 插件版本
	"software_version": "2.0.0",
	"installed": 0,
	"enable": 0,
	"hooks_rank": [], // 同一点hook优先插入
	"overwrites_rank": [], // 最大值overwrite
	"dependencies": [] // 依赖其他插件
}

 

plugin/well_example/hook/index_route_case_end.php 内容

<?php exit;
case 'example': include _include(APP_PATH . 'plugin/well_example/example.php'); break
?>

 

plugin/well_example/route/example.php 内容

<?php message(0, 'Hello, My plugin'); ?>

网址访问:

http://www.domain.com/?example.html

如设置了伪静态在网址为

http://www.domain.com/example.html

 

如需增加其他功能,查看官方相关文件预留的 hook 点,直接 hook 业务逻辑即可。

 

开发插件新页面,且支持模板替换模式,仅限前台模板使用替换模式,后台模板一律使用绝对路径,不建议修改后台模板。

 well_example 目录 新建 view 目录 css 和 js 分类存放,模板存放 view/htm 目录。

plugin/well_example/route/example.php 内容

<?php
!defined('DEBUG') AND exit('Access Denied.');
/*   前台加载模板使用这种方式,后台使用下面绝对路径的方式   'well_example' 为区分模板参数,未避免冲突,统一加前缀,well_list 对应 list.htm 自行决定使用字母,必须加统一前缀   0 为绑定ID 没有则写0即可   'well_example' 插件目录 */

include _include(theme_load('well_example', 0, 'well_example')); // 模板替换模式,前台模板推荐这种方式
//include _include(APP_PATH . 'plugin/well_example/view/htm/example.htm'); // 此方式无法使用前台主题替换,只能hook或覆盖方式,后台模板推荐这种方式
?>

 

plugin/well_example/view/htm/example.htm 内容为

<!-- 加载公用页头,自行制作,注意修改路径 -->
<?php include _include(APP_PATH.'view/htm/header.inc.htm');?>
<h1>My template</h1>
<!-- 加载公用页脚,自行制作,注意修改路径 -->
<?php include _include(APP_PATH . 'view/htm/footer.inc.htm');?>

 

plugin/well_example/hook/theme_load_case_end.php 内容为

<?php exit;
case 'well_example': $pre .= $default_pre .= 'example.htm';
?>

安装插件,清空缓存。

网址访问:

http://www.domain.com/?example.html

如设置了伪静态在网址为

http://www.domain.com/example.html

0