15
2019
03

emlog插件开发指南

emlog 支持插件机制,这样使得开发者可以方便地向emlog 中添加自己需要的功能。

一、插件实现原理:

    在emlog 整个运行过程中我们设定了一些动作事件,遇到这些事件时emlog 会自动的调用插件绑定到该事件的上的所有插件函数,从而实现插件的功能。

二、插件命名原则:

    插件名只能以半角的字母、数字、下划线(_)、横杠(-) 组合而成,且只能以字母作为开头。

1、插件文件名称

    插件主文件名称必须与插件所在文件夹名称相同,设定插件参数的配置程序文件名称必须为 “插件名称_setting.php”;(注:该文件为可选,如果你的插件需要用户配置参数才需要该文件来完成配置功能)

文件夹名:slemlog

主文件名:slemlog.php(必须有此文件,相当于模板的module.php,舍力是这样理解的,函数变量的命名请尽快用于插件名一样<如:slemlog_xxx()>, 采用这样的命名方式可以避免于其他插件的函数或者变量出现冲突。)

参数设置文件:slemlog_setting.php(此文件看需求,可有可无)

写入数据库文件:slemlog_callback.php(数据需要写入数据库必须要有才文件)

前台显示文件:slemlog_show.php(此文件中的内容将会在前台显示,格式为:域名/?plugin=slemlog)

2、安全性

在插件文件开头增加限制语句

插件函数文件需要增加:!defined('EMLOG_ROOT') && exit('access deined!');

如果不增加该语句,那么直接访问插件的程序文件php会爆出博客的物理路径,对博客的安全造成威胁。

如果你的插件需要接收一些参数,请务必严格过滤每一个变量的数据.

例如:获取外部获取一个int型的参数,$id = $_GET['id']; 这样写是不安全的,要改为:$id = intval($_GET['id']); 

如果是一个字符型的参数,$action = $_GET['action']; 这样写也是不安全的,要改为:$action = addslashes($_GET['action']);

三、插件各文件的写法说明

以下代码是在后台 “扩展功能” 中显示测试插件这几个字,可参考挂载点说明,放入不同的位置

<?php function slemlog_menu(){?><div class="sidebarsubmenu"><a href="./plugin.php?plugin=slemlog">测试插件</a></div>
<?php }
addAction('adm_sidebar_ext', 'slemlog_menu');?>

原文链接:https://www.qiquanji.com/post/7099.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。