DiscuzX2第三方DIY模块拓展类的开发.docx

上传人:b****3 文档编号:4647597 上传时间:2023-05-07 格式:DOCX 页数:21 大小:21.99KB
下载 相关 举报
DiscuzX2第三方DIY模块拓展类的开发.docx_第1页
第1页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第2页
第2页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第3页
第3页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第4页
第4页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第5页
第5页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第6页
第6页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第7页
第7页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第8页
第8页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第9页
第9页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第10页
第10页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第11页
第11页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第12页
第12页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第13页
第13页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第14页
第14页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第15页
第15页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第16页
第16页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第17页
第17页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第18页
第18页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第19页
第19页 / 共21页
DiscuzX2第三方DIY模块拓展类的开发.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DiscuzX2第三方DIY模块拓展类的开发.docx

《DiscuzX2第三方DIY模块拓展类的开发.docx》由会员分享,可在线阅读,更多相关《DiscuzX2第三方DIY模块拓展类的开发.docx(21页珍藏版)》请在冰点文库上搜索。

DiscuzX2第三方DIY模块拓展类的开发.docx

DiscuzX2第三方DIY模块拓展类的开发

第三方DIY模块拓展类的开发

内置PHP类扩展方式

脚本目录

source/class/block/[模块大分类目录],此目录需要自行创建

必需的脚本

∙source/class/block/[模块大分类目录]/blockclass.php,此文件为该目录中必需存在的文件,其内容为:

php

$blockclass=array(

'name'=>'模块大分类名',//为此目录定义一个名字

);

?

>

∙source/class/block/[模块大分类目录]/block_name.php

注意:

脚本文件名必需以block_开头,且类名必需和文件名一样。

语言包位置(非必需)

source/language/block/lang_name.php

内容示例

source/class/block/[模块大分类目录]/block_name.php内容示例:

php

