第二步:
我们来创建一个模块,插件模块分为程序链接、扩展项目和程序脚本 3 类,您可以为每个模块设置不同的使用等级,。扩展项目模块可以在社区的特定位置扩展出新的功能,通常用于扩展新的设置项目。项目的脚本文件以 .inc.php 结尾,模版为固定文件名,位于插件目录的 template/ 子目录中,文件名与脚本名同名(如 test.htm),扩展名为 .htm。添加相应的扩展项目模块时,需注明程序模块、菜单名称。具体请查看文档《插件接口概述》。
在后台》插件》消息提示》设计》模块中添加一个管理中心的模块类型,如下图中圈起来的地方,然后提交。
然后在source/plugin/notice 下新建admincp.inc.php,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
if
(!defined(
'IN_DISCUZ'
) || !defined(
'IN_ADMINCP'
)) {
exit
(
'Access Denied'
);
}
$identifier
=
'notice'
;
$slang
=
$scriptlang
[
'notice'
];
$operation
=
$_G
[
'gp_operation'
];
if
(
$operation
==
"list"
) {
showsubmenu(
$slang
[
'notice_manage'
],
array
(
array
(
$slang
[
'notice_add'
],
"plugins&operation=add&do=$pluginid&identifier=$identifier&pmod=admincp"
, 0),
array
(
$slang
[
'notice_list'
],
"plugins&operation=list&do=$pluginid&identifier=$identifier&pmod=admincp"
, 1),
));
include
'list.php'
;
}
else
{
showsubmenu(
$slang
[
'notice_manage'
],
array
(
array
(
$slang
[
'notice_add'
],
"plugins&operation=add&do=$pluginid&identifier=$identifier&pmod=admincp"
, 1),
array
(
$slang
[
'notice_list'
],
"plugins&operation=list&do=$pluginid&identifier=$identifier&pmod=admincp"
, 0),
));
include
'add.php'
;
}
|
注释很清楚,$scriptlang['notice'];是用来加载我们这个插件的脚本语言包的,过会来讲,showsubmenu()函数是二级导航栏创建的函数,关于后台HTML函数还有一些,请看我在前的文章《Discuz!X 二次开发之后台HTML显示函数方法以及使用》有详细介绍,最好能都熟练使用,给后台开发带来很多方便。
给我们的插件创建语言包,首先需要创建一个 data/plugindata/notice.lang.php 文件,文件内容中包含 3 个数组,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$scriptlang
[
'notice'
] =
array
(
'add'
=-->
'添加'
,
'title'
=>
'标题'
,
'content'
=>
'内容'
,
'submit'
=>
'提交'
,
'notice_add'
=>
'添加'
,
'notice_manage'
=>
'消息管理'
,
'notice_list'
=>
'列表'
,
'success'
=>
'添加成功'
,
'publish_time'
=>
'发布时间'
,
'status'
=>
'状态'
,
'publish'
=>
'点击发布'
,
'in_publish'
=>
'发布中'
,
'edit_success'
=>
'消息已更换'
);
$templatelang
[
'notice'
] =
array
(
'name'
=>
'yes'
);
$installlang
[
'notice'
] =
array
(
);
|
$scriptlang 为程序脚本文件的语言包,$templatelang 为模版文件的语言包,$installlang 为安装、升级、卸载脚本用的语言包。
模版中调用模板文件语言包,通过 {lang <em>identifier</em>:english} 方式调用。
程序脚本中调用脚本文件语言包,通过 lang(‘plugin/<em>identifier’</em>, ‘english’) 方式调用。
安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang['english']。
(转载请标明出处:Discuz!X 插件开发实例教程)