无限星辰工作室-客户无限互联网动力之源

标题: Discuz! 添加自定义数据调用模块 [打印本页]

作者: crx349    时间: 2015-3-10 16:44
标题: Discuz! 添加自定义数据调用模块

大致可以分为以下三个步骤:
一、添加数据调用程序
二、后台更新diy模块分类缓存
三、添加相应的数据模板

具体操作如下:
一、添加数据调用程序
1> 在  source/class/block/ 目录下新建文件夹如 :news
2>
在news文件夹下,新建 blockclass.php,内容如下:

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('Access Denied');
  4. }
  5. $blockclass = array(
  6.         'name' => lang('blockclass', 'blockclass_resource'),
  7. );
  8. ?>
复制代码

再在news文件夹下,新建 block_news.php,内容如下:
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('Access Denied');
  4. }

  5. class block_news extends discuz_block {
  6.        
  7.         public $setting = array();

  8.         public function block_news() {
  9.                 $this->setting = array(.........); //这儿对setting进行初始化
  10.         }
  11.        
  12.         public function name() {
  13.                 // 这儿设置数据来源
  14.                 return lang('blockclass', 'blockclass_news_script_news');
  15.         }
  16.        
  17.         public function blockclass() {
  18.                 // 这儿设置调用模块类型
  19.                 return array('news', lang('blockclass', 'blockclass_news'));
  20.         }
  21.        
  22.         public function fields() {
  23.                 $fields = array(.........); //这儿对fields进行设置,除了discuz本身支持的变量外,只有这儿设置的字段才可以在模板中调用。
  24.                 return $fields;
  25.         }
  26.        
  27.         public function getsetting() {
  28.                 return $this->setting;
  29.         }

  30.         public function getdata($style, $parameter) {
  31.                 $list = array(.........);  // 这儿根据实际情况从数据库或许相应的数据
  32.                 return array('html' => '', 'data' => $list);
  33.         }
  34. }

  35. ?>
复制代码


以上代码中 lang(....),均为语言处理,这里略过。还有 $setting,$fields,$list的格式可以参考 source/class/block/member/block_member.php中对应变量的格式。或参考:http://www.xmspace.net/thread-254-1-1.html

二、进入后台-工具-更新缓存,一定要勾选“DIY 模块分类缓存”,然后开始更新。

三、进入后台-门户-模块模板,在这个下添加你对应的模板。





欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://www.xmspace.net/) Powered by Discuz! X3.4