classblock_name{

/**

*必须!

*返回本数据调用类的显示名称(显示在创建模块时选择“模块数据”的下拉列表里)

*@return

*/

functionname(){

return'示例数据类';

}

/**

*必须!

*返回一个数组:

第一个值为本数据类所在的模块分类;第二个值为模块分类显示的名称(显示在DIY模块面板)

*@return

*/

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函数

*@return

*/

functionfields(){

returnarray(

'field1'=>array('name'=>'示例字段1','formtype'=>'text','datatype'=>'string'),

'field2'=>array('name'=>'示例字段2','formtype'=>'title','datatype'=>'title'),

);

}

/**

*必须!

*返回使用本数据类调用数据时的设置项

*格式见示例:

*title为显示的名称

*type为表单类型,有:

text,password,number,textarea,radio,select,mselect,mradio,mcheckbox,calendar;详见function_block.php中block_makeform()函数

*@return

*/

functiongetsetting(){

returnarray(

'param1'=>array(

'title'=>'数据调用参数1',

'type'=>'text',

'default'=>''

),

'param2'=>array(

'title'=>'数据调用参数2',

'type'=>'mcheckbox',

'value'=>array(

array('1','选项1'),

array('2','选项2'),

),

'default'=>'1'

),

);

}

/**

*必须!

*处理设置参数,返回数据

*返回数据有两种:

*一种是返回html,放到模块summary字段,直接显示;返回格式为:

array('html'=>'返回内容','data'=>null)

*一种是返回data,通过模块样式渲染后展示,返回的数据应该包含fields()函数中指定的所有字段;返回格式为:

array('html'=>'','data'=>array(array('title'=>'value1'),array('title'=>'value2')))

*特别的:

*parameter参数包含getsetting()提交后的内容;并附加了字段:

*items,为用户指定显示的模块数据条数;

*bannedids,为用户选择屏蔽某数据时记录在模块中的该数据id。

应该在获取数据时屏蔽该数据;

*

*如果返回的数据给data,那么应该包含fields()函数指定的所有字段。

并附加以下字段:

*id标志该数据的id,如果用户屏蔽某数据时,会将该数据的id添加到parameter[bannedids]里

*idtype标志该数据的idtype

*

*@param$style模块样式(见common_block_style表)。

可以根据模块样式中用到的字段来选择性的获取/不获取某些数据

*@param$parameter用户对getsetting()给出的表单提交后的内容。

*@return

*/

functiongetdata($style,$parameter){

//返回summary

returnarray('html'=>'

这是一个演示模块数据类

','data'=>null);

//返回数据

//需要注意:

除id,idtype,title,url,pic,picflag,summary几个字段外,其它字段需要放到fields数组里。

可以参考系统内置模块类source/class/block/block_thread.php

returnarray('html'=>'','data'=>array(

array(

'id'=>'1',

'idtype'=>'sampleid',

'title'=>'title1',

'url'=>'#',

'pic'=>'nophoto.gif',

'picflag'=>'1',

'summary'=>'',

'fields'=>array(

'field1'=>'value1'

));

}

}

?

>

第三方C/S扩展方式

此扩展方式需要第三方提供一个服务端应用程序接口,为使用该服务的客户端提供数据。

服务端提供的数据必需为XML格式的数据,具体的XML规范请参考下面的详细说明。

XML规范

配置规范

∙请示方式

客户端以GET的方式向服务器端提交以下参数请求此XML文档

op=getconfig,此参数表示客户端要请求配置文档;

clientid,客户端ID(服务器分配给客户端的ID);

charset,客户端的数据编码

sign=签名,如果服务器端没有设置通信密钥则此值为空,如果服务器端不使用签名则此值为通信密钥;签名机制

∙规范内容包括Title和Data部分

oTitle部分

此部分是固定的代码且区分大小写

[CDATA[Discuz!

Block]]>

oData部分

主要包括5个属性

version版本号(必需)

name模块名(必需)

fields可显示的字段,在模块样式中使用(必需)包括以下内容

   name为该字段的显示名称

   formtype决定编辑单条数据时该字段的显示方式:

类型有:

text,textarea,date,title,summary,pic;

   datatype决定该字段的数据展示,类型有:

string,int,date,title,summary,pic;

getsetting可设置和接收的参数(必需),包括以下内容

   title为显示的名称

   type为表单类型,有:

text,password,number,textarea,radio,select,mselect,mradio,mcheckbox,calendar;

style内置的显示样式(非必需)

∙配置规范XML文档示例如下

xmlversion="1.0"encoding="ISO-8859-1"?

>

[CDATA[Discuz!

Block]]>

[CDATA[X1.5]]>

[CDATA[C/S数据类]]>

[CDATA[链接地址]]>

[CDATA[text]]>

[CDATA[string]]>

[CDATA[标题]]>

[CDATA[title]]>

[CDATA[title]]>

[CDATA[图片]]>

[CDATA[pic]]>

[CDATA[pic]]>

[CDATA[简介]]>

[CDATA[summary]]>

[CDATA[summary]]>

[CDATA[作者]]>

[CDATA[text]]>

[CDATA[text]]>

[CDATA[作者ID]]>

[CDATA[text]]>

[CDATA[int]]>

[CDATA[字段1]]>

[CDATA[text]]>

[CDATA[string]]>

[CDATA[字段2]]>

[CDATA[text]]>

[CDATA[string]]>

[CDATA[数据调用参数1]]>

[CDATA[text]]>

[CDATA[]]>

[CDATA[数据调用参数2]]>

[CDATA[mcheckbox]]>

[CDATA[1]]>

[CDATA[选项1]]>

[CDATA[2]]>

[CDATA[选项2]]>

[CDATA[1]]>

[CDATA[标题长度]]>

[CDATA[text]]>

[CDATA[40]]>

[CDATA[简介长度]]>

[CDATA[text]]>

[CDATA[80]]>

[CDATA[起始数据行数]]>

[CDATA[text]]>

[CDATA[0]]>

[CDATA[模板名称]]>

[CDATA[

    [loop]
  • uid={authorid}">{author}{title}

  • [/loop]
]]>

[CDATA[模板名称红色]]>

[CDATA[

]]>

数据规范

数据规范分为数据列表和HTML代码

∙数据列表格式

客户端在请求数据时以POST的方式提交客户端设置的参数值,参数值包括在配置规范中可设置和接收的参数getsetting指定的所有字段,除了设置的参数外,系统会以POST的方式追加以下参数:

*op=getdata,此参数表示客户端要请求数据;

*clientid,客户端ID(服务器分配给客户端的ID);

*op=getdata,此参数表示客户端要请求数据;

*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数组里。

数据列表格式示例

xmlversion="1.0"encoding="ISO-8859-1"?

>

[CDATA[]]>

[CDATA[14]]>

[CDATA[xml_block_title14]]>

[CDATA[xml_server.php]]>

[CDATA[nophoto.gif]]>

[CDATA[1]]>

[CDATA[]]>

[CDATA[xml_user14]]>

[CDATA[14]]>

[CDATA[field1value14]]>

[CDATA[field2value14]]>

[CDATA[15]]>

[CDATA[xml_block_title15]]>

[CDATA[xml_server.php]]>

[CDATA[nophoto.gif]]>

[CDATA[1]]>

[CDATA[]]>

[CDATA[xml_user15]]>

[CDATA[15]]>

[CDATA[field1value15]]>

[CDATA[field2value15]]>

oHTML代码格式

例示

xmlversion="1.0"encoding="ISO-8859-1"?

>

[CDATA[

1pxsolidred;width:

100px;height:

100px;">HTMLCODE]]>

[CDATA[]]>

服务端应用程序接口示例

以下提供一个PHP版本的程序示例:

php

define('CHARSET','GBK');//服务器端数据编码

require'./source/class/class_xml.php';//XML格式的文档和array的相互转换的类

error_reporting(7);

$charset=$_GET['charset'] ?

$_GET['chars

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2