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
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。