discuz新增一个discuz 独立页面

想单独新增一个自定义的独立页面类似dz的member页面,经过尝试基本实现了单页功能:过程如下:

比如想新建一个test.php,则整个MVC过程如下:

upload根目录下新增test.php 【入口文件】

template/default下新建test文件夹,文件夹下新建你所定义的mod文件名,【模板文件】 比如test.php?mod=run,则对应的模板文件为template/default/test/run.php 

source下class文件夹中新增class_test.php 【模块类文件】比如mod定义为run,则该文件里面添加run类及其方法,如果定义了多个mod则声明多个模块类

source下function文件夹中新增function_test.php【模块函数】这里可以分别定义不同mod的方法以及公共方法

source下module文件夹中新增test文件夹,该文件中增加一些文件,文件名根据你在test.php中定义的$modarray的名称来创建【实例文件】:命名规则为test_模块名.php


我定义了run,laugh,talk三个模块,实际test.php的效果如下:

默认地址:http://www.bbs.com/test.php

discuz新增一个discuz 独立页面_第1张图片

run模块地址:http://www.bbs.com/test.php?mod=run

discuz新增一个discuz 独立页面_第2张图片


laugh模块地址:http://www.bbs.com/test.php?mod=laugh

discuz新增一个discuz 独立页面_第3张图片


入口文件test.php

";  
//print_r($discuz);  
$modarray = array('talk', 'laugh','run');  
  
if(!!isset($_GET['mod']) && !in_array($_GET['mod'],$modarray)){  
    echo('mod is undefined!');  
}  
  
$mod = isset($_GET['mod']) ? $_GET['mod']:'talk';//有个方法判断当前的model  
define('CURMODULE', $mod);  
$discuz->init();  
  
require libfile('function/test');  
require libfile('class/test');  
runhooks();  
require DISCUZ_ROOT.'./source/module/test/test_'.$mod.'.php';  
?>  


function文件:

source/function/function_test.php

[php]  view plain  copy
  1. if(!defined('IN_DISCUZ')) {  
  2.     exit('Access Denied');  
  3. }  
  4.   
  5. function talk($msg){  
  6.     echo "new ".__FUNCTION__." model and runing in ".__FUNCTION__." model,".$msg;  
  7. }  
  8.   
  9. function laugh($msg){  
  10.     echo "new ".__FUNCTION__." model and runing in ".__FUNCTION__." model,".$msg;  
  11. }  
  12.   
  13. function run($msg){  
  14.     echo "new ".__FUNCTION__." model and  runing in ".__FUNCTION__." model,".$msg;  
  15. }  
  16. ?>  



class类文件:

source/class/class_test.php

[php]  view plain  copy
  1. if(!defined('IN_DISCUZ')) {  
  2.     exit('Access Denied');  
  3. }  
  4.   
  5. class talk{  
  6.     function __construct($msg){  
  7.         talk($msg);  
  8.     }  
  9.     function  run(){  
  10.         return "now in ".__CLASS__." model ,time is:".date("Y-m-d H:i:s",time());  
  11.     }  
  12. }  
  13.   
  14. class laugh{  
  15.     function __construct($msg){  
  16.         laugh($msg);  
  17.     }  
  18.     function  run(){  
  19.         return "now in ".__CLASS__." model ,time is:".date("Y-m-d H:i:s",time());  
  20.     }  
  21. }  
  22.   
  23. class run{  
  24.   
  25.     function __construct($msg){  
  26.         run($msg);  
  27.     }  
  28.     function  run(){  
  29.         return "now in ".__CLASS__." model ,time is:".date("Y-m-d H:i:s",time());  
  30.     }  
  31. }  
  32. ?>  


模块实例文件:【多个以此类推】

source/module/test/test_laugh.php 

[php]  view plain  copy
  1. if(!defined('IN_DISCUZ')) {  
  2.     exit('Access Denied');  
  3. }  
  4. define('NOROBOT', TRUE);  
  5. //echo "hello world! I can laugh";  
  6. $c = new laugh("hello,laugh");  
  7. $time = $c->run();  
  8. include template('test/laugh');  
  9. ?>  


模板文件:【多个以此类推】

template/default/test/llaugh.php

[php]  view plain  copy
  1.   
  2.    
  3. class="talk">  
  4.     

    独立的laughing页面,{$time}

      
  5.   
  
  •  

  • 到此,一个简单的discuz单页就做好了,然后根据个人需要引入数据,让模板填充数据自由发挥。


    你可能感兴趣的:(discuz)