Kohana Как занести дубли кода в бек контроллер?

Bodyanuk

Новичок
Всем привет! Начал отлаживать код...
На всех страницах сайта отображается информация, допустим "Новости". Писать во всех контроллерах
PHP:
 $news = ORM::factory('news')->where('language','=',I18n::lang())->find_all();
а потом биндить к view - глупо!

Изначально я наследую все контроллеры с бек контроллера, где в before() подключенны части сайта
PHP:
$this->template->menu = View::factory('include/menu');
$this->template->sidebar = View::factory('include/sidebar');
Как мне присоединить $news к $this->template->sidebar = View::factory('include/sidebar') в before() ?
 

Bodyanuk

Новичок
В бекконтроллере пробовал прописать
PHP:
$news = ORM::factory('news')->where('language','=',I18n::lang())->find_all();
$this->template->sidebar = View::factory('include/sidebar')->set('news', $news);
Но не находит переменную.
 

Adelf

Administrator
Команда форума
PHP:
$this->template->menu = View::factory('include/menu');
$this->template->sidebar = View::factory('include/sidebar');
$this->template->sidebar->set('news', ORM::factory('news')->where('language','=',I18n::lang())->find_all(););
 

Adelf

Administrator
Команда форума
ну возможно у тебя этот before не вызывается по какойто причине..перекрыт выше и нет вызова parent::before() например
 

Bodyanuk

Новичок
Я думал что он по умолчанию вызывается перед загрузкой контроллера...

У меня вызывалось в контрукторе parent::before(), прописал в before() и всё заработало!
PHP:
    public function before() {
        parent::before();
    }
PHP:
            $this->template->sidebar = View::factory('include/sidebar');
            $this->template->sidebar
                                    ->set('news', ORM::factory('news')->where('language','=',I18n::lang())->find_all())
                                    ->set('games', ORM::factory('game')->limit('10')->where('winner_id', '!=', '0')->order_by('time', 'DESC')->find_all());
 

Adelf

Administrator
Команда форума
PHP:
     public function before() {
        parent::before();
    }
Эта запись бесполезна. Не могло из-за этого заработать.

Аа. понятно. Из конструктора ты убрал. Теперь все встало на места.
 
Сверху