CodeIgniter管理模板系统

时间:2015-12-15 20:51:04

标签: php css codeigniter

我想允许管理员自行更改管理员仪表板布局并添加一个选项,以便他们可以上传自己的布局或者#34; Premium"布局。

但是,我没有逻辑可以做到这一点。我曾经做过一件事:

  • 基于CSS(用户可以使用具有相同名称的CSS创建新模板);

这看起来很奇怪。

如何动态更改后端代码?有很多PHP代码有许多视图。我知道许多CMS允许用户更改前端(而不是管理仪表板)。我想要管理员仪表板的类似功能。这是针对MMORPG游戏的,admin/user面板位于同一个"页面"中。也许某些管理员不喜欢让面板与另一台服务器相同。

1 个答案:

答案 0 :(得分:0)

我认为您应该将模板名称存储在数据库中,并在MY_Controller.php文件夹下的application/core文件中定义。

例如;

MY_Controller.php文件:

<?php

Class Front_Controller extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this -> load -> model('CommonModel');
        $this -> activeTemplate = $this -> CommonModel -> activeTemplate();
    }
}

CommonModel.php文件:

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class CommonModel Extends CI_Model
{
    function activeTemplate()
    {
        return $this -> db -> get_where('settings', array('feature' => 'frontTemplate'))->row('value');
    }

最后,我们的Controller示例:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

Class Home Extends Front_Controller
{
    public function index()
    {
        $this -> load -> view($this -> activeTemplate.'/front/master', $data);
    }

因此,如果您想使用该结构,则需要在视图文件夹下打开新文件夹,其中包含存储在我们数据库中的主题名称。例如;如果$this -> activeTemplate返回“theme1”值,则需要在application/views/theme1/front(或其他内容)下添加您的观看次数。

如果您使用该结构,则可以轻松更改正面的主题。