Существует загрузка под названием CodeIgniter Library, которая делает все это очень простым. Как только вы научитесь его реализовывать, кодирование станет очень простым. Это также позволяет вам изменять каждую страницу или контроллер, чтобы иметь разные шаблоны (макеты).
Используя систему, о которой я упоминал выше, вы можете сделать следующее:
<?php
function index() {
$data['some_variable'] = 'some data';
$this->template->write_view('content', 'page/home', $data);
$this->template->render();
}
?>
В любом месте вы также можете изменить шаблон, который хотите использовать:
<?php
$this->template->set_template('login');
?>
Все эти шаблоны имеют имена, которые хранятся в файле конфигурации. Вы можете иметь столько шаблонов, сколько пожелаете.
Сам файл шаблона будет выглядеть примерно так:
<html>
.... etc. all other html elements
<body>
header html goes here
<?=$content?>
footer html goes here
</body>
</html>
Вы даже можете настроить разделы, чтобы иметь возможность писать свой контент. Я обычно не делаю этого, потому что это включает в себя много просмотров, но если вам нужен полный контроль, вы все равно можете это сделать:
<?php
function index() {
$data['header'] = 'header info';
$data['content'] = 'content info';
$data['sidebar'] = 'sidebar info';
$data['footer'] = 'footer info';
$this->template->write_view('content', 'page/home', $data);
$this->template->write_view('header', 'modules/header');
$this->template->write_view('sidebar', 'modules/sidebar');
$this->template->write_view('footer', 'modules/footer');
$this->template->render();
}
?>
Код HTML-шаблона:
<html>
.... etc. all other html elements
<body>
<div id="header">
<?=$header?>
</div>
<div id="content">
<div id="left">
<?=$content?>
</div>
<div id="sidebar">
<?=$sidebar?>
</div>
</div>
<div id="footer">
<?=$footer?>
</div>
</body>
</html>
Таким образом, вам нужно беспокоиться только о включении одного файла во все ваши функции контроллера. Если вы не используете PHP 5 (вы должны переключиться), то вместо использования <?=$content?> вы захотите использовать <?php echo $content; ?>.
person
cointilt
schedule
23.07.2009