Как передать данные в layout?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Как передать данные в layout?

Сообщение Одиночка Айс »

Знаю, вопрос тупой донельзя :) Но уж очень надо для отрисовывания пунктов подменю. Через контроллер, ясен пень, не канает. Можно конечно попробовать через Yii::app()->params, но не уверен что получится.

К разработчикам: людыны добры, вшейте такую возможность во фреймворк при случае :)
Ни любви, ни тоски, ни жалости...
Archmage
Сообщения: 78
Зарегистрирован: 2010.03.03, 03:07
Откуда: Иркутск

Re: Как передать данные в layout?

Сообщение Archmage »

Можно забить на MVC и тупо подгружать данные из базы в самом layout :)
Animum rege, qui nisi paret, imperat. (Управляй своим настроением, ибо оно, если не повинуется, то повеливает)
Bartholomew
Сообщения: 110
Зарегистрирован: 2010.02.05, 01:58
Откуда: Нижний Новгород
Контактная информация:

Re: Как передать данные в layout?

Сообщение Bartholomew »

Можно написать функцию, добавить её в базовый контроллер и дергать из лэйаута.
Типа:

Код: Выделить всё

class FrontController extends CController
{
    public function getMenuData($params) {...}
}
 
layout:

Код: Выделить всё

<div class="menu"><?php $this->widget('zii.widgets.CMenu', $this->getMenuData()); ?></div>
AbS_
Сообщения: 207
Зарегистрирован: 2010.03.27, 14:02

Re: Как передать данные в layout?

Сообщение AbS_ »

Одиночка Айс писал(а):Знаю, вопрос тупой донельзя :) Но уж очень надо для отрисовывания пунктов подменю. Через контроллер, ясен пень, не канает. Можно конечно попробовать через Yii::app()->params, но не уверен что получится.

К разработчикам: людыны добры, вшейте такую возможность во фреймворк при случае :)
А мне вот не ясен пень почему из контроллера не канает... Помоему все канаен и еще как.
Dreammaker
Сообщения: 139
Зарегистрирован: 2009.09.02, 16:21
Откуда: Черкассы, Украина

Re: Как передать данные в layout?

Сообщение Dreammaker »

AbS_, я правильно понял, то ТС хочет один раз написать конфиг для меню и забыть, а не дёргать его каждый раз в контроллере. Можно, конечно, поиграться с наследованием, но это уже, имхо, оверхед.
Аватара пользователя
yii
Сообщения: 122
Зарегистрирован: 2010.04.29, 10:40

Re: Как передать данные в layout?

Сообщение yii »

А сделать меню в виде виджета и подключить виджет в лайоут не пробовали?
AbS_
Сообщения: 207
Зарегистрирован: 2010.03.27, 14:02

Re: Как передать данные в layout?

Сообщение AbS_ »

Dreammaker писал(а):AbS_, я правильно понял, то ТС хочет один раз написать конфиг для меню и забыть, а не дёргать его каждый раз в контроллере. Можно, конечно, поиграться с наследованием, но это уже, имхо, оверхед.
А что в этом такого не типичного? По моему обычная практика расширения функционала. Без костылей и наворотов. Притом по дефолту Yii уже наследует контроллеры от класс Controller который расширяет CController. Там и можно сделать это.
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Re: Как передать данные в layout?

Сообщение Одиночка Айс »

yii писал(а):А сделать меню в виде виджета и подключить виджет в лайоут не пробовали?
Мысль, конечно же, хорошая, но:

1. Никогда не делал виджеты.
2. Не уверен, что сработает.

Через контроллер даже рыпаться не стоит, потому что мне нужно каким-то образом передать данные между частями layout'a. А вообще суть такова: кликаем на верхнее меню, чуть ниже загружаются подменю родительского пункта меню, но в другом куске layout'a.
Ни любви, ни тоски, ни жалости...
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как передать данные в layout?

Сообщение slavcodev »

Одиночка Айс писал(а):
yii писал(а):Мысль, конечно же, хорошая, но:

1. Никогда не делал виджеты.
2. Не уверен, что сработает.
Прекрасно работает, никогда не поздно начать использовать фреймворк по полной!
Жду Yii 3!
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как передать данные в layout?

Сообщение slavcodev »

В коробке уже лежит виджет CMenu, посмотри как его используют в лэйауте демо-блога.
Жду Yii 3!
Ответить