Я не знаю, поможет ли это вам, но именно так я сделал свою систему шаблонов в течение длительного времени, прежде чем перейти к более продвинутому методу.
Верхняя головка: Вид/вкл/top_head.php
<html>
<head>
<!-- all of your imports you want across all pages -->
Bottom Глава: Вид/вкл/bottom_head.php
Я делаю это так, чтобы я мог разделить и добавьте пользовательские вещи в Javascript и, возможно, импортируйте специальные случаи.
</head>
<body>
<div id="main_container">
<div id="navigation">
<?php
// DO YOUR NAVIGATION MAGIC HERE
if($is_logged_in) :
// BAM MAGIC DONE
else :
// No magic show here
endif;
?>
</div>
Footer: Вид/вкл/footer.php
Это где вы поставите в футере вещи и т.д ....
</div>
</body>
Сейчас мы находимся в точке что мы должны фактически заполнить контент в шаблоне
Страница индекса:/views/some_controller/index .php
<?php $this->load->view('inc/top_head.php'); ?>
<?php $this->load->view('inc/bottom_head.php;) ?>
<h1>Hello</h1>
<p>Some filler content and stuff I guess would go here...Of course</p>
<?php $this->load->view('inc/footer.php'); ?>
Итак, у нас есть быстрая система шаблонов. Теперь, чтобы показать вам, что я сделал для контроллера
<?php
class Some_Controller extends Controller {
public $page_data;
public function __construct() {
parent::__construct(); // Load parent constructor
// This is page data that we obviously don't want to keep retyping
$this->page_data = array(
'is_logged_in' => FALSE, // Obviously do some test here
'page_title' => 'Some Title'
);
}
public function index() {
$this->_load('some_controller/index');
}
/** Should think of a better name but meh */
private function _load($view) {
$this->load->view($view, $this->page_data);
}
}
Надеюсь, это помогло так или иначе. Имейте в виду, что это быстро написать. Если бы я действительно хотел, чтобы это входило в производство, я бы переместил функцию _load
в родительский класс и расширил ее. Я также, вероятно, переместил бы переменную page_data
вместе с ней.
или помощник, поскольку плагины устарели;) – AlienWebguy