本教程以x2为蓝本
1.在"source/class/block"目录下新建一个目录"video"[名字任意取,便于自己记忆就行]
2.在刚才新建的"video"目录下新建2个文件
第1个"blockclass.php"[文件名固定的]
内容如下
<?php
$blockclass=array("name"=>"视频类");
?>
这里的"视频类"三个字会出现在DIY模块选项列表中
第2个文件"block_自定义.php"[把"自定义"三个字改成有助于自己记忆的名称如"sohu"]
第2个文件名称以block_sohu.php为例
内容就是定义一个类,类的名字必须和文件名一致
class block_tudou{}
当然类必须有方法
第1个方法[必须定义]
function name(){
return "数据来源";//该文字显示在"编辑模块->模块属性->数据来源"的下拉列表里
}
第2个方法[必须定义]
function blockclass(){
return array("sample","小分类名称");//sample可以改成其他的,"小分类名称"会显示在"视频类"下的列表里
}
第3个方法[必须定义]
function fields(){
$field["zc_name"]=array("name"=>"姓名","formtype"=>"text","datatype"=>"string");
$field["zc_sex"]=array("name"=>"性别","formtype"=>"title","datatype"=>"title");
return $field;
}
其中
name为该字段的显示名称
formtype决定编辑单条数据时该字段的显示方式:text|textarea|date|title|summary|pic
datatype决定该字段的数据展示:string|int|date|title|summary|pic
第4个方法[必须定义]
function getsetting(){
$parameter["param1"]=array("title"=>"参数说明","type"=>"text","default"=>"");
$parameter["param2"]=array("title"=>"参数说明","type"=>"mcheckbox","default"=>"1","value"=>array(array("1","选项1"),array("2","选项2")));
return $parameter;
}
其中
title为显示的名称
type为表单类型:text|password|number|textarea|radio|select|mselect|mradio|mcheckbox|calendar
第5个方法[必须定义]
function getdata($style,$parameter){
$data[0]["id"]="1";
$data[0]["idtype"]="sampleid";
$data[0]["title"]="这是周春";
$data[0]["url"]="play.php?id=";
$data[0]["pic"]="nophoto.gif";
$data[0]["picflag"]="1";
$value[0]["zc_name"]="周春";
$value[0]["zc_sex"]="男";
$data[0]["fields"]=$value[0];
//--------------------------------------------------
$data[1]["id"]="2";
$data[1]["idtype"]="sampleid";
$data[1]["title"]="这是肖西锋";
$data[1]["url"]="play.php?id=";
$data[1]["pic"]="nophoto.gif";
$data[1]["picflag"]="1";
$value[1]["zc_name"]="肖西锋";
$value[1]["zc_sex"]="女";
$data[1]["fields"]=$value[1];
//--------------------------------------------------
$result["html"]="";
$result["data"]=$data;
return $result;
}
其中
$data[0]表示第1条数据
$data[1]表示第2条数据
这里返回的数据是一个数组,可以循环显示出来
还有一种返回字符串的形式
$result["html"]="html代码";
$result["data"]=null;
return $result;
该字符串放到模块summary字段里
关于此函数的两个参数说明
$style模块样式[可以根据模块样式中用到的字段来选择性的获取|不获取某些数据]
$parameter对getsetting()给出的表单提交后的内容并附加了字段"items"和"bannedids"
items为用户指定显示的模块数据条数
bannedids为用户选择屏蔽某数据时记录在模块中的该数据id
完整的类文件内容
<?php
class block_sohu {
function name(){return "数据来源";}
function blockclass(){return array("sample","小分类名称");}
function fields(){
$field["zc_name"]=array("name"=>"姓名","formtype"=>"text","datatype"=>"string");
$field["zc_sex"]=array("name"=>"性别","formtype"=>"title","datatype"=>"title");
return $field;
}
function getsetting(){
$parameter["param1"]=array("title"=>"参数说明","type"=>"text","default"=>"");
$parameter["param2"]=array("title"=>"参数说明","type"=>"mcheckbox","default"=>"1","value"=>array(array("1","选项1"),array("2","选项2")));
return $parameter;
}
function getdata($style,$parameter){
$data[0]["id"]="1";
$data[0]["idtype"]="sampleid";
$data[0]["title"]="这是周春";
$data[0]["url"]="play.php?id=";
$data[0]["pic"]="nophoto.gif";
$data[0]["picflag"]="1";
$value[0]["zc_name"]="周春";
$value[0]["zc_sex"]="男";
$data[0]["fields"]=$value[0];
//--------------------------------------------------
$data[1]["id"]="2";
$data[1]["idtype"]="sampleid";
$data[1]["title"]="这是肖西锋";
$data[1]["url"]="play.php?id=";
$data[1]["pic"]="nophoto.gif";
$data[1]["picflag"]="1";
$value[1]["zc_name"]="肖西锋";
$value[1]["zc_sex"]="女";
$data[1]["fields"]=$value[1];
//--------------------------------------------------
$result["html"]="";
$result["data"]=$data;
return $result;
}
}
?>
可以创建很多的"block_自定义.php"这样的文件在"video"目录下
这样在"视频类"的列表中就会出现你所定义的小分类
3.进入后台->工具->更新缓存[记得勾选DIY模块分类缓存]->确定
4.进行DIY
添加一个框架,框架标题为测试
切换到模块点击"视频类",拖动"小分类名称"到框架里面
模块标识填写一个你便于记忆的名称
写好模块模板就可以调出数据了
Discuz x2 第三方DIY模块拓展类的开发详细教程
最新推荐文章于 2021-03-23 10:07:18 发布
1503

被折叠的 条评论
为什么被折叠?



