Discuz!X系列的diy功能仍是至關不錯的,在對其進行二次開發的過程當中,或許須要加入新的數據調用模塊,這樣可使你開發的功能模塊也像原來的模塊同樣,只須要點點鼠標,填寫一些簡單的信息,就能夠在各個頁面的各個位置顯示你想顯示的數據啦。php
如下就目前最新版X2.5作一個簡答的介紹:
大體能夠分爲如下三個步驟:
1、添加數據調用程序
2、後臺更新diy模塊分類緩存
3、添加相應的數據模板html
具體操做以下:
1、添加數據調用程序
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中對應變量的格式。工具
2、進入後臺-工具-更新緩存,必定要勾選「DIY 模塊分類緩存」,而後開始更新。this
3、進入後臺-門戶-模塊模板,在這個下添加你對應的模板。htm
以上,只是簡單說明,~~,因時間有限,只能到此爲止啦。。。。。ip