Правильный способ сделать это - использовать контроллер для управления вашими представлениями.Контроллер по умолчанию указан в файле «system / app / config / rout.php».Параметры default_controller сообщают приложению, какой контроллер вы хотите использовать по умолчанию.
Как сказал Карл, после того, как вы разместили всю строку кодов, необходимую для загрузки необходимых представлений, вы можете указать default_controller на этот контроллер.Обратите внимание, что индекс функции является функцией по умолчанию, используемой контроллером.
После того, как вы продолжите, вам может понадобиться создать пользовательский контроллер, так как все ваши страницы будут нуждаться в этом верхнем и нижнем колонтитулах.Я сделал это путем добавления файла в «system / app / core / MY_Controller.php» (код воспламенителя 2.X, не то же самое для другой версии), и вместо этого я расширяю этот контроллер.Код в этом контроллере выглядит следующим образом:
<?php
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
}
public function loadHeader($data = Array(),$customHeader = 'parts/header'){
$this->load->view($customHeader,$data);
}
public function loadFooter($data = Array(),$customFooter = 'parts/footer'){
$this->load->view($customFooter,$data);
}
public function loadSidebar($data = Array(),$customSidebar = 'parts/sidebar'){
$this->load->view($customSidebar,$data);
}
}
Затем из моего контроллера я делаю что-то вроде этого:
<?php
class Articles extends MY_Controller {
public function __construct() {
parent::__construct();
}
/**
* Controller for all news.
* will be used as home controller.
*/
public function index() {
//Needed helper
//End helper
$data = Array();
//Fill the array for the header part
$data["header"] = Array();
$data["header"]["title"] = "Articles shelf";
$data["header"]["logo"] = "David Francoeur";
$data["header"]["slogan"] = "just a blog about me and knowledge...";
$this->loadHeader($data["header"]);// I would add a second parameter for a custom header.
//Fill the array for the rest of the pages
$data["main"] = Array();
$this->load->model('Article');
$data["main"]["query"] = $this->Article->get_last_ten_entries();
$this->load->view('article', $data["main"]);
//Fill the array for the right sidebar
$data["sidebar"] = Array();
$this->loadSidebar($data["sidebar"]);
//Fill the array for data concerning the footer
$data["footer"] = Array();
$this->loadFooter($data["footer"]);//I would add a second parameter for a custom footer.
}
}
Вы также можете использовать одну функцию в вашем пользовательском контроллере, если выне нужен пользовательский заголовок или нижний колонтитул, например:
<?php
класс MY_Controller расширяет CI_Controller {
function __construct() {
parent::__construct();
}
public function loadView($data = Array(),$view){
$this->load->view("header_final");
$this->load->view($view,$data);
$this->load->view("footer-final");
}
}
Это зависит от вас!