Сквозные блоки

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Moonlight
Сообщения: 22
Зарегистрирован: 2011.12.18, 23:06

Сквозные блоки

Сообщение Moonlight »

Всем привет.

Вот у меня на сайте около 5 контроллеров (новости, статьи, спец. предложения...).
У новостей и статей есть по одному сквозному блоку. Сквозной блок новостей должен отображаться на всех страницах сайта, а сквозной блок статей на всех страницах кроме главной и статей.

Вот я передаю сквозные блоки так, в файле components/Controller.php делаю выборку для всех сквозных блоков, рендерю их в своих представлениях и вызываю в views/layouts/main.php.

Но при такой схеме выпадает модель. Да и файл components/Controller.php засоряется.

Может кто подскажет как такие вещи правильно делаются в YII? То есть задача - передавать сквозные блоки и выводить их на нужных страницах.
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Сквозные блоки

Сообщение lancecoder »

виджет?
Moonlight
Сообщения: 22
Зарегистрирован: 2011.12.18, 23:06

Re: Сквозные блоки

Сообщение Moonlight »

Что виджет?

У меня для этого не используется виджет. А о каком виджете речь?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Сквозные блоки

Сообщение anton44eg »

выводите эти блоки с помощью виджетов
Moonlight
Сообщения: 22
Зарегистрирован: 2011.12.18, 23:06

Re: Сквозные блоки

Сообщение Moonlight »

Ладно. А у этих виджетов есть название?
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Сквозные блоки

Сообщение lancecoder »

да - MySuperWidget
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Сквозные блоки

Сообщение rak »

Moonlight писал(а):Ладно. А у этих виджетов есть название?
Смысл в том, что блоки новости и статьи вынести в виджеты типа
LastNewsWidget
LastArticlesWidget
А потом уже эти виджеты подключать там, где нужно.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Сквозные блоки

Сообщение flashimage »

Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Сквозные блоки

Сообщение rak »

flashimage писал(а):http://www.yiiframework.com/doc/guide/1 ... ion.create Пункт 3
там же названия разделов с якорями, так что можно сразу дать на пункт 3 ссылку :)
http://www.yiiframework.com/doc/guide/1 ... eate#sec-4
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Re: Сквозные блоки

Сообщение andreyrud »

А не проще ли сделать нужные блоки прямо в лейаутах? Без всяких виджетов.
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Сквозные блоки

Сообщение lancecoder »

ага, только верстальщику потом объясните что бы он там ниче не трогал и как хотел так и разбирался
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Сквозные блоки

Сообщение rak »

andreyrud писал(а):А не проще ли сделать нужные блоки прямо в лейаутах? Без всяких виджетов.
а потом во всей этой каше разбираться?
сомнительное удовольствие
Moonlight
Сообщения: 22
Зарегистрирован: 2011.12.18, 23:06

Re: Сквозные блоки

Сообщение Moonlight »

Ага, с виджетами понял. Но они ведь как правило 1 раз пишутся и больше их трогать не надо, всё настраивается с помощью их агрументов. А вёрстка блока последних новостей меняется из сайта в сайт. То есть на одном сайте мой виджет генерирует один html-код, а на другом я уже иду в мой LastNewsWidget и переписываю html-структуру.

А объясните мне просто в теории ситуацию с лейаутами. Я через них тоже пытался сделать. Вот если контроллер News использует '//layouts/column2', то из этого контроллера нужно передавать в column2 массив с последними новостями для сквозного блока. Я к тому, что это будет отображаться только в контроллере News, а не на всех страницах. Как можно передать в column2 значение так, чтобы блок был виден везде?
Vladimir P
Сообщения: 60
Зарегистрирован: 2012.08.15, 15:41

Re: Сквозные блоки

Сообщение Vladimir P »

А объясните мне просто в теории ситуацию с лейаутами. Я через них тоже пытался сделать. Вот если контроллер News использует '//layouts/column2', то из этого контроллера нужно передавать в column2 массив с последними новостями для сквозного блока. Я к тому, что это будет отображаться только в контроллере News, а не на всех страницах. Как можно передать в column2 значение так, чтобы блок был виден везде?
У вас же есть какой-нибудь контроллер, от которого вы наследуете все контроллеры? В нем можете, например, создать public переменную и там же в нее грузить массив последних новостей, а в layout получать его как $this->массив. Что-то в этом духе. Но виджеты - лучше.
Moonlight
Сообщения: 22
Зарегистрирован: 2011.12.18, 23:06

Re: Сквозные блоки

Сообщение Moonlight »

Про такой контроллер я уже писал, да он есть, но там отсутствует модель, и мне кажется тот контроллер не для такого предназначен.

Ну понятно, буду юзать виджеты, всем спасибо.
Vladimir P
Сообщения: 60
Зарегистрирован: 2012.08.15, 15:41

Re: Сквозные блоки

Сообщение Vladimir P »

По большому счету да, не для такого, для такого - виджеты. Но если очень не хотеть виджеты по религиозным соображениям, то можно так :)
Ответить