У меня есть макет, ничего особенного, три колонки, просто для изучения CakePHP. В документации я ничего не нашел об этом деле.
У меня есть некоторая статистика на боковых панелях, так что я отправляю их в файл макета (default.ctp), потому что они отображаются на каждой странице.
Я строю (благодаря одному пользователю здесь) компонент:
class SidebarComponent extends object {
function startup(&$controller) {
$this->controller = $controller; // Stores reference Controller in the component
}
function count_articles() {
$articles = ClassRegistry::init('Articles')->count_articles();
$this->controller->set(compact('articles'));
}
}
Все работает отлично. У меня есть вопрос о моей технике. Мне нужно было загрузить компонентный метод в контроллер, поставив:
$this->Sidebar->count_articles();
Так что я решил сделать его немного короче, потому что мне придется вставлять его в каждый контроллер. Итак, я создал функцию нового компонента:
function sidebars($userid) {
return array(
$this->top_articles(),
$this->random_article()
);
}
И я инициализирую его в контроллере следующим образом:
$this->Sidebar->sidebars();
Все работает правильно, мне нужен только совет / обратная связь, если это хороший способ сделать это:)
Спасибо за ваше время.