如何处理代码标记模板?
2022-08-30 15:55:09
我对MVC相当陌生,最近我发现了CodeIgniter。我仍然每天都在学习,但一个问题是它的模板引擎。在CodeIgniter中创建模板的最佳方法是什么?
CakePHP自带模板库,CodeIgniter中是否有类似的功能?
我对MVC相当陌生,最近我发现了CodeIgniter。我仍然每天都在学习,但一个问题是它的模板引擎。在CodeIgniter中创建模板的最佳方法是什么?
CakePHP自带模板库,CodeIgniter中是否有类似的功能?
与其他框架不同,CodeIgniter没有全局模板系统。每个控制器独立于系统控制自己的输出,除非另有说明,否则视图均为FIFO。
例如,如果我们有一个全局标头:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html>
<head>
<title><?=$title?></title>
<!-- Javascript -->
<?=$javascript ?>
<!-- Stylesheets -->
<?=$css ?>
</head>
<body>
<div id="header">
<!-- Logos, menus, etc... -->
</div>
<div id="content">
和全局页脚:
</div>
<div id="footer">
<!-- Copyright, sitemap, links, etc... -->
</div>
</body>
</html>
那么我们的控制器必须看起来像
<?php
class Welcome extends Controller {
function index() {
$data['title'] = 'My title';
// Javascript, CSS, etc...
$this->load->view('header', $data);
$data = array();
// Content view data
$this->load->view('my_content_view', $data);
$data = array();
// Copyright, sitemap, links, etc...
$this->load->view('footer', $data);
}
}
还有其他组合,但通过用户库存在更好的解决方案,例如:
请参阅下面的评论
我已经尝试了几种方法来做codeigniter模板,我留下来的方式是最快和最简单的,如下所示。
在控制器中:
//Charge the view inside array
$data['body'] = $this->load->view('pages/contact', '', true);
//charge the view "contact" in the other view template
$this->load->view('template', $data);
在视图样板中.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Template codeigniter</title>
</head>
<body>
<div>
<?=$body?>
</div>
<div class="clear"></div>
<div>Footer</div>
</div>
</body>
</html>
$body
是视图联系人。