Модули

3 views
Skip to first unread message

Panandy

unread,
Jun 14, 2008, 3:34:59 AM6/14/08
to СodeIgniter-ru
Такой вопрос - есть сайт, и понятно, что на нем есть блоки которые
есть на каждой странице(меню,поиск например). И выходит что бы это
реализовать прийдеться в каждом контроллере писать одинаковый код. В
самых шаблонах реализовывать тоже не хочеться..
Лично я на данный момент делаю так(на примере меню) :
1. Создаем модель под названием menu.
2. Пишем в ней код реализации самого меню в методе show_menu.
3. Добавляем нашу модель в список автозагрузки(application/config/
autoload.php)
4. В нужном месте нашего шаблона пишем : <?=$this->menu->show_menu()?>
Вот и все..
Преимущество модели в том, что в ней мы имеем такие возможности как и
в контроллере, ведь с хелпера мы в базу не подконнектимся, разве что
через родные функции.

Sergey Silaev

unread,
Jun 16, 2008, 4:16:26 AM6/16/08
to codeign...@googlegroups.com
Привет,

Я например в данной ситуации делаю немного по-другому,
делаю единую шапку и нижнюю часть сайта и в зависимости от страницы добавляю туда разные переменные...

контроллер 1 (Home):

class Home extends Controller {
    function index()
    {
        $key = array(
        'title' => 'Home :: site.name',
        'some' => 'meby some file'
        'some2' => 'meby some script'
        'head_bg' => 'home' // применение стилей к верхнему диву на главное странице (bg, text color and etc)
        );
        $this->load->view('def/index', $key); //.подгружаю основную часть сайта (default)
        $this->load->view('home');
        $this->load->view('def/footer'); //подгружаю нижнюю часть сайта с копирайтами и дублёром меню (default)

А на странице def/index.php и def/footer.php одинаковым запросом подставляю меню.

Прмер другой страницы:

контроллер 2 (Music):
class Music extends Controller {
    function index()
    {
        $key = array(
        'title' => 'Music :: site.name',
        'some' => 'meby some file'
        'some2' => 'meby some script'
        'head_bg' =>
        );
        $this->load->view('def/index', $key
        $this->load->view('music');
        $this->load->view('def/footer');

Ну и естественно в зависимости от страницы добавляю доп функции и библиотеки
--------------------------------------------------------------------------------------------------------------------------------------------------------

2008/6/14 Panandy <andr...@gmail.com>:



--
Br,
Sergey.

johnluxor

unread,
Jun 16, 2008, 5:51:36 AM6/16/08
to СodeIgniter-ru
Привет,
Посмотри библеотеку HMVC в WIKI codeigniter.com
или на форуме http://www.code-igniter.ru/forum
Reply all
Reply to author
Forward
0 new messages