第二步:

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

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

Discuz!X 插件开发实例教

然后在 source/plugin/notice 下新建 admincp.inc.php,代码如下:

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 个数组,如下:

     $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 identifier:english} 方式调用。 程序脚本中调用脚本文件语言包,通过 lang(‘plugin/identifier’, ‘english’) 方式调用。 安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang[‘english’]。

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: Discuz!X 插件开发实例教程-右下角弹出广告框(二)

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可