Как загрузить представление в Codeigniter, а не в папку представлений - PullRequest
2 голосов
/ 31 марта 2011

Я хочу сделать разные темы для моего приложения. я сохранил все папки тем в http :: //example.com/thems /, .. я хочу загрузить представления из этой папки тем, чтобы создать собственный шаблон.

Ответы [ 4 ]

2 голосов
/ 01 апреля 2011

Просто расширьте базовый класс CI_Loader. Создайте новый файл в application / core / MY_Loader.php и расширьте метод __construct

class My_Loader extends CI_Loader
{
   function __construct()
   {
      //Change this property to match your new path
      $this->_ci_view_path = APPPATH.'views/';
      $this->_ci_ob_level  = ob_get_level();
      $this->_ci_library_paths = array(APPPATH, BASEPATH);
      $this->_ci_helper_paths = array(APPPATH, BASEPATH);
      $this->_ci_model_paths = array(APPPATH);
      log_message('debug', "Loader Class Initialized");
   }
}

Мне очень интересно, сработает ли этот маленький хак:)

1 голос
/ 31 марта 2011

Сохранить текущую тему в переменной сеанса $ theme;

, затем при загрузке представления включить переменную сеанса в путь,

$this->load->view('themes/'.$theme.'/<page>');

0 голосов
/ 16 июня 2011

Я сделал очень простой переключатель тем на основе существующей библиотеки.Хотя файлы все еще находятся в папке представлений, но внутри папки представлений есть подпапки тем.

http://keithics.com/blog/php-programming/a-very-simple-theme-switcher-for-codeigniter

0 голосов
/ 31 марта 2011

Фил Стерджон и некоторые другие написали библиотеки шаблонов, которые поддерживают темы более или менее из коробки.Это позволяет сохранить структуру MVC и является достаточно гибким.

Больше на Документах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...