Codeigniter - 如何设置多个模板布局和资产(css,js和图像)?

时间:2014-02-21 09:19:28

标签: php codeigniter

我正在为我的web项目使用codeigniter php框架。我的问题是如何为资产(如css,js和images)设置多个模板布局和基本路径?我想设置前端,登录和后端布局。所以我需要设置3个布局。

我的项目结构

enter image description here

这些是我项目的示例代码。

MY_Controller.php

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

class My_Controller extends CI_Controller {
  protected $layout = 'admin';

  protected $stylesheets = array(
    'app.css'
  );
  protected $javascripts = array(
  'app.js'
  );

  protected function render($content) {
    $view_data = array(
      'content' => $content,
      'stylesheets' => $this->get_stylesheets(),
      'javascripts' => $this->get_javascripts()
    );
    $this->load->view($this->layout,$view_data);
  }

  protected function get_stylesheets() {
    return $this->stylesheets;
  }

  protected function get_javascripts() {
    return $this->javascripts;
  }


}

Home.php

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

class Home extends My_Controller {
  public function index() {
    $content = $this->load->view('home/index',null,true);
    $this->render($content);
  }
}

?>

我在互联网上找到了这个链接,但不适合我的项目。 http://williamsconcepts.com/ci/codeigniter/libraries/template/reference.html

2 个答案:

答案 0 :(得分:0)

我用过这样的样子,这个样本可以帮到你

用户控制器(controllers / user.php)

<?php
    class User extends CI_Controller 
    {
        function displayuser()
        {
            $data['users'] = array(1,2,3);
            $data['inc_page'] = 'display'; // views/display.php page
            $this->load->view('user_layout', $data);
        }
    }
?>

显示视图(views / display.php)

<table border="0" cellspacing="0" cellpadding="3">
    <?php
        foreach($users as $userid)
        {
    ?>
    <tr>
        <td><?php echo $userid;?></td>
    </tr>
    <?php
        }
    ?>
</table>

用户布局(views / user_layout.php)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php echo $this->load->view($inc_page); ?>
</body>
</html>

答案 1 :(得分:0)

你可以使用site_url(); 在root中创建一个css文件夹。 假设该文件夹名为“css”。

然后假设我们在该文件夹中创建了名为style.css的文件。 所以我们只需要在site_url中调用它。