MetInfo帮助中心
网站首页
新手建站
米拓流程
使用手册
常见问题
模板制作教程
商业模板修改教程
应用开发教程
应用开发文档
轻松开发企业应用
# 插件 插件是可以在某个类的某个方法下插入代码执行的控件。可以让编码人员在系统插件所指定的地点,通常是某个类的某个方法执行的某个阶段后插入一段自己的代码。用于处理一些事务。 ## 创建步骤 1、在应用的目录下新建“plugin/plugin_应用系统名.class.php”。 2、在里面新建一个类“plugin_应用系统名”;。 3、在这个类里面新建方法,方法名称为“插件系统名称”。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function doweb(){ global $_M; echo 'doweb'; } public function doadmin(){ global $_M; echo 'doadmin'; } } 4、在表met_app_plugin写入调用信息后,系统会自动在插件处调用应用的插件方法。 > #### met_app_plugin表结构: | 字段名 | 类型 | 是否为空 | 默认 | 属性 | 注释 | | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | | id | int(11) | 否 | 无 | 主键 | | | no_order |int(11) | 否 | 无 | | 排序,决定不同应用的代码执行的先后顺序。 | | no | int(11) | 否 | 无 | | 应用编号 | | m_name | varchar(50) | 否 | 无 | | 应用系统名称 | | m_action | varchar(50) | 否 | 无 | | 所调用的插件系统名称,也就是执行的方法名称。 | | effect | tinyint(1) | 否 | 无 | | 此应用的插件是否生效,1生效,0不生效。 | ## 现有插件介绍 当前系统有两个插件。doweb插件和doadmin插件 [========] > #### doweb插件: 插件系统名称为doweb,可以在系统二级基类web.class.php前台基类初始化的后插入代码。doweb插件,提供3个特殊变量,通过修改这三个变量内容,可以改变前台页面的效果。 1、 $_M[‘html_plugin’][‘head_script’],可以在页面前插入html代码,一般用来添加JS代码。写成: $_M['html_plugin']['head_script'].=""; 2、$_M[‘html_plugin’][‘foot_script’]名可以在页面底部插入html代码(前,但是会被包在底部代码的DIV里面)。一般也是用来添加JS代码。写成: $_M['html_plugin']['foot_script'].=""; 3、$_M[‘html_plugin’][‘top_script’],此变量是一个数组,可以在页面顶部的语言切换页面插入HTML代码。一般用来插入一个a标签的链接。写成: $_M['html_plugin']['top_script'][] = ""; $_M['html_plugin']['top_script'][] = ""; > #### doadmin插件 插件系统名称为doadmin,可以在系统二级基类admin.class.php后台基类初始化的后插入代码。 **注意事项:** 在当前系统插件中只能使用DB类与$_M数组两个系统调用,其他的类,方法等系统调用无法使用。 ## 会员插件介绍 > #### doregister插件: ** 作用:** 账号同步注册。 **传入值:** 注册的账号、密码、绑定的邮箱所组成的一维数组。 **返回值:** NULL(表示插件不存在),false(注册失败),ture(注册成功)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function doregister($user){ global $_M; dump($user); //$user[0] 注册账号 //$user[1] 密码 //$user[2] 邮箱 $result=$this -> check($user); //$result=NULL 说明插件不存在 //$result=false 说明注册失败 //$result=ture 说明注册成功 return $result; } } > #### doregistert插件: **作用:** 注册成功后,将用户信息存储到插件表内。 **传入值:** 用户id、用户名、密码、绑定的邮箱组成的一维数组。 **返回值:** 无。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function doregisterf($user){ global $_M; dump($user); //$user[0] 用户id //$user[1] 用户名 //$user[2] 密码 //$user[3] 邮箱 } } > #### doregisterf插件: **作用:** 当插件内注册失败时,将注册的用户信息数据从系统内删除。 **传入值:**用户名、密码、绑定的邮箱组成的一维数组。 **返回值:** NULL(表示插件不存在),false(修改失败),ture(修改成功)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douseredit($user){ global $_M; dump($user); //$user[0] 用户名 //$user[1] 密码 //$user[2] 邮箱 } } > #### douseremail插件: **作用:** 修改用户绑定的邮箱。 **传入值:**用户id、新邮箱所组成的一维数组. **返回值:** NULL(表示插件不存在),false(修改失败),ture(修改成功)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douseredit($user){ global $_M; dump($user); //$user[0] 用户id //$user[1] 邮箱 $result = $this -> check($user); //$result=NULL 说明插件不存在 //$result=false 说明注册失败 //$result=ture 说明注册成功 return $result; } } > #### douserpass插件: **作用:** 修改密码。 **传入值:**修改类型、用户id、旧密码、新密码所组成的一维数组。(说明:修改类型的值为1时表明可以忽略旧密码进行修改) **返回值:** NULL(表示插件不存在),false(修改失败),ture(修改成功)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douserpass($user){ global $_M; dump($user); //$user[0] 修改类型 //$user[1] 用户id //$user[2] 旧密码 //$user[3] 新密码 $result = $this ->chenk($user); //$result=NULL 说明插件不存在 //$result=false 说明注册失败 //$result=ture 说明注册成功 return $result; } } > #### dousedel插件: **作用:** 删除用户。 **传入值:**所有要删除用户的id组成的一维数组。 **返回值:**NULL(表示插件不存在),false(删除失败),ture(删除成功)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douserdel($userlist){ global $_M; dump($userlist); //$userlist[0] 用户id //$userlist[1] 用户id $result = $this ->check($userlist); //$result=NULL 说明插件不存在 //$result=false 说明删除失败 //$result=ture 说明删除成功 return $result; } } > #### douserok插件: **作用:** 检测注册账号的有效性。 **传入值:**注册的账号。 **返回值:**NULL(表示插件不存在),false(账号在插件用户表内重复,不可用),ture(表示账号可用)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douserok($username){ global $_M; dump($username) = ZhangSan; $result =$this ->check($username); //$result=NULL 说明插件不存在 //$result=false 说明账号在插件用户表内重复,不可用 //$result=ture 说明账号可用 return $result; } } > #### doemail插件: **作用:** 检测邮箱的有效性。 **传入值:**注册的邮箱。 **返回值:** NULL(表示插件不存在),false(邮箱在插件用户表内重复,不可用),ture(表示邮箱可用)。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function doemail($email){ global $_M; dump($email) = 123456@qq.com; $result = $this -> check($email); //$result=NULL 说明插件不存在 //$result=false 说明邮箱在插件用户表内重复,不可用 //$result=ture 说明邮箱可用 return $result; } } > #### douserlogin插件: **作用: ** 同步登陆。 **传入值:**登录类型、账号、密码所组成的一维数组。(说明:登录类型值为md5时代表登录方式是通过存入的cooike进行登录验证) **返回值:**无。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douserlogin($user){ global $_M; dump($user); //$user[0] 登录类型 //$user[1] 账号 //$user[2] 密码 } } > #### dologout插件: **作用:** 同步登陆退出。 **传入值:**无。 **返回值:**无。 实例代码: defined('IN_MET') or exit('No permission'); class plugin_myapp{ public function douserlogin($user){ global $_M; } }