Вот наконец нашел действительно гибкое решение для реализации вида в Codeigniter - это Ocular. Страница проекта на google code.
Установка.
1. Качаем архив.
2. Распаковываем, каталог public кладем в корень нашего сервера (там будут лежать картинки, css и javascript нашего сайта), содежимое каталога application кладем прямо в одноименный каталог нашей инсталляции codeigniter.
3. Настравиваем ocular, для этого редактируем
/application/config/ocular.php,
чего я собственно не делал.
4. Добавляем в автозагрузку codeigniter
/application/config/autoload.php
следующие строки
$autoload['libraries'] = array('Ocular');
$autoload['helper'] = array('ocular', 'url');
Принцип работы.
Как говорит автор идея взята из RubyOnRails.
1. Теперь для вывода шаблона в контроллере у нас есть один метод :
$this->ocular->render();
2. В основном шаблоне ( чаще всего это layout ) у нас теперь
$this->ocular->yield();
здесь будет вставляться шаблон, специфичный для того или иного контроллера.
3. Шаблоны теперь лежат не просто в каталоге views, раскладываются по папкам, имена которых совпадают с именами контроллеров, например мы имеем что-то вроде этого :
www.my-site.com/auth/register
понятно, что auth - это контроллер, а register - это метод в контроллере, для вида это будет выглядеть так :
/application
/views
/auth
register.php ,
а на тот случай если мы хотим использовать для контроллера шаблон, отличный от application.php, того что идет по умолчанию (layout), мы можем указать в методе контроллера
$this->ocular->render("auth");
а файл шаблона расположить таким образом :
/application/
/views
/templates
auth.php
Продолжение следует ...
2 коммент.:
Отличное решение, сам использую RoR и php(codeigniter)! Естественно в codeigniter такого нет, теперь есть=))
Добро пожаловать на мой новый блог
http://magicseoscripts.blogspot.com/
Отправить комментарий