Web applications 主题能否在代码点火器中脱离系统?

Web applications 主题能否在代码点火器中脱离系统?,web-applications,codeigniter,themes,application-design,Web Applications,Codeigniter,Themes,Application Design,我正在开发应用程序,我想在CodeIgniter中使主题独立于系统 这些主题只是css文件和图像,不一定是视图。在codeigniters MVC中 这些主题应由数据库变量选择 id如何做到这一点?在用户会话中存储所用主题的名称。然后在每个控制器构造函数中检查值的存在性,在数据库中检查主题名称的存在性,并将数据提供给视图,视图通过包含的头来处理数据 数据库将如下所示: theme_id | theme_name | theme_css -----------------------------

我正在开发应用程序,我想在CodeIgniter中使主题独立于系统

这些主题只是css文件和图像,不一定是视图。在codeigniters MVC中

这些主题应由数据库变量选择


id如何做到这一点?

在用户会话中存储所用主题的名称。然后在每个控制器构造函数中检查值的存在性,在数据库中检查主题名称的存在性,并将数据提供给视图,视图通过包含的头来处理数据

数据库将如下所示:

theme_id | theme_name | theme_css 
------------------------------------
1        | default    | default.css
2        | fancy      | fancy.css
<?php include header.php ?>
<?php
class Base_Controller extends Controller
{
    protected $theme = 'default';
    function __construct()
    {
        parent::Controller();
        if ($this->session->userdata('theme')
        {
            $this->theme = $this->session->userdata('theme');
        }
        $this->view->data['theme_data'] = $this->get_theme_data();

    }

    protected function get_theme_data()
    {
        // return data from database using $this->theme
    }

}
您的视图都将包含以下内容:

theme_id | theme_name | theme_css 
------------------------------------
1        | default    | default.css
2        | fancy      | fancy.css
<?php include header.php ?>
<?php
class Base_Controller extends Controller
{
    protected $theme = 'default';
    function __construct()
    {
        parent::Controller();
        if ($this->session->userdata('theme')
        {
            $this->theme = $this->session->userdata('theme');
        }
        $this->view->data['theme_data'] = $this->get_theme_data();

    }

    protected function get_theme_data()
    {
        // return data from database using $this->theme
    }

}

header.php将包含以下内容:

<link href="/css/<?=$theme_data->css?>" rel="stylesheet" type="text/css" />