我想为我的应用程序制作不同的主题。我将所有主题文件夹保存在http :: //example.com/thems /中,我希望从这些主题文件夹中加载视图以制作自定义模板。
答案 0 :(得分:2)
只需扩展CI_Loader核心类。 在application / core / MY_Loader.php上创建新文件并扩展__construct方法
class My_Loader extends CI_Loader { function __construct() { //Change this property to match your new path $this->_ci_view_path = APPPATH.'views/'; $this->_ci_ob_level = ob_get_level(); $this->_ci_library_paths = array(APPPATH, BASEPATH); $this->_ci_helper_paths = array(APPPATH, BASEPATH); $this->_ci_model_paths = array(APPPATH); log_message('debug', "Loader Class Initialized"); } }
我很感兴趣,如果这个小黑客会起作用:)
答案 1 :(得分:1)
将当前主题放在会话变量$ theme;
中然后在加载视图时,在路径中包含会话变量
$this->load->view('themes/'.$theme.'/<page>')
;
答案 2 :(得分:0)
Phil Sturgeon和其他几个人已经编写了模板库,它们或多或少地支持主题。这允许您保持MVC结构并且相当灵活。
更多the docs
答案 3 :(得分:0)
我基于现有的库制作了一个非常简单的主题切换器。虽然文件仍在views文件夹中,但在views文件夹中是主题子文件夹。
http://keithics.com/blog/php-programming/a-very-simple-theme-switcher-for-codeigniter