[转]Discuz!X 插件开发实例教程-右下角弹出广告框(二)

举报
wh_bn 发表于 2021/12/16 00:55:19 2021/12/16
【摘要】 第二步: 我们来创建一个模块,插件模块分为程序链接、扩展项目和程序脚本 3 类,您可以为每个模块设置不同的使用等级,。扩展项目模块可以在社区的特定位置扩展出新的功能,通常用于扩展新的设置项目。项目的脚本文件以 .inc.php 结尾,模版为固定文件名,位于插件目录的 template/ 子目录中,文件名与脚本名同名(如 test....

第二步:

我们来创建一个模块,插件模块分为程序链接、扩展项目和程序脚本 3 类,您可以为每个模块设置不同的使用等级,。扩展项目模块可以在社区的特定位置扩展出新的功能,通常用于扩展新的设置项目。项目的脚本文件以 .inc.php 结尾,模版为固定文件名,位于插件目录的 template/ 子目录中,文件名与脚本名同名(如 test.htm),扩展名为 .htm。添加相应的扩展项目模块时,需注明程序模块、菜单名称。具体请查看文档《插件接口概述》。

在后台》插件》消息提示》设计》模块中添加一个管理中心的模块类型,如下图中圈起来的地方,然后提交。

Discuz!X 插件开发实例教程

然后在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 插件开发实例教程)

文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fengda2870/article/details/7315105

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。