我正在开发应用程序,我想在代码点火器中使主题独立于系统。
这些主题只是 css 文件和图像,不一定是视图。在代码点火器 MVC 中。
这些主题应由数据库变量选择。
我怎么能这样做?
我正在开发应用程序,我想在代码点火器中使主题独立于系统。
这些主题只是 css 文件和图像,不一定是视图。在代码点火器 MVC 中。
这些主题应由数据库变量选择。
我怎么能这样做?
将使用的主题的名称存储在用户会话中。然后在每个控制器构造函数中检查值是否存在,在数据库中检查主题名称是否存在,并将数据提供给视图,视图依次通过包含的标头处理事物。
数据库将如下所示:
theme_id | theme_name | theme_css
------------------------------------
1 | default | default.css
2 | fancy | fancy.css
您的视图都将包含以下内容:
<?php include header.php ?>
header.php 将包含以下内容:
<link href="/css/<?=$theme_data->css?>" rel="stylesheet" type="text/css" />
扩展标准控制器的基本控制器将如下所示:
<?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
}
}