DiscuzX2第三方DIY模块拓展类的开发文档格式.docx
- 文档编号:6814957
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:21
- 大小:21.99KB
DiscuzX2第三方DIY模块拓展类的开发文档格式.docx
《DiscuzX2第三方DIY模块拓展类的开发文档格式.docx》由会员分享,可在线阅读,更多相关《DiscuzX2第三方DIY模块拓展类的开发文档格式.docx(21页珍藏版)》请在冰点文库上搜索。
type>
*/
functionname(){
return'
示例数据类'
;
}
*返回一个数组:
第一个值为本数据类所在的模块分类;
第二个值为模块分类显示的名称(显示在DIY模块面板)
functionblockclass(){
returnarray('
sample'
'
示例分类'
);
*返回数据类中可供“模块样式”使用的字段。
*格式见示例:
*name为该字段的显示名称
*formtype决定编辑单条数据时该字段的显示方式:
类型有:
text,textarea,date,title,summary,pic;
详见portalcp_block.htm模板(搜$field[formtype])
*datatype决定该字段的数据展示,类型有:
string,int,date,title,summary,pic;
详见function_block.php中block_template函数
functionfields(){
returnarray(
'
field1'
array('
示例字段1'
formtype'
text'
datatype'
string'
),
field2'
示例字段2'
title'
);
*返回使用本数据类调用数据时的设置项
*title为显示的名称
*type为表单类型,有:
text,password,number,textarea,radio,select,mselect,mradio,mcheckbox,calendar;
详见function_block.php中block_makeform()函数
functiongetsetting(){
param1'
array(
'
数据调用参数1'
type'
default'
'
),
param2'
数据调用参数2'
mcheckbox'
value'
array('
1'
选项1'
2'
选项2'
),
*处理设置参数,返回数据
*返回数据有两种:
*一种是返回html,放到模块summary字段,直接显示;
返回格式为:
html'
=>
返回内容'
data'
null)
*一种是返回data,通过模块样式渲染后展示,返回的数据应该包含fields()函数中指定的所有字段;
array(array('
value1'
),array('
value2'
)))
*特别的:
*parameter参数包含getsetting()提交后的内容;
并附加了字段:
*items,为用户指定显示的模块数据条数;
*bannedids,为用户选择屏蔽某数据时记录在模块中的该数据id。
应该在获取数据时屏蔽该数据;
*
*如果返回的数据给data,那么应该包含fields()函数指定的所有字段。
并附加以下字段:
*id标志该数据的id,如果用户屏蔽某数据时,会将该数据的id添加到parameter[bannedids]里
*idtype标志该数据的idtype
*@param<
$style模块样式(见common_block_style表)。
可以根据模块样式中用到的字段来选择性的获取/不获取某些数据
$parameter用户对getsetting()给出的表单提交后的内容。
functiongetdata($style,$parameter){
//返回summary
p>
这是一个演示模块数据类<
/p>
null);
//返回数据
//需要注意:
除id,idtype,title,url,pic,picflag,summary几个字段外,其它字段需要放到fields数组里。
可以参考系统内置模块类source/class/block/block_thread.php
array(
id'
idtype'
sampleid'
title1'
url'
#'
pic'
nophoto.gif'
picflag'
summary'
fields'
'
)
)
));
}
第三方C/S扩展方式
此扩展方式需要第三方提供一个服务端应用程序接口,为使用该服务的客户端提供数据。
服务端提供的数据必需为XML格式的数据,具体的XML规范请参考下面的详细说明。
XML规范
配置规范
∙请示方式
客户端以GET的方式向服务器端提交以下参数请求此XML文档
op=getconfig,此参数表示客户端要请求配置文档;
clientid,客户端ID(服务器分配给客户端的ID);
charset,客户端的数据编码
sign=签名,如果服务器端没有设置通信密钥则此值为空,如果服务器端不使用签名则此值为通信密钥;
签名机制
∙规范内容包括Title和Data部分
oTitle部分
此部分是固定的代码且区分大小写
itemid="
Title"
!
[CDATA[Discuz!
Block]]>
/item>
∙
oData部分
主要包括5个属性
version版本号(必需)
name模块名(必需)
fields可显示的字段,在模块样式中使用(必需)包括以下内容
name为该字段的显示名称
formtype决定编辑单条数据时该字段的显示方式:
datatype决定该字段的数据展示,类型有:
getsetting可设置和接收的参数(必需),包括以下内容
title为显示的名称
type为表单类型,有:
style内置的显示样式(非必需)
∙配置规范XML文档示例如下
xmlversion="
1.0"
encoding="
ISO-8859-1"
root>
Data"
<
version"
[CDATA[X1.5]]>
name"
[CDATA[C/S数据类]]>
fields"
<
url"
<
[CDATA[链接地址]]>
formtype"
[CDATA[text]]>
datatype"
[CDATA[string]]>
title"
[CDATA[标题]]>
[CDATA[title]]>
pic"
[CDATA[图片]]>
[CDATA[pic]]>
summary"
[CDATA[简介]]>
[CDATA[summary]]>
author"
[CDATA[作者]]>
authorid"
[CDATA[作者ID]]>
[CDATA[int]]>
field1"
[CDATA[字段1]]>
field2"
[CDATA[字段2]]>
getsetting"
param1"
[CDATA[数据调用参数1]]>
type"
default"
[CDATA[]]>
param2"
[CDATA[数据调用参数2]]>
[CDATA[mcheckbox]]>
value"
<
0"
<
[CDATA[1]]>
1"
[CDATA[选项1]]>
[CDATA[2]]>
[CDATA[选项2]]>
titlelength"
[CDATA[标题长度]]>
[CDATA[40]]>
summarylength"
[CDATA[简介长度]]>
[CDATA[80]]>
start"
[CDATA[起始数据行数]]>
[CDATA[0]]>
style"
[CDATA[模板名称]]>
template"
[CDATA[<
divclass="
moduleclxlxl1"
ul>
[loop]<
li>
em>
ahref="
home.php?
uid={authorid}"
FONTCOLOR="
RED"
{author}<
/FONT>
/a>
/em>
{url}"
{title}<
/li>
[/loop]<
/ul>
/div>
]]>
[CDATA[模板名称红色]]>
fontcolor="
red"
/font>
/root>
数据规范
数据规范分为数据列表和HTML代码
∙数据列表格式
客户端在请求数据时以POST的方式提交客户端设置的参数值,参数值包括在配置规范中可设置和接收的参数getsetting指定的所有字段,除了设置的参数外,系统会以POST的方式追加以下参数:
*op=getdata,此参数表示客户端要请求数据;
*clientid,客户端ID(服务器分配给客户端的ID);
*items,为用户指定显示的模块数据条数;
*bannedids,为用户选择屏蔽某数据时记录在模块中的该数据id,多个id以半角分号(,)分隔。
*charset,客户端的数据编码
*sign,数据签名,如果服务器端没有设置通信密钥则此值为空,如果服务器端不使用签名则此值为通信密钥;
服务器端返回数据的data中应该包含配置规范中可显示的字段fields指定的所有字段。
*id标志该数据的id,如果用户屏蔽某数据时,会将该数据的id以POST的方式变量名为bannedids,多个id以半角逗号(,)分隔提交到服务器端
*picflag如果有图片,则该值标志图片的类型,0为url、1为本地、2为ftp远程;
如果图片是Discuz!
X系统中的图片可以情况设置为1或2,其它情况为0
需要注意:
除id,title,url,pic,picflag,summary几个字段外,其它字段需要放到fields数组里。
数据列表格式示例
html"
data"
id"
[CDATA[14]]>
[CDATA[xml_block_title14]]>
[CDATA[xml_server.php]]>
[CDATA[nophoto.gif]]>
picflag"
[CDATA[xml_user14]]>
[CDATA[field1value14]]>
[CDATA[field2value14]]>
[CDATA[15]]>
[CDATA[xml_block_title15]]>
[CDATA[xml_user15]]>
[CDATA[field1value15]]>
[CDATA[field2value15]]>
oHTML代码格式
例示
divstyle="
border:
1pxsolidred;
width:
100px;
height:
100px;
"
HTMLCODE<
服务端应用程序接口示例
以下提供一个PHP版本的程序示例:
define('
CHARSET'
GBK'
//服务器端数据编码
require'
./source/class/class_xml.php'
//XML格式的文档和array的相互转换的类
error_reporting(7);
$charset=$_GET['
charset'
]
$_GET['
chars
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DiscuzX2 第三 DIY 模块 拓展 开发