第四步:

然后我们就要开始把我们的消息嵌入到前台的页面中去了,在 Discuz!X 中已经给我们创建好了很多嵌入点,《discuzx-插件开发实例教程-右下角弹出广告框(一)》提到过$_config[‘plugindeveloper’] = 2;因为这样在前台各个页面看到嵌入点,你刷新一下前台页面就会看多很多页面都有[string global_footerlink]类似这样的切入点,关于其他页面的嵌入点可以查看文档《页面嵌入模块开发》。

我们这里讲解教程用就随便将我们的弹出框放在[string global_footerlink]这个嵌入点,,这个嵌入点在前台每个页面都有。

选择 后台》插件》消息提示》设计》模块 中添加一个模块。这里我们选择”页面切入“,使用等级为”普通用户“

Discuz!X 插件开发实例教

然后在 source/plugin/notice 中添加 notice.class.php

<?php
class plugin_notice {

    function global_footerlink() {
        $query = DB::query("SELECT * FROM " . DB::table('my_notice') . " WHERE status=1");
        $result = DB::fetch($query); //获取发布中的消息
        $identifier = 'notice';
        $notice_url = $_G['siteurl'] . 'source/plugin/' . $identifier . ''; //插件位置
$str = "<script type="text/javascript" src="$notice_url/plugin_notice.js"></script>"
                . ""
                . "</pre>
<div id="winpop">
<div class="title">{$result['title']}<span class="close" onclick="tips_pop()">X</span></div>
<div class="con">{$result['content']}</div>
</div>
<pre>
";
        return $str;
    }

}

这就是页面嵌入类型脚本格式,plugin* 普通版脚本中的类名以 plugin* 开头。手机版脚本中的类名以 mobileplugin_ 开头。notice 插件的唯一标识符,在插件设置中设置。

global_footerlink()预定义的嵌入点会在页面预置好的位置([string global_footerlink])输出函数返回的内容。函数名并不限于以上列表,您可以自定义,只要符合以下规则,函数就会在适当的地方被调用。 具体请查看文档

plugin_notice.js 和 plugin_notice.css 就是这个弹出框的 js 和 css 文件,也放在 source/plugin/notice 下面,函数返回内容就会被输出在[string global_footerlink]这个嵌入点了。

然后打开前台任何一个页面就会看到弹出框的效果了,插件基本完成了,但是还有一些后续工作要做。

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

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

谢谢打赏

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

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