php加载的html模板在哪,phpcms首页的html模板是怎么加载的呢

phpcms首页的html模板是如何加载的呢

怎么看也没有看出来,它的入口文件是如何加载html首页模板的.

有一个basee.php类,好象负责加载的,但是里面有点看不懂它怎么载的呢

/**

*  base.php PHPCMS框架入口文件

*

* @copyright(C) 2005-2010 PHPCMS

* @licensehttp://www.phpcms.cn/license/

* @lastmodify2010-6-7

*/

define('IN_PHPCMS', true);

//PHPCMS框架路径

define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);

if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);

//缓存文件夹地址

define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);

//主机协议

define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');

//当前访问的主机名

define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));

//来源

define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');

//系统开始时间

define('SYS_START_TIME', microtime());

//加载公用函数库

pc_base::load_sys_func('global');

pc_base::load_sys_func('extention');

pc_base::auto_load_func();

pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);

//设置本地时差

function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));

define('CHARSET' ,pc_base::load_config('system','charset'));

//输出页面字符集

header('Content-type: text/html; charset='.CHARSET);

define('SYS_TIME', time());

//定义网站根路径

define('WEB_PATH',pc_base::load_config('system','web_path'));

//js 路径

define('JS_PATH',pc_base::load_config('system','js_path'));

//css 路径

define('CSS_PATH',pc_base::load_config('system','css_path'));

//img 路径

define('IMG_PATH',pc_base::load_config('system','img_path'));

//动态程序路径

define('APP_PATH',pc_base::load_config('system','app_path'));

//应用静态文件路径

define('PLUGIN_STATICS_PATH',WEB_PATH.'statics/plugin/');

if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {

ob_start('ob_gzhandler');

} else {

ob_start();

}

class pc_base {

/**

* 初始化应用程序

*/

public static function creat_app() {

return self::load_sys_class('application');

}

/**

* 加载系统类方法

* @param string $classname 类名

* @param string $path 扩展地址

* @param intger $initialize 是否初始化

*/

public static function load_sys_class($classname, $path = '', $initialize = 1) {

return self::_load_class($classname, $path, $initialize);

}

/**

* 加载应用类方法

* @param string $classname 类名

* @param string $m 模块

* @param intger $initialize 是否初始化

*/

public static function load_app_class($classname, $m = '', $initialize = 1) {

$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;

if (empty($m)) return false;

return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);

}

/**

* 加载数据模型

* @param string $classname 类名

*/

public static function load_model($classname) {

return self::_load_class($classname,'model');

}

/**

* 加载类文件函数

* @param string $classname 类名

* @param string $path 扩展地址

* @param intger $initialize 是否初始化

*/

private static function _load_class($classname, $path = '', $initialize = 1) {

static $classes = array();

if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';

$key = md5($path.$classname);

if (isset($classes[$key])) {

if (!empty($classes[$key])) {

return $classes[$key];

} else {

return true;

}

}

if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {

include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';

$name = $classname;

if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {

include $my_path;

$name = 'MY_'.$classname;

}

if ($initialize) {

$classes[$key] = new $name;

} else {

$classes[$key] = true;

}

return $classes[$key];

} else {

return false;

}

}

/**

* 加载系统的函数库

* @param string $func 函数库名

*/

public static function load_sys_func($func) {

return self::_load_func($func);

}

/**

* 自动加载autoload目录下函数库

* @param string $func 函数库名

*/

public static function auto_load_func($path='') {

return self::_auto_load_func($path);

}

/**

* 加载应用函数库

* @param string $func 函数库名

* @param string $m 模型名

*/

public static function load_app_func($func, $m = '') {

$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;

if (empty($m)) return false;

return self::_load_func($func, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'functions');

}

/**

* 加载插件类库

*/

public static function load_plugin_class($classname, $identification = '' ,$initialize = 1) {

$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;

if (empty($identification)) return false;

return pc_base::load_sys_class($classname, 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'classes', $initialize);

}

/**

* 加载插件函数库

* @param string $func 函数文件名称

* @param string $identification 插件标识

*/

public static function load_plugin_func($func,$identification) {

static $funcs = array();

$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;

if (empty($identification)) return false;

$path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.$func.'.func.php';

$key = md5($path);

if (isset($funcs[$key])) return true;

if (file_exists(PC_PATH.$path)) {

include PC_PATH.$path;

} else {

$funcs[$key] = false;

return false;

}

$funcs[$key] = true;

return true;

}

/**

* 加载插件数据模型

* @param string $classname 类名

*/

public static function load_plugin_model($classname,$identification) {

$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;

$path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'model';

return self::_load_class($classname,$path);

}

/**

* 加载函数库

* @param string $func 函数库名

* @param string $path 地址

*/

private static function _load_func($func, $path = '') {

static $funcs = array();

if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions';

$path .= DIRECTORY_SEPARATOR.$func.'.func.php';

$key = md5($path);

if (isset($funcs[$key])) return true;

if (file_exists(PC_PATH.$path)) {

include PC_PATH.$path;

} else {

$funcs[$key] = false;

return false;

}

$funcs[$key] = true;

return true;

}

/**

* 加载函数库

* @param string $func 函数库名

* @param string $path 地址

*/

private static function _auto_load_func($path = '') {

if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.'autoload';

$path .= DIRECTORY_SEPARATOR.'*.func.php';

$auto_funcs = glob(PC_PATH.DIRECTORY_SEPARATOR.$path);

if(!empty($auto_funcs) && is_array($auto_funcs)) {

foreach($auto_funcs as $func_path) {

include $func_path;

}

}

}

/**

* 是否有自己的扩展文件

* @param string $filepath 路径

*/

public static function my_path($filepath) {

$path = pathinfo($filepath);

if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {

return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];

} else {

return false;

}

}

/**

* 加载配置文件

* @param string $file 配置文件

* @param string $key  要获取的配置荐

* @param string $default  默认配置。当获取配置项目失败时该值发生作用。

* @param boolean $reload 强制重新加载。

*/

public static function load_config($file, $key = '', $default = '', $reload = false) {

static $configs = array();

if (!$reload && isset($configs[$file])) {

if (empty($key)) {

return $configs[$file];

} elseif (isset($configs[$file][$key])) {

return $configs[$file][$key];

} else {

return $default;

}

}

$path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';

if (file_exists($path)) {

$configs[$file] = include $path;

}

if (empty($key)) {

return $configs[$file];

} elseif (isset($configs[$file][$key])) {

return $configs[$file][$key];

} else {

return $default;

}

}

}

------解决思路----------------------

默认路由设置:caches/configs/route.php  'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),

执行流程:base.php -> m=content -> c=index -> a=init

路径:phpcms/modules/content/index.php  里面的 function init()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值