接口

2018-06-22 23:32:07 admin 6


接口是现有系统功能或者其他应用模块为应用一个系统调用,应用可以通过设置参数,在现有系统功能或者其他应用模块中完成一些功能。通过接口,应用可以在系统功能或其他应用执行一些固定操作,或者页面添加一些固定内容。下面来介绍下现有接口:

栏目接口

作用:可以在栏目设置中添加应用的栏目,并完成一些固定的操作。
设置方法:通过向met_ifcolumn与met_ifcolumn_addfile表中写入数据来达到效果。
met_ifcolumn 栏目接口表
作用:设置栏目接口

字段名类型是否为空默认属性注释
idint(11)主键
noint(11)
应用编号
namevarchar(50)
应用系统名称
appnamevarchar(50)
应用名称,添加栏目的时候选择模块时候的名称,
可以和你的应用名称不一样,比如你应用叫
防伪码查询系统,这里可以写防伪码模块。
支持多语言写法$_M['word'][]。
addfiletinyint(1)1
是否在添加栏目的时候,在前台添加一个文件。
memberlefttinyint(1)0
是否向会员左侧导航添加导航。如果值为1,
则在添加栏目的时候把现在这个栏目的链接
添加到会员左侧导航。
uniquenesstinyint(1)0
是否只允许只添加一个栏目,如果值为1,
表示这个模块只能添加一个,0表示可以添加多个。
fixed_namevarchar(50)
添加的栏目文件夹名称是否允许用户自定义,
如果为空表示可以自定义栏目文件夹名称,
如果不为空则无法自定义文件夹。

met_ifcolumn_addfile表 新建文件列表
作用:当添加栏目时候,需要新建文件的时候,会按此表设置,建立文件,一条数据就是一个文件。

字段名类型是否为空默认属性注释
idint(11)主键
noint(11)
应用编号
filenamevarchar(255)
新建的文件名,比如index.php
m_namevarchar(255)
M_NAME的指定值
m_modulevarchar(255)
M_MODULE的指定值
m_classvarchar(255)
M_CLASS的指定值
m_actionvarchar(255)
M_ACTION的指定值

实例:
比方说我插入一条如下数据:
id:1
no:10001
filename:index.php
m_name:ceshi
m_module:web
m_class:ceshi
m_action:doindex
则在新建栏目,并指定了栏目文件夹为ceshi后,会在网站根目录下新建ceshi/index.php文件。文件内容如下:

# MetInfo Enterprise Content Management System # Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. 
 define('M_NAME', 'ceshi');
define('M_MODULE', 'web');
define('M_CLASS', 'ceshi);
define('M_ACTION', 'doindex');
require_once '../app/app/entrance.php';
 
# This program is an open source system, commercial use, please consciously to purchase commercial license.
# Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved.

会员接口

met_ifmember_left 会员左侧导航表
作用:通过设置此表可以向前台会员模块添加左侧导航,在此表添加的左侧导航将在“会员中心首页”后面显示。

字段名类型是否为空默认属性注释
idint(11)主键
noint(11)
应用编号
columnidint(11)
栏目编号,当设置了栏目编号,
会优先取栏目信息。
titlevarchar(50)
导航栏的标题,支持多语言写法$_M['word'][]。
foldernamevarchar(255)
导航栏所指向的文件夹地址
filenamevarchar(255)
导航栏所指向的文件地址

3.4 插件

插件是可以在某个类的某个方法下插入代码执行的控件。可以让编码人员在系统插件所指定的地点,通常是某个类的某个方法执行的某个阶段后插入一段自己的代码。用于处理一些事务。

创建步骤
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表结构:

字段名类型是否为空默认属性注释
idint(11)主键
no_orderint(11)
排序,决定不同应用的代码执行的先后顺序。
noint(11)
应用编号
m_namevarchar(50)
应用系统名称
m_actionvarchar(50)
所调用的插件系统名称,也就是执行的方法名称。
effecttinyint(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'][] = "<a></a>";$_M['html_plugin']['top_script'][] = "<a></a>";

doadmin插件
插件系统名称为doadmin,可以在系统二级基类admin.class.php后台基类初始化的最后插入代码。

注意事项:
在当前系统插件中只能使用DB类与$_M数组两个系统调用,其他的类,方法等系统调用无法使用。



作者:layjoy
链接:https://www.jianshu.com/p/4b8b58439198
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。