牛骨文教育服务平台(让学习变的简单)
博文笔记

discuz新增一个discuz 独立页面

创建时间:2017-10-27 投稿人: 浏览次数:181

想单独新增一个自定义的独立页面类似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


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



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


入口文件test.php

<?php  
define("APPTYPEID", 0);  
define("CURSCRIPT", "test");  
  
require "./source/class/class_core.php";  
$discuz = C::app();  
//echo "<pre/>";  
//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