一.CI(Codeigniter)框架自定義檢視檔案位置
你想自定義view的檔案位置,則需要了解CI框架如何載入view檢視檔案的。
$this->load->view(); 這行程式碼的原理是什麼?
我們開啟application/core/Loader.php,裡面有一個這樣的方法:
public function add_package_path($path, $view_cascade = TRUE)
{
$path = rtrim($path, '/').'/';
array_unshift($this->_ci_library_paths, $path);
array_unshift($this->_ci_model_paths, $path);
array_unshift($this->_ci_helper_paths, $path);
//這一行程式碼就是載入view的操作,你想自定義則修改即可。
$this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths;
// Add config file path
$config =& $this->_ci_get_component('config');
$config->_config_paths[] = $path;
return $this;
}
但本著可擴充套件性的原則,我們不去修改原始碼,而是使用繼承的原則來解決這個問題:
方法:自定義一個MY_Loader.php類繼承自Loader,然後在方法中修改$this->_ci_view_paths;
案例如下:
有一個網站,分前後臺,前臺的目錄使用自定義的目錄,後臺使用預設的application/views/下的檔案。
首先在/application/core/下定義一個MY_Loader.php檔案:
class MY_Loader extends CI_Loader
{
protected $_theme = 'default/';
#開啟新的檢視目錄,呼叫$this->load->view()時,則呼叫themes/default/下的view檔案
public function switch_themes_on()
{
$this->_ci_view_paths = array(FCPATH . THEMES_DIR . $this->_theme => true);
}
#關閉新的試圖目錄,呼叫$this->load->view()時,則呼叫application/views/下的view檔案
public function switch_themes_off()
{
//just do nothing
}
}
其次,在/application/core/中自定義一個控制類MY_Controller.php繼承自CI_Controller類,
//前臺控制器
class Home_Controller extends CI_Controller{
public function __construct()
{
parent::__construct();
#開啟新檢視檔案
$this->load->switch_themes_on();
}
}
//後臺控制器
class Admin_Controller extends CI_Controller{
public function __construct()
{
parent::__construct();
#關閉新檢視檔案
$this->load->switch_themes_off();
}
}
最後,當你編寫前臺程式碼時,控制器繼承Home_Controller,則載入檢視時會自動載入application/themes/default中的view檔案。 後臺控制器則繼承Admin_Controller,當你使用$this->load->view()方法的時候,CI就會載入預設的view目錄下的檢視檔案。
相關文章
- CodeIgniter框架之檢視框架
- 038.CI4框架CodeIgniter,使用Jwt生成token框架JWT
- JXPopupView:一個輕量級的自定義檢視彈出框架View框架
- 自定義檢視指令
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- 自定義檢視---圓角柱狀圖(一)
- Laravel 自定義檢視元件Laravel元件
- 035.CI4框架CodeIgniter,安裝前端VUE並執行框架前端Vue
- win10搜尋檔案在哪裡 檢視搜尋檔案位置的方法Win10
- php 自定義配置檔案PHP
- Centos6環境下CI(CodeIgniter)框架建立定時任務CentOS框架
- 檢視檔案
- CI-CodeIgniter中“超級物件”:$CI =& get_instance()物件
- 自定義 Command 檢視 Laravel 日誌Laravel
- Android 最簡單的自定義檢視管理之一Android
- 谷歌工具檢視CSS程式碼定義的位置谷歌CSS
- XCode 建立自定義檔案模版XCode
- CI(CodeIgniter)框架下使用非自帶類庫實現郵件傳送框架
- CodeIgniter框架之模型框架模型
- Laravel 自定義函式存放位置Laravel函式
- 小程式檔案館——自定義元件元件
- SpringBoot讀取自定義配置檔案Spring Boot
- 使用stub快速生成自定義檔案
- springboot如何使用自定義配置檔案Spring Boot
- 使用檢視格式化來自定義SharePoint
- Flutter - Drawer 抽屜檢視與自定義headerFlutterHeader
- iMazing檔案系統檢視一覽表
- 自定義ORM框架ORM框架
- 042.CI4框架CodeIgniter,控制器過濾器Filter配合Services的使用框架過濾器Filter
- Spring框架裡解析配置檔案的準確位置Spring框架
- iOS自定義log並寫入檔案iOS
- 快速自定義Cordova外掛(-配置檔案)
- docker Redis 自定義配置檔案啟動DockerRedis
- Laravel 實現自定義生成檔案命令Laravel
- 039.CI4框架CodeIgniter,封裝Model模型繫結資料庫的封裝框架封裝模型資料庫
- Win10 1909系統hosts檔案如何檢視_win10 1909開啟host檔案位置的方法Win10
- git檢視檔案內容Git
- win10如何檢視heic檔案_win10怎麼檢視heic檔案Win10
- Flutter日曆2.0,支援月檢視和周檢視,可以支援自定義風格Flutter