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 -> a=init
パス: phpcms/modules/content/関数 init()

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="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)
Active Directory ユーザーとコンピューター (ADUC) の損失は、多くの Windows Pro ユーザーから報告されている最もイライラする問題の 1 つです。 ADUC は、管理者が Microsoft Active Directory を管理できるようにする優れた MMC スナップインです。ただし、何らかの理由で、Windows Server または Enterprise/Pro エディションにはありません。欠落している理由とそれを修正する方法を詳しく見てみましょう。 Windows 11 には Active Directory がありますか? Active Directory は、リモートで管理したい人にとって便利です。

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を学習するには、次のセクションに進んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設定アプリを使用して + を押して設定ウィンドウを開きます。 Windows「個人用設定」に進み、

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 画面自体から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強制的にシャットダウンします。システムの再起動後、OOBE が続行されます。 3. システムをインターネットから切断します。 OOBE のすべての側面をオフライン モードで完了する

タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報」を選択します。 「システムの詳細設定」をクリックします。 [詳細設定] タブに移動し、[パフォーマンス] の下の [設定] を選択します。 「視覚効果」を選択します

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる
