Discuz!X 插件制作教程 ------ 页面嵌入 & 导航

来源:互联网 发布:标致雪铁龙 知乎 编辑:程序博客网 时间:2024/04/30 10:41
现在我遇到一个问题:我想更改自己网站的页面内容,比如我希望能在不使用二次开发更改系统模板的情况下来更改部分布局和内容,我应该怎么做?    似乎现在的DX很强大,但是这样的功能它支持么?很高兴地告诉你:你完全可以做到!你甚至可以通过自己的内容来对页面的任意一部分内容进行更改,这就是DX插件最最强大的地方,当然前提是你需要去了解它。
    现在我们来实现一个内容,我们以我自己的一个插件:帖子导读的显示部分为例。
    首先,我们需要了解DX的一个概念:嵌入点。

    在每个标准的DX页面都有一些DX已经设定好的嵌入点,要查看这些嵌入点,我们需要对系统的代码进行一些修改,方法如下:

在config\config_global.php 文件里设置$_config['plugindeveloper'] = 2 如果没这个变量自己加一行。顾名思义,开启插件开发模式,开启后后台会多出现些菜单,前台会显示出嵌入点。

更新一下缓存,然后你就会看到如下图的内容:


 有一段js代码需要我们在每个页面都进行调用,我们需要编写一个调用类



到source/plugin/下创建demo目录,在demo目录里创建demo.class.php文件,内容如下

[php] view plaincopyprint?
  1. <?php  
  2.   
  3. if(!defined('IN_DISCUZ')) {  
  4.     exit('Access Denied');  
  5. }  
  6.   
  7. class plugin_demo {  
  8.   
  9.     function __construct(){  
  10.           
  11.     }  
  12.   
  13.     function global_footer(){  
  14.           
  15.         return '<script>alert("插件我来了")</script>';  
  16.     }  
  17.       
  18. }  
然后,随便访问一个前台页面,都会有“插件我来了”弹出。
 现在,您基本上已经可以做常用的插件了。不过,如果您需要一个导航栏怎么办?天啊!我需要一个类似于每日签到 这样的一个签到页面,我应该怎么来做呢?
    不用着急,接下来我们就来实验一个导航栏,然后进去之后输出一个hello,world的代码。

    首先,我们需要在设计模块里面增加一个导航栏


有了它,我们就可以写:.inc.php这个文件了,不过我们似乎还需要一点点模板的支持,那么我们在这个文件夹下,新建一个文件夹:template,然后在它的下面新建一个文件:.htm,内容如下:

[html] view plaincopyprint?
  1. {template common/header}  
  2. <p>Hello,WORLD!!!</p>  
  3. {template common/footer}  

在demo.inc.php这个文件里,我们写入:

[php] view plaincopyprint?
  1. <?php  
  2. if(!defined('IN_DISCUZ')){  
  3.     exit('Access Denied');  
  4. }  
  5. include template('demo:demo');  
  6. ?>  

 然后,更新一下缓存,然后刷新一下站点首页,看看有什么效果?
原创粉丝点击