Я видел два хороших способа сделать это:
1.Добавьте его к классу MY_Controller
, который расширяют все ваши соответствующие контроллеры:
<?php
class MY_Controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->vars(array(
'foo1' => 'bar1',
'foo2' => 'bar2'
));
// Now, all your views have $foo1 and $foo2
}
}
2.Добавьте его в класс MY_Output
, что имеет смысл, поскольку полная HTML-страница отображается не так, как, скажем, частичная AHAH или ответ AJAX:
<?php
class MY_Output extends CI_Output {
public function _display($output = '')
{
if ($output == '')
{
$output = $this->final_output;
}
$CI =& get_instance();
// Run checks here (on the Input class, likely) to see if the
// response expects application/json, text/html, etc.
$output = $CI->load->view('includes/header', array(
'foo1' => 'bar1',
'foo2' => 'bar2'
), TRUE) . $output;
$output .= $CI->load->view('includes/footer', NULL, TRUE);
parent::_display($output);
}
}
Этот способ также имеет преимуществоиз-за того, что нет необходимости включать верхний / нижний колонтитул в каждое из ваших представлений, и легче изменить направление позже.
Ура!