Я не знаю, поможет ли это вам, но именно так я делал свою систему шаблонов дольше всего, прежде чем перейти к более сложному методу.
Top Head : views / inc / top_head.php
<html>
<head>
<!-- all of your imports you want across all pages -->
Нижняя головка : views / inc / 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>
Нижний колонтитул : views / inc / 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
вместе с ней.