CodeIgniter:如何创建通用布局


CodeIgniter: how to create common layout

我想知道如何为CodeIgniter框架创建一个公共布局以及如何在控制器中访问它。

我创建了一些布局文件,但是我不知道如何加载文件。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <title>Starter Template for Bootstrap</title>
        <base href="<?php //echo base_url();   ?>" />
        <!-- Bootstrap core CSS -->
        <link href="<?php echo base_url('assets/bootstrap3.0.1/css/bootstrap.min.css'); ?>" rel="stylesheet" >
        <!-- Custom styles for this template -->
        <!--    <link href="starter-template.css" rel="stylesheet">-->
        <!-- Just for debugging purposes. Don't actually copy this line! -->
        <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
          <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>
    <body>
        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="#"> Blog </a>
                </div>
                <div class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="<?php echo base_url(); ?>">Home</a></li>
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown"> Admin <span class="caret"></span></a>
                            <ul class="dropdown-menu">
                                <li><a href="<?php echo base_url('article/add'); ?>">Add Article</a></li>
                            </ul>
                        </li>

                    </ul>
                </div><!--/.nav-collapse -->
            </div>
        </div>

                 <div class="container" style="margin-top: 80px;">
            <!--container-->
            <?php  echo $content; ?>
        </div>  


        <!-- Bootstrap core JavaScript
        ================================================== -->
        <!-- Placed at the end of the document so the pages load faster -->
        <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
        <script src="<?php echo base_url('assets/bootstrap3.0.1/js/bootstrap.min.js'); ?>"></script>
    </body>

请帮我加载另一个视图文件到这个布局文件

首先创建一个自定义加载器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  class MY_Loader extends CI_Loader{
      function __construct(){
        parent::__construct();
      }
      function page($page, $vars=array(), $return=FALSE){
         $vars['page'] = $page;
         $ci = &get_instance();
         $ci->load->view('layout',$vars,$return);
      }
  }

保存到application/core/MY_Loader.php

现在在控制器加载页面

       $this->load->page('page_name');

 <div class="container">
    <?php $this->load->view($page) ?>
 </div>