@wiggydev
Работаю с PHP

Как сделать общий шаблон в CodeIgniter?

Можно ли реализовать так, чтобы файл header and footer были общими для всех вьюшек?
Вариант в каждом контроллере выводить их не интересует.
  • Вопрос задан
  • 1190 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Zex0n
Прямо в шаблоне пишешь:
<?php include ("header.php"); ?>
<br><br><br><br><br><br><br>
<?php include ("footer.php"); ?>


header.php и footer.php лежат там же в папке шаблонов
Ответ написан
Комментировать
@krypt3r
В одном проекте делал так. Все методы контроллеров (кроме тех, что связаны с AJAX) заканчивались примерно таким кодом
$this->view_data = array (
    'page_title' => 'Some title', // текст, идущий в <h1>
    'page_content' => 'view_dir/view_name', // путь к нужной вьюхе относительно каталога views
    // куча других переменных, идущих во вьюху
);
$this->load->view ('page', $this->view_data);

И код файла page.php
<?php
$page = array (
    'layout/header', // путь к общему хэдеру
    $page_content,   // контент
    'layout/footer'  // путь к общему футеру
);

foreach ($page as $item) {
    $this->load->view ($item);
}
  
/* End of file page.php */
/* Location: ./application/views/page.php */
Ответ написан
Комментировать
Можете написать специальную модель или библиотеку, через которую и производить вывод.
Например, я для вывода сделал библиотеку Theme. В ней 3 основных метода: один добавляет в массив пути к различным view в области head, другой - в body, третий осуществляет вывод: header.php, то, что мы добавили в массив head, head_body_seporator.php, то, что мы добавили к массиву body, footer.php.
Здесь можете найти код самой библиотеки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы