插件例子

燃烧的冰2020-01-14  191

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


插件详细的例子可以参照 BBS插件、多为主题插件


开发插件步骤:

在 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 内容

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 内容

!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 内容为

case 'well_example': $pre .= $default_pre .= 'example.htm';


安装插件,清空缓存。

网址访问:

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

如设置了伪静态在网址为

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