为了能更好的开发,需要基于codeigniter构建一个模版文件,这样就不需要在重复调用头部和底部文件了。这样开发者就只需关心各自的内容那块。

第一步,在application/library文件里创建一个template.php文件

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Template
{
    var $template_data = array();

    function set($name, $value)
    {
        $this->template_data[$name] = $value;
    }

    function set_arr($data)
    {
        foreach ($data as $key => $value)
        {
             $this->template_data[$key] = $value;
        }
    }

    function load($view = '', $view_data = array(), $template = 'template', $return = FALSE)
    {
        $this->CI = & get_instance();
        $this->set('contents', $this->CI->load->view($view, $view_data, TRUE));
        return $this->CI->load->view($template, $this->template_data, $return);
    }

}

将template.php放到autoload里面让他自动加载

$autoload['libraries'] = array('template');
然后创建applicaton/config/style.php

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

$config['js'] = array(
    'demo' => array(
        'jquery.min.js',
        'jquery.uploadify.js',
    ),
);

$config['css'] = array(
    'demo' => array(
        'global.css',
        'style.css',
        'uploadify.css',
    ),
);
然后在控制器里做如下调用

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

class Welcome extends CI_Controller
{

    public function index()
    {
        $css = $this->config->item('demo','css');
        $initialize = array('title'=>'众智云集','css'=>$css);
        $this->template->set_arr($initialize);

        //$this->template->set('title','124');

        $data['author'] = array('author'=>'xp');
        $data['js'] = $this->config->item('demo','js');
        $this->template->load('user/about',$data);

    }
}
查看user/about试图文件

<?php echo $author['author'];?>
<form>
    <input id="file_upload" name="file_upload" type="file" multiple="true">
</form>

<?php echo output_js($js);?>
<script type="text/javascript">
    $(function() {
		.....;
    });
</script>
查看template.php模版试图文件

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
        <title><?php echo $title; ?></title>
    <?php
        if(!empty($css) && is_array($css)):
            foreach($css as $v):
                echo "\t<link href=\"".base_url()."assets/css/{$v}\" rel=\"stylesheet\" type=\"text/css\" />\n";
            endforeach;
        endif;
    ?>
    </head>
    <body>
        <div id="contents">
            <?php echo $contents; ?>
        </div>
        <div id="footer">
        </div>
    </body>
</html>
通过helper实现一个output_js的方法

/**
 * @name    输出js
 * @access  public
 * @param   Array     $js
 * @return  String
 */
if ( !function_exists( 'output_js' ) )
{
    function output_js($js)
    {
        $output = '';
        if(!empty($js) && is_array($js))
        {
            foreach($js as $v)
            {
                $output .= "<script type=\"text/javascript\" src=\"".base_url()."assets/js/{$v}\"></script>\n\t    ";
            }
        }
        return $output;
    }
}