Вот пара простых подходов, с которых можно начать:
Создание шаблона класса:
class Template {
function load($view)
{
$CI = &get_instance();
$CI->load->view('header');
$CI->load->view($view);
$CI->load->view('footer');
}
}
Использование в контроллере:
$this->template->load('my_view');
Использовать файл основного вида:
<!-- views/master.php -->
<html>
<header>Your header</header>
<?php $this->load->view($view, $data); ?>
<footer>Your footer</footer>
</html>
В контроллере:
$this->load->view('master', array(
'view' => 'my-view-file',
'data' => $some_data
));
Я предпочитаю подход класса Template
, так как легко добавлять методы для добавления областей шаблонов, загрузки файлов JavaScript и всего, что вам нужно. Я также предпочитаю автоматически выбирать файл представления в зависимости от вызываемого метода. Примерно так:
if ( ! isset($view_file)) {
$view_file = $CI->router->fetch_class().'/'.$CI->router->fetch_method();
}
Это приведет к загрузке views/users/index.php
, если контроллер Users
и метод index
.