Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Вопрос по представляниям.
http://forum.kohanaframework.su/viewtopic.php?f=2&t=346
Страница 1 из 1

Автор:  Oracle [ 27 авг 2012, 18:43 ]
Заголовок сообщения:  Вопрос по представляниям.

Недавно начал разбираться с этим фрэймворком, а точнее сейчас есть задача сделать сайт на нем.

Как известно на всех страницах сайта есть заологовок, футер и т.д. - они одинаковы для всех.

Так вот, это нормально с точки зрения MVC - если в шаблоне я просто сделаю

Код:
require_once('header.php');

....

require_once('footer.php');


Или нужно дейстововать по другому?

Автор:  Sergey [ 27 авг 2012, 19:51 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

В главном представлении пишете:
Код:
<?php echo $header; ?>
<?php echo $content; ?>
<?php echo $footer; ?>


Создаете рядом с ним ещё 2 представления:
header.php
footer.php

В главном котролёре пишете:
Код:
      $this->template->header = View::factory('template/header');
      $this->template->content=  '';
      $this->template->footer = View::factory('template/footer');

...
Во всех остальных:
Код:
$this->template->content=  'бла-бла-бла';

Автор:  Oracle [ 27 авг 2012, 20:10 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

Во как, понял большое спасибо.

Автор:  Sergey [ 27 авг 2012, 21:08 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

Хоть так $this->template->content = $content;
Хоть так $this->response->body($content);

Всё зависит от задачи

Автор:  Oracle [ 28 авг 2012, 02:19 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

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

Теоретически это можно, но вот больше интересует вопрос правильности, корретности с точки зрения подхода?

Автор:  Sergey [ 28 авг 2012, 05:41 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

Например так:
Котролёр
Код:
  public function action_list()
  {
    $content = View::factory('admin/users/list')
             ->bind('pagination', $pagination)
             ->bind('users', $users);

    $user = ORM::factory('user');
    $users = NULL;
    $total = $user->count_all();;

      $pagination = Pagination::factory(array('total_items' => $total))
                  ->route_params(array(
                    'directory' => Request::current()->directory(),
                    'controller' => Request::current()->controller(),
                    'action' => Request::current()->action(),
      ));

      $users  = $user
              ->order_by('username', 'ASC')
              ->limit($pagination->items_per_page)
              ->offset($pagination->offset)
              ->find_all();
    }


Представление:
Код:
...
<?php echo $pagination ?>
...

Автор:  Sergey [ 28 авг 2012, 07:39 ]
Заголовок сообщения:  Re: Вопрос по представляниям.

Hello, World
http://kohanaframework.org/3.2/guide/kohana/tutorials/hello-world

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/