Codeigniter - 使用单独的模板进行模板化

时间:2013-02-01 10:23:44

标签: php codeigniter templates

我希望有一个带3个模板的codeigniter应用程序。

  1. 用于显示登录视图或错误视图的模板。

  2. 带有标题正文导航的模板

  3. 带有标题正文侧边栏页脚的模板

  4. 现在我可以构建codeigniter应用程序,但是我找不到一个简单的模板系统来完成这个任务。有许多可用的库建议,但它们缺乏实现细节。

    建议和指导将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以使用CodeIgniter模板。 http://williamsconcepts.com/ci/codeigniter/libraries/template/index.html 在这里下载图书馆,您也可以获得完整的文档。

使用此库,您可以使用多个模板,并且可以轻松管理它并分组。

答案 1 :(得分:0)

一旦你了解它就很简单了。

你需要为你上面列出的每件事创建一个视图文件,所以你需要这样的东西(文件夹/文件):

views/page-login.php
views/page-error.php
views/header.php
views/footer.php

然后从您的控制器中加载其中一个页面视图。 在页面视图中,您可以加载所需的元素,因此页眉和页脚之间会显示页面特定的代码。

例如,您的登录页面可能是:

<?php $this->load->view('header'); ?>

    <h1>Login</h1>
    <p>Please login to my website.</p>

<?php $this->load->view('footer'); ?>

答案 2 :(得分:0)

这很简单。

一个简单的例子:

在你的控制器中你可以放

//a test variable
$data["foo"] = 'bar';
$data["page"] = 'a_page'; // this will make sure it loads the views/pages/a_page.php in your template
$this->load->view('templates/login',$data);

views/template/login.php中,您可以放置​​:

<!-- your login template html  -->
<html>
    ...
    <!-- include the view you want inside your login template -->
    <?php $this->load->view('pages/'.$page);?><!-- As you can see it loads /views/pages/a_page.php -->
    <?php echo $foo;?> //This will echo Bar
</html>

或:

<?php $this->load->view('template/login_header');?>
<?php $this->load->view('pages/'.$page);?>
<?php $this->load->view('template/login_footer');?>

views/pages/a_page.php也会知道$foo

这将在模板中加载另一个视图(views / pages / a_page.php)。

这样您就可以创建所需的所有模板,并将视图包含在这些模板中。

提示:处理标题&amp;这种方式的页脚很快就无法管理。而且使用模板库仍然更好。试试Phil sturgeon's library