Это немного трудно объяснить, что мой вопрос о том, но я собираюсь попробовать :)CodeIgniter - Smarty - Как извлечь шаблоны в мастер-шаблон из одного места в CodeIgniter
В пользовательских проектах, где я использую Smarty, у меня есть файл index.php, где размещены все базовые настройки для обработки URL-адресов и т. Д.
Например:
// Get information for the "about us" page
if($_GET['qs']=='about_us'){
$data['text'] = 'Lorem Ipsum...';
$data['other_stuff'] = 'dolor sit amet';
// Required template file
$data['tpl_Name'] = 'about.tpl';
}
В нижней части этого файла у меня есть немного кода, который выбирает правильный конец шаблона отправляет его в шаблон master_site.
Например:
if (isset($data['tpl_Name'])){
$this->smarty->assign('content', $this->smarty->fetch($data['tpl_Name']));
$this->smarty->view('master_site.tpl');
}
В master_site.tpl я могу получить доступ к about.tpl с помощью {$ содержание} Это {$ содержание} переменная будет меняться для каждой страницы, так как index.php является страницу, на которую будут отправляться все данные, запросив страницу в моем приложении.
Вопрос: Есть ли файл в CodeIgniter, который доступен на каждой странице, чтобы я мог создать что-то вроде выше? Сейчас я должен использовать этот фрагмент кода (второй пример) в каждой функции моего контроллера, и это кажется неэффективным.
Конечно, мне нужно установить $ data ['tpl_Name'] в каждой функции, но это не проблема.
Спасибо.
Рассматривали ли вы расширение основного контроллера? –
То, как я это сделаю, переводит всю информацию о странице в файл CSV (т. Е. Sitemap.csv). Затем загрузите файл csv в функцию конструктора в виде массива.Затем вы можете маршрутизировать все запросы страниц к одному методу, динамически устанавливать шаблоны на основе uri (как вы это уже знаете), но также запрашивать информацию о странице из массива sitemap.csv таким же образом. – Jeemusu