Мое решение было просто создать класс отображения, который обрабатывает эти вещи. Упрощенная версия:
class Display
{
public function load_pages($name, $data = array()) {
$CI =& get_instance();
// Top and header templates
$CI->load->view('header.php', $data);
// Default to loading the one template file
$CI->load->view($name, $data);
// Footer template
$CI->load->view('footer.php');
}
}
У меня есть более причудливые вещи, такие как установка значений по умолчанию (заголовок страницы, мета-теги), загрузка js / css и т. Д. Это работает так же, как ярлык на необходимость копирования / вставки обычных шаблонов, которые я загружаю, но также позволяет мне определить пользовательские настройки шаблона, если мне нужно, в отличие от того, если они у вас есть, это автоматически расширяет класс вашего контроллера.
У меня не было необходимости, но вы также можете указать различные функции в этом классе для загрузки различных разделов сайта, такие как load_admin_pages()
или некоторые другие. В моем случае я справляюсь с этим, просто устанавливая параметр префикса, который добавляется к пути к файлу, и он получает то, что мне нужно для моего текущего проекта.