phpcms首页的html模板是怎么加载的呢
phpcms首页的html模板是如何加载的呢
怎么看也没有看出来,它的入口文件是如何加载html首页模板的.
有一个basee.php类,好象负责加载的,但是里面有点看不懂它怎么载的呢
<?php<br />/**<br /> * base.php PHPCMS框架入口文件<br /> *<br /> * @copyright (C) 2005-2010 PHPCMS<br /> * @license http://www.phpcms.cn/license/<br /> * @lastmodify 2010-6-7<br /> */<br />define('IN_PHPCMS', true);<br /><br />//PHPCMS框架路径<br />define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);<br /><br />if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);<br /><br />//缓存文件夹地址<br />define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);<br />//主机协议<br />define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');<br />//当前访问的主机名<br />define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));<br />//来源<br />define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');<br /><br />//系统开始时间<br />define('SYS_START_TIME', microtime());<br /><br />//加载公用函数库<br />pc_base::load_sys_func('global');<br />pc_base::load_sys_func('extention');<br />pc_base::auto_load_func();<br /><br />pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);<br />//设置本地时差<br />function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));<br /><br />define('CHARSET' ,pc_base::load_config('system','charset'));<br />//输出页面字符集<br />header('Content-type: text/html; charset='.CHARSET);<br /><br />define('SYS_TIME', time());<br />//定义网站根路径<br />define('WEB_PATH',pc_base::load_config('system','web_path'));<br />//js 路径<br />define('JS_PATH',pc_base::load_config('system','js_path'));<br />//css 路径<br />define('CSS_PATH',pc_base::load_config('system','css_path'));<br />//img 路径<br />define('IMG_PATH',pc_base::load_config('system','img_path'));<br />//动态程序路径<br />define('APP_PATH',pc_base::load_config('system','app_path'));<br /><br />//应用静态文件路径<br />define('PLUGIN_STATICS_PATH',WEB_PATH.'statics/plugin/');<br /><br />if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {<br /> ob_start('ob_gzhandler');<br />} else {<br /> ob_start();<br />}<br /><br />class pc_base {<br /> <br /> /**<br /> * 初始化应用程序<br /> */<br /> public static function creat_app() {<br /> return self::load_sys_class('application');<br /> }<br /> /**<br /> * 加载系统类方法<br /> * @param string $classname 类名<br /> * @param string $path 扩展地址<br /> * @param intger $initialize 是否初始化<br /> */<br /> public static function load_sys_class($classname, $path = '', $initialize = 1) {<br /> return self::_load_class($classname, $path, $initialize);<br /> }<br /> <br /> /**<br /> * 加载应用类方法<br /> * @param string $classname 类名<br /> * @param string $m 模块<br /> * @param intger $initialize 是否初始化<br /> */<br /> public static function load_app_class($classname, $m = '', $initialize = 1) {<br /> $m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;<br /> if (empty($m)) return false;<br /> return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);<br /> }<br /> <br /> /**<br /> * 加载数据模型<br /> * @param string $classname 类名<br /> */<br /> public static function load_model($classname) {<br /> return self::_load_class($classname,'model');<br /> }<br /> <br /> /**<br /> * 加载类文件函数<br /> * @param string $classname 类名<br /> * @param string $path 扩展地址<br /> * @param intger $initialize 是否初始化<br /> */<br /> private static function _load_class($classname, $path = '', $initialize = 1) {<br /> static $classes = array();<br /> if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';<br /><br /> $key = md5($path.$classname);<br /> if (isset($classes[$key])) {<br /> if (!empty($classes[$key])) {<br /> return $classes[$key];<br /> } else {<br /> return true;<br /> }<br /> }<br /> if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {<br /> include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';<br /> $name = $classname;<br /> if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {<br /> include $my_path;<br /> $name = 'MY_'.$classname;<br /> }<br /> if ($initialize) {<br /> $classes[$key] = new $name;<br /> } else {<br /> $classes[$key] = true;<br /> }<br /> return $classes[$key];<br /> } else {<br /> return false;<br /> }<br /> }<br /> <br /> /**<br /> * 加载系统的函数库<br /> * @param string $func 函数库名<br /> */<br /> public static function load_sys_func($func) {<br /> return self::_load_func($func);<br /> }<br /> <br /> /**<br /> * 自动加载autoload目录下函数库<br /> * @param string $func 函数库名<br /> */<br /> public static function auto_load_func($path='') {<br /> return self::_auto_load_func($path);<br /> }<br /> <br /> /**<br /> * 加载应用函数库<br /> * @param string $func 函数库名<br /> * @param string $m 模型名<br /> */<br /> public static function load_app_func($func, $m = '') {<br /> $m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;<br /> if (empty($m)) return false;<br /> return self::_load_func($func, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'functions');<br /> }<br /> <br /> /**<br /> * 加载插件类库<br /> */<br /> public static function load_plugin_class($classname, $identification = '' ,$initialize = 1) {<br /> $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br /> if (empty($identification)) return false;<br /> return pc_base::load_sys_class($classname, 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'classes', $initialize);<br /> }<br /> <br /> /**<br /> * 加载插件函数库<br /> * @param string $func 函数文件名称<br /> * @param string $identification 插件标识<br /> */<br /> public static function load_plugin_func($func,$identification) {<br /> static $funcs = array();<br /> $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br /> if (empty($identification)) return false;<br /> $path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.$func.'.func.php';<br /> $key = md5($path);<br /> if (isset($funcs[$key])) return true;<br /> if (file_exists(PC_PATH.$path)) {<br /> include PC_PATH.$path;<br /> } else {<br /> $funcs[$key] = false;<br /> return false;<br /> }<br /> $funcs[$key] = true;<br /> return true;<br /> }<br /> <br /> /**<br /> * 加载插件数据模型<br /> * @param string $classname 类名<br /> */<br /> public static function load_plugin_model($classname,$identification) {<br /> $identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;<br /> $path = 'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'model';<br /> return self::_load_class($classname,$path);<br /> }<br /> <br /> /**<br /> * 加载函数库<br /> * @param string $func 函数库名<br /> * @param string $path 地址<br /> */<br /> private static function _load_func($func, $path = '') {<br /> static $funcs = array();<br /> if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions';<br /> $path .= DIRECTORY_SEPARATOR.$func.'.func.php';<br /> $key = md5($path);<br /> if (isset($funcs[$key])) return true;<br /> if (file_exists(PC_PATH.$path)) {<br /> include PC_PATH.$path;<br /> } else {<br /> $funcs[$key] = false;<br /> return false;<br /> }<br /> $funcs[$key] = true;<br /> return true;<br /> }<br /> <br /> /**<br /> * 加载函数库<br /> * @param string $func 函数库名<br /> * @param string $path 地址<br /> */<br /> private static function _auto_load_func($path = '') {<br /> if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.'autoload';<br /> $path .= DIRECTORY_SEPARATOR.'*.func.php';<br /> $auto_funcs = glob(PC_PATH.DIRECTORY_SEPARATOR.$path);<br /> if(!empty($auto_funcs) && is_array($auto_funcs)) {<br /> foreach($auto_funcs as $func_path) {<br /> include $func_path;<br /> }<br /> }<br /> }<br /> /**<br /> * 是否有自己的扩展文件<br /> * @param string $filepath 路径<br /> */<br /> public static function my_path($filepath) {<br /> $path = pathinfo($filepath);<br /> if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {<br /> return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];<br /> } else {<br /> return false;<br /> }<br /> }<br /> <br /> /**<br /> * 加载配置文件<br /> * @param string $file 配置文件<br /> * @param string $key 要获取的配置荐<br /> * @param string $default 默认配置。当获取配置项目失败时该值发生作用。<br /> * @param boolean $reload 强制重新加载。<br /> */<br /> public static function load_config($file, $key = '', $default = '', $reload = false) {<br /> static $configs = array();<br /> if (!$reload && isset($configs[$file])) {<br /> if (empty($key)) {<br /> return $configs[$file];<br /> } elseif (isset($configs[$file][$key])) {<br /> return $configs[$file][$key];<br /> } else {<br /> return $default;<br /> }<br /> }<br /> $path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';<br /> if (file_exists($path)) {<br /> $configs[$file] = include $path;<br /> }<br /> if (empty($key)) {<br /> return $configs[$file];<br /> } elseif (isset($configs[$file][$key])) {<br /> return $configs[$file][$key];<br /> } else {<br /> return $default;<br /> }<br /> }<br />}
------解决思路----------------------
默认路由设置: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()

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

「你的組織要求你更改PIN訊息」將顯示在登入畫面上。當在使用基於組織的帳戶設定的電腦上達到PIN過期限制時,就會發生這種情況,在該電腦上,他們可以控制個人設備。但是,如果您使用個人帳戶設定了Windows,則理想情況下不應顯示錯誤訊息。雖然情況並非總是如此。大多數遇到錯誤的使用者使用個人帳戶報告。為什麼我的組織要求我在Windows11上更改我的PIN?可能是您的帳戶與組織相關聯,您的主要方法應該是驗證這一點。聯絡網域管理員會有所幫助!此外,配置錯誤的本機原則設定或不正確的登錄項目也可能導致錯誤。即

Windows11將清新優雅的設計帶到了最前沿;現代介面可讓您個性化和更改最精細的細節,例如視窗邊框。在本指南中,我們將討論逐步說明,以協助您在Windows作業系統中建立反映您的風格的環境。如何更改視窗邊框設定?按+開啟“設定”應用程式。 WindowsI前往個人化,然後按一下顏色設定。顏色變更視窗邊框設定視窗11「寬度=」643「高度=」500「>找到在標題列和視窗邊框上顯示強調色選項,然後切換它旁邊的開關。若要在「開始」功能表和工作列上顯示主題色,請開啟「在開始」功能表和工作列上顯示主題
![Active Directory 使用者和電腦遺失 [以 3 種方式修復]](https://img.php.cn/upload/article/000/465/014/168196830849131.png?x-oss-process=image/resize,m_fill,h_207,w_330)
ActiveDirectory使用者和電腦(ADUC)遺失是許多WindowsPro使用者報告的最令人沮喪的問題之一。 ADUC是一個令人難以置信的MMC管理單元,它使管理員能夠管理MicrosoftActiveDirectory。但是,由於某種原因,它在Windows伺服器或Enterprise/Pro版本中缺失。讓我們深入了解它丟失的原因以及我們如何修復它。 Windows11是否有ActiveDirectory? ActiveDirectory是任何想要管理遠端

預設情況下,Windows11上的標題列顏色取決於您選擇的深色/淺色主題。但是,您可以將其變更為所需的任何顏色。在本指南中,我們將討論三種方法的逐步說明,以更改它並個性化您的桌面體驗,使其具有視覺吸引力。是否可以更改活動和非活動視窗的標題列顏色?是的,您可以使用「設定」套用變更活動視窗的標題列顏色,也可以使用登錄編輯程式變更非活動視窗的標題列顏色。若要了解這些步驟,請前往下一部分。如何在Windows11中變更標題列的顏色? 1.使用「設定」應用程式按+開啟設定視窗。 WindowsI前往“個人化”,然

您是否在Windows安裝程式頁面上看到「出現問題」以及「OOBELANGUAGE」語句? Windows的安裝有時會因此類錯誤而停止。 OOBE表示開箱即用的體驗。正如錯誤提示所表示的那樣,這是與OOBE語言選擇相關的問題。沒有什麼好擔心的,你可以透過OOBE螢幕本身的漂亮註冊表編輯來解決這個問題。快速修復–1.點選OOBE應用底部的「重試」按鈕。這將繼續進行該過程,而不會再打嗝。 2.使用電源按鈕強制關閉系統。系統重新啟動後,OOBE應繼續。 3.斷開系統與網際網路的連接。在脫機模式下完成OOBE的所

工作列縮圖可能很有趣,但它們也可能分散注意力或煩人。考慮到您將滑鼠懸停在該區域的頻率,您可能無意中關閉了重要視窗幾次。另一個缺點是它使用更多的系統資源,因此,如果您一直在尋找一種提高資源效率的方法,我們將向您展示如何停用它。不過,如果您的硬體規格可以處理它並且您喜歡預覽版,則可以啟用它。如何在Windows11中啟用工作列縮圖預覽? 1.使用「設定」應用程式點擊鍵並點選設定。 Windows按一下系統,然後選擇關於。點選高級系統設定。導航至“進階”選項卡,然後選擇“效能”下的“設定”。在「視覺效果」選

在Windows11上的顯示縮放方面,我們都有不同的偏好。有些人喜歡大圖標,有些人喜歡小圖標。但是,我們都同意擁有正確的縮放比例很重要。字體縮放不良或圖像過度縮放可能是工作時真正的生產力殺手,因此您需要知道如何自訂以充分利用系統功能。自訂縮放的優點:對於難以閱讀螢幕上的文字的人來說,這是一個有用的功能。它可以幫助您一次在螢幕上查看更多內容。您可以建立僅適用於某些監視器和應用程式的自訂擴充功能設定檔。可以幫助提高低階硬體的效能。它使您可以更好地控制螢幕上的內容。如何在Windows11

螢幕亮度是使用現代計算設備不可或缺的一部分,尤其是當您長時間注視螢幕時。它可以幫助您減輕眼睛疲勞,提高易讀性,並輕鬆有效地查看內容。但是,根據您的設置,有時很難管理亮度,尤其是在具有新UI更改的Windows11上。如果您在調整亮度時遇到問題,以下是在Windows11上管理亮度的所有方法。如何在Windows11上變更亮度[10種方式解釋]單一顯示器使用者可以使用下列方法在Windows11上調整亮度。這包括使用單一顯示器的桌上型電腦系統以及筆記型電腦。讓我們開始吧。方法1:使用操作中心操作中心是訪問
