1

我是 codeigniter 的新手,我对 codeigniter 中的布局/模板/主题感到麻烦。
我不知道什么时候应该使用其中之一。我能做
的最好的方法是什么?如果我想制作一个免费的html/css 模板的网站,例如

goodnatured
|--img
   |--img01.jpg
|--css
   |--style.css
|--js
   |--jquery.js
|--index.html

任何人都可以告诉我一个教程,建议,...谢谢

4

3 回答 3

1

我只是写了一点额外的库(application/libraries/display_lib.php)来渲染模板和类似的页面块。像这样的东西:

    class Display_Lib{
       private $_CI;
       private $_template_data;

       public function __construct()
       {
           $this->_CI =& get_instance();
       }

       public function set($key, $value)
       {
           $this->_template_data[$key] = $value;
       }

       public function get($key)
       {
           return $this->_template_data[$key];
       }

       public function get_template_data()
       {
           return $this->_template_data;
       }

       public function display_page($view, $data = array())
       {
           $this->set('content', $this->_CI->load->view($view, $data, TRUE));
           $this->_CI->load->view('templates/main_template', $this->get_template_data());
       }
}

将此库设置为自动加载:

$autoload['libraries'] = array('session', 'database', 'display_lib');

并在控制器中调用它:

class Main extends CI_Controller{
    public function index()
    {
        $some_data = array();
        $this->display_lib->display_page('views/main_view', $some_data);
    }
}

模板示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <base href="<?=base_url();?>">
    <meta charset="utf-8">
    <link rel="icon" href="<?=site_url('img/favicon.ico')?>" type="image/x-icon"/>
    <link rel="stylesheet" href="<?=site_url('css/style.css');?>" type="text/css" media="screen, projection"/>
    <script type="text/javascript" src="<?=site_url('js/jquery-1.10.2.min.js');?>"></script>
    <title>Some page title</title>
</head>
<body>
    <header></header>
    <div class="auth_wrapper">
        <div class="content">
            <?=$content;?>
        </div>
        <div class="buffer"></div>
    </div>
    <footer></footer>
</body>
</html>

application/views/main_view简单的例子:

<div>Come content will be here</div>

这个库允许使用模板并从控制器渲染视图。

于 2013-08-14T11:56:52.053 回答
0

模板处理页面的布局。您创建一个包含您的元数据、页眉、页脚和正文空间的模板。正文被注入到模板中,这是内容更改的地方。

这个想法是大多数网站不会改变,只有身体会改变。这就是模板有用的地方,它们可以节省您的时间并提高一致性。看到这个模板库,还不错: http: //getsparks.org/packages/template/show

主题与模板相结合,因为模板通常定义布局,而主题只是“皮肤”布局。主题包括将进一步修改模板的资产和样式。

干杯

于 2014-07-23T21:40:02.293 回答
-2

制作一个template.php、header.php、footer.php。下面是template.php,同样制作页眉和页脚并将它们都放在views文件夹中:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="icon" href="<?=site_url('img/favicon.ico')?>" type="image/x-icon"/>
    <link rel="stylesheet" href="<?=site_url('css/style.css');?>" type="text/css" media="screen, projection"/>
    <script type="text/javascript" src="<?=site_url('js/jquery-1.10.2.min.js');?>"></script>
    <title>Some page title</title>
</head>
<body>
    <header><?=$this->load->view('header');?></header>
    <div class="wrapper">
        <div class="content">
            <?=$main?>
        </div>
    </div>
    <footer><?=$this->load->view('footer');?></footer>
</body>
</html>

在您的控制器功能中:

function index(){
    $data           = array();
    $data['main']   = "home";           #this view is home.php in views folder, the content part of template.php
    $this->load->view('template', $data); #this is the template file being rendered.
}

这是CI我认为使用模板最简单的方法。

于 2013-08-14T12:09:07.123 回答