Discuz!X系列的diy功能还是相当不错的,在对其进行二次开发的过程中,或许需要加入新的数据调用模块,这样可以使你开发的功能模块也像原来的模块一样,只需要点点鼠标,填写一些简单的信息,就可以在各个页面的各个位置显示你想显示的数据啦。

以下就目前最新版X2.5做一个简答的介绍:
大致可以分为以下三个步骤:
一、添加数据调用程序
二、后台更新diy模块分类缓存
三、添加相应的数据模板

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

<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$blockclass = array(
'name' => lang('blockclass', 'blockclass_resource'),
);
?>

再在news文件夹下,新建 block_news.php,内容如下:

<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
} class block_news extends discuz_block { public $setting = array(); public function block_news() {
$this->setting = array(.........); //这儿对setting进行初始化
} public function name() {
// 这儿设置数据来源
return lang('blockclass', 'blockclass_news_script_news');
} public function blockclass() {
// 这儿设置调用模块类型
return array('news', lang('blockclass', 'blockclass_news'));
} public function fields() {
$fields = array(.........); //这儿对fields进行设置,除了discuz本身支持的变量外,只有这儿设置的字段才可以在模板中调用。
return $fields;
} public function getsetting() {
return $this->setting;
} public function getdata($style, $parameter) {
$list = array(.........); // 这儿根据实际情况从数据库或许相应的数据
return array('html' => '', 'data' => $list);
}
} ?>

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

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

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

X2.5 添加自定义数据调用模块(简单方法)的更多相关文章

  1. ECMall的MySQL数据调用的简单方法

    很多ecmall开发者会问,怎么使用Ecmall的mysql类库进行数据调用.从原理上来讲Ecmall的数据调用是以数据模块+模块类库的方式进行mysql数据调用的,所有数据模块都存储在include ...

  2. LoadRunner脚本关联动态数据的最简单方法

    为什么要关联动态数据呢?举个例子,在对我们平台的工作流性能测试时, 在待办任务里面选择一条记录执行发送操作,LoadRunner VuGen会详细记录下来流程发送操作的细节,但在回放脚本的时候会有问题 ...

  3. python 动态调用模块&类&方法

    转载自:http://www.cnblogs.com/bluefrog/archive/2012/05/11/2496439.html 一直想知道python里有没有类似php中的 $classnam ...

  4. SpringCloud实战——(3)通过RESTful方式调用模块的方法

    在项目中创建一个类,编写如下内容: package com.f*iservice.controller; import org.springframework.web.bind.annotation. ...

  5. vue.js之生命周期,防止闪烁,计算属性的使用,vue实例简单方法和循环重复数据

    摘要:今天是比较糟糕的一天没怎么学习,原因是学校的wifi连不上了~~.今天学习一下vue的生命周期,如何防止闪烁(也就是用户看得到花括号),计算属性的使用,vue实例简单方法,以及当有重复数据时如何 ...

  6. 微信的API都是通过https调用实现的,分为post方法调用和get方法调用。不需要上传数据的采用get方法(使用IntraWeb开发)

    首先需要明确的是,微信的API都是通过https调用实现的,分为post方法调用和get方法调用.不需要上传数据的采用get方法(例如获取AccessToken),而需要向微信服务器提交数据的采用po ...

  7. Python全栈day21(调用模块路径BASEDIR的正确方法)

    正常写python程序会有一个可执行的bin.py文件,假如这个文件需要导入my_module里面定义的模块,应该怎么设置sys.path 文件夹目录结构如下,因为bin不在与my_module同级目 ...

  8. led跑马灯多种方法(移位法,位拼接法,调用模块法,位移及位拼接语法,testbench的理解,源文件的存储路径,计数器的个数,调用模块的方式)

    跟着教程写了几种方法,才发现自己写的虽然能实现,但比较繁琐.教程有三种方法: 1.移位法,每次左移一位,相比我自己写的,优点是不用把每一种情况都写出来.但是需要考虑左移到最后一位时需要自己再写个赋值语 ...

  9. 第十二节,TensorFlow读取数据的几种方法以及队列的使用

    TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...

随机推荐

  1. Storm-源码分析- bolt (backtype.storm.task)

    Bolt关键的接口为execute, Tuple的真正处理逻辑, 通过OutputCollector.emit发出新的tuples, 调用ack或fail处理的tuple /** * An IBolt ...

  2. java基础08 双重循环打印图形

    public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...

  3. Linux网络调试工具资料链接

    Dropbox: https://huoding.com/2016/12/15/574 Tcpdump: http://roclinux.cn/?p=2474

  4. Django的模型层(2) - 多表操作(下)

    一.多表查询 1.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接 ...

  5. Hibernate简单配置

    1.配置构建路径,加载用户库,hibernate4.3.8 MySQL-Driver 2.写User.java      纯POJO+持久化注解=PO @Entity @Table(name=&quo ...

  6. ORACLE性能优化- Buffer cache 的调整与优化

    Buffer Cache是SGA的重要组成部分,主要用于缓存数据块,其大小也直接影响系统的性能.当Buffer Cache过小的时候,将会造成更多的 free buffer waits事件. 下面将具 ...

  7. mysql增量恢复的一个实例操作

    通过防火墙禁止web等应用向主库写数据或者锁表,让主库暂时停止更新,然后进行恢复 模拟整个场景 1.登录数据库 [root@promote 3306]# mysql -uroot -S /data/3 ...

  8. MySQL的搜索引擎,统一字符编码 和忘记MySQL密码如何破解

    忘记mysql密码 linux平台下,破解密码的两种方式 [root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!! [root@egon ~] ...

  9. Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Cre ...

  10. Mybatis中的ParameterType

    mybatis可以传入的参数类型1.基本数据类型       可以通过#{参数名}直接获取.每次只能传入一个值       <select id="selectTeacher" ...