Discuz!X3.1插件嵌入点与模版(一)

作者: 鲁智深 分类: Discuz!X 发布时间: 2014-06-21 00:06

什么是嵌入点

嵌入点是Discuz!X程序提供底层功能接口。开发者通过在插件中定义嵌入点。可以实现—-页面变化、数据处理、代码功能修改等程序效果。

Discuz!X插件嵌入点链接

http://faq.comsenz.com/library/plug/plugin/plugin_hook.htm

嵌入点类型有哪些

1、页面嵌入点:作用修改页面显示

2、信息提示嵌入点:作用修改showmessage

3、广告嵌入点:作用处理广告位数据

4、功能嵌入点:作用处理主题、帖子、头像数据等

页面嵌入点

页面嵌入点

页面嵌入点的三种类型

1、全局页面嵌入点:运行位置公共模版(表现为global开头

2、普通页面嵌入点:运行位置普通模块模版页面(除global开头都是普通页面嵌入点

3、输出前置页面嵌入点:运行位置模块与模版间,处理数据

页面嵌入点类的命名规则

全局页面嵌入点类(必须)

class plugin_插件标识符{}

普通嵌入点类

class plugin_插件标识符_入口文件名{}

页面嵌入点方法命名规则

全局页面嵌入点方法

function global_任意(){}

1
2
3
4
5
6
7
8
<?php
class plugin_ppctest
{
function global_cpnav_extra1(){
return 'phpdz';
}
}
?>

输出前置页面嵌入点方法

function 模块名_任意_output(){}

一般用来对某些变量进行修改的,接收处理没有输出的数据

1
2
3
4
5
6
7
8
9
10
11
12
<?php
class plugin_ppctest_forum exetnds plugin_ppctest
{
function index_status_output(){
echo 'phpdz3';

//对用户名的进行修改
  global $_G;
  $_G['member']['username'] = '常熟人家';
}
}
?>

普通页面嵌入点方法

function 模块名_任意(){}

1
2
3
4
5
6
7
8
9
<?php
class plugin_ppctest_forum exetnds plugin_ppctest
{
function index_status_extra(){
//输出phpdz2
return 'phpdz2';
}
}
?>

页面嵌入点的两种返回值类型

字符串类型

示例:[string global_login_extra]

作用:普通数据显示

数组类型:列表数据显示

示例:[array forumdisplay_thread_subject/0]

作用:列表数据显示

1
2
3
4
5
6
7
8
9
10
11
<?php
class plugin_ppctest_forum exetnds plugin_ppctest
{
function forumdispaly_thread_subject(){
   return array(
       0 => '第一个主题'
       1 => '第二个主题'
)
}
}
?>

插件模版的定义规则

用法:include template(插件标识符:模版目录名/模版名称)

示例:include template(’ppctest:forum/baidu’);

对应插件目录:/ppctest/template/forum/baidu.htm

block标签的应用

作用:将显示的内容,存储到指定变量中

示例:

1
<!--{block变量名}-->任意的html内容<!--{/block}-->
1
<!--{block str}-->任意的html内容<!--{/block}-->

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注