(DIY二次开发)门户下面diy模块全能调取数据

转载 2018年04月15日 18:20:53
二次开发的时候,我添加了一个功能,我想在任何一个页面去调用数据,也想使用discuz的前台diy模式去调用这些数据,这个时候就需要你自己写代码了哦,自己写模块。下面是详细介绍。

先看下效果:我把我自己的文件写在了其他模块下面

模块开发一定要遵循discuz的规则,按照它规定的一些规则走:

discuz的所有的模块全部在:source/class/block 中,看下对应的文件就明白了

这个时候差不多明白一点了吧!


下面咱们在其它类中自定义一个咱们自己的吧



我现在other目录中新建一个block_othernew.php 文件 必须为block_(自定义的名称).php这种格式


其实你在新建一个文件也是可以的 ,可以参考other文件下面的文件,必须存在blockclass.php 这个文件,这个文件:

$blockclass = array(

'name' => lang('blockclass', 'blockclass_other'),//里面定义的就是语言包,就死上图中的 其他类,可以找下语言包中的这个字段,看下就明白了。

);


接着block_othernew.php 


if(!defined('IN_DISCUZ')) {

exit('Access Denied');

}



class block_othernew extends discuz_block {



function block_otherstat() {}

    

//模块名称 模块分类

function name() {

return "自己模块";

}

function blockclass(){

//othernew 模块总分类

return array('othernew', "模块杀手");

}

    //这个模块要返回的字段

function fields() {

return array(

'posts' => array('name' => lang('blockclass', 'blockclass_other_stat_posts'), 'formtype' => 'text', 'datatype' => 'int'),

'posts_title' => array('name' => lang('blockclass', 'blockclass_other_stat_posts_title'), 'formtype' => 'text', 'datatype' => 'string'),

);

}

//设置需要帅选的参数 然后参数会自动传给  etdata($style, $parameter)

function getsetting() {

global $_G;

$settings = array(

'titlelength' => array(

'title' => '傻了吧唧',

'type' => 'text',

'default' => ""

)

);

return $settings;

}

        //返回数据的函数,自己发挥吧,一定要保证你返回的字段 在上个 fields 函数里面要有

function getdata($style, $parameter) {

global $_G;

$parameter = $this->cookparameter($parameter);

$fields = array(

'posts' => 0,

'posts_title' => !empty($parameter['posts_title']) ? $parameter['posts_title'] : lang('block/stat', 'stat_posts'),

);

if(in_array('posts', $parameter['option']) || in_array('bbsnewposts', $parameter['option'])) {

$sql = "SELECT sum(f.posts) AS posts, sum(f.todayposts) AS todayposts FROM ".DB::table('forum_forum')." f WHERE f.status='1'";

$forum = DB::fetch_first($sql);

}

if(in_array('posts', $parameter['option'])) {

$fields['posts'] = intval($forum['posts']);

}

$list = array();

return array('html' => '', 'data' => $list);

}

}



?>



以上类中的函数必须有,缺少一个不可,这是更新一下工具->更新缓存-》DIY 模块分类缓存 更新一下缓存即可,这是去后台和前台看下吧有没有!


要是想要调用最好先在后台为你的模块添加模板


门户=》模板模块=》添加 ,选中你刚才自定义的模块,点击提交,看下图:看看里面的字段,是不是和你定义的类中fields 函数里面的字段是一样的吧!

添加模板,添加好之后,就可以去DIY了,去试试吧.有时你你可以看下 这个函数,相信你会有收获,

discuz二次开发-门户下面diy模块(全能调取数据)

discuz二次开发-门户下面diy模块(全能调取数据),
  • shachao888
  • shachao888
  • 2015-08-07 11:52:52
  • 4117

Discuz/DZ门户/portal增加diy区域的方法

其实这是一个比较卡比的问题。但是纠结了好久才搞明白,特此记录。 1. 打开门户首页模板  template/default/portal/index.htm 2. 我们添加一行代码...
  • u011829023
  • u011829023
  • 2014-03-19 17:35:38
  • 2345

Discuz 用专题与DIY实现调用指定内容并且自动按要求分页的单页

大家在用Discuz的时候会发现后台的门户里有一个专题管理,很多站长不知道这是做什么的,用过CMS内容管理系统的人知道单页功能,那DZ的专题就相当于单页的概念吧。 可以从专题这个名词就能理解...
  • hhao123456
  • hhao123456
  • 2014-03-07 15:27:44
  • 3087

学习Discuz! X3.2记录:门户首页DIY之显示文章列表

选中模块——门户类——拖放文章模块到下面刚创建的框架中。
  • bq_cui
  • bq_cui
  • 2016-01-26 22:59:29
  • 2812

学习Discuz! X3.2记录:门户首页DIY之频道栏目设置、发布文章、首页框架设置

进入后台——门户——频道栏目,新建如下结构栏目:     然后在栏目11中发表文章:...
  • bq_cui
  • bq_cui
  • 2016-01-25 17:24:49
  • 4614

Discuz!教程之DIY主题模块增加主题随机排序功能

如图,添加后的效果,Discuz默认规则里面是没有随机排序的,本教程介绍如果添加随机排序: 修改文件 \source\class\block\forum\block_thread.php 1、参考...
  • lih062624
  • lih062624
  • 2017-06-14 13:46:05
  • 5243

dz 门户调用DIY内置公告不显示,活动内置不显示解决方法

最近发现dz2.5有些版本内置公告调用DIY到门户和基本地方不显示。活动内置调用DIY到其他地方也不显示 对于dz2.5新手可能会不懂。在官方网也有很多人在找此方法,但很少人回答,现在来把这个方法...
  • xst686
  • xst686
  • 2012-12-27 16:45:55
  • 2048

【discuzx2】在后台添加自定义DIY模块的方法

1、第一步: 第二步: 第三步:如下效果
  • yanhui_wei
  • yanhui_wei
  • 2013-11-26 10:31:41
  • 1985

DISCUZ网站DIY后,导致DIY功能失效,无法在前台删除已创建的DIY功能解决办法

DISCUZ网站DIY后,导致DIY功能失效,无法在前台删除已创建的DIY功能解决办法,这是一个经常会遇到的问题,在程序调试过程中经常的会遇到这样的问题,这里提供一个自己常用的解决办法,供遇到这个问题...
  • w_yunlong
  • w_yunlong
  • 2015-12-29 11:54:32
  • 2268
收藏助手
不良信息举报
您举报文章:(DIY二次开发)门户下面diy模块全能调取数据
举报原因:
原因补充:

(最多只允许输入30个字)