Если вы используете codeigniter, просто используйте для этого разные представления ..
class Content extends CI_Controller {
function index()
{
$data['title'] = 'This is page one';
$this->load->view('header', $data);
$this->load->view('page_one');
$this->load->view('footer');
}
function page_two()
{
$data['title'] = 'This is page two';
$this->load->view('header', $data);
$this->load->view('page_two');
$this->load->view('footer');
}
//and so on..
}
В header.php вы просто выводите $ title; и вы увидите, что все по-другому, если вы находитесь на первой или второй странице. В любом случае, возможно, вам следует использовать контроллер для каждой страницы, а не метод, как я делал в этом примере, я просто демонстрировал возможность без написания слишком большого количества кода.
Кроме того, вы можете загружать представления внутри представлений, и последние наследуют данные, передаваемые в основное представление. Используя пример выше:
$data['page']['title'] = 'Page one';
$data['foot']['whatever'] = 'Whatever you want';
$this->load->view('page_one', $data);
просмотр page_one.php
<?php $this->load->view('header', $page); ?>
<!-- html and php stuff for this page only -->
<?php $this->load->view('footer', $foot); ?>
В header.php:
<title><?php echo $title; ?></title>
В footer.php:
<p><?php echo $whatever; ?></p>
Header.php и Footer.php - это отдельные «блоки», всего 2 файла, которые вы можете загрузить, где хотите. Это почти так же, как include (), если вы посмотрите на него хорошо. Я знаю, что на самом деле это не шаблонизатор, но иногда шаблонизатор "слишком много" и полезен, если другие непрограммисты портят макеты. Если вы хотели просто разделить части страницы, разбить каждую страницу на блоки, которые вы можете собрать при необходимости, будет проще, чем реализовать Smarty или другие механизмы шаблонов.