Если я правильно понимаю, вы хотите загрузить представление между верхним и нижним колонтитулом?
У меня была та же проблема, и в конце концов мне пришла идея использовать библиотеку для рендеринга.
Я создал файл libraries/render.php
с чем-то вроде:
class render
{
private $CI;
function __construct ()
{
parent::__construct();
$this->CI &= get_instance();
}
function view ($activeView, $params, $title)
{
$this->CI->load->view('template/header.php', array('title'=>$title));
$this->CI->load->view($activeView, $params);
$this->CI->load->view('template/footer.php', array('navbar'=>$this->RenderFooterNavBar()));
}
private function RenderFooterNavBar ()
{
$bits = array('Home','About Us', 'Contact'); //You could get these from anywhere
return $this->CI->load->view('template/modules/footernavbar', array('bits'=>$bits), TRUE); //returns the rendered output of that view
}
}
С такими файлами, как:
template/header.php
:
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
template/footer.php
:
</body>
</html>
template/modules/footernavbar
<ul>
<?php
foreach ($bits as $item)
echo "<li>$item</li>";
?>
</ul>
Затем использовать:
function index ()
{
$this->render->view('post', $data, 'Blog Post');
}
Обратите внимание, это должно работать с любой системой шаблонов, просто настройте load->view
с тем, что использует ваша система шаблонов. Это также отличный способ визуализации данных, которые необходимы для верхнего или нижнего колонтитула, если вы хотите извлечь данные из базы данных, просто отразите то, что я сделал с функцией RenderFooterNavBar ()
.
Надеюсь, что это поможет,
Max