Скрытые фичи Panels: использование хитрого view display под названием “view context”

Сегодня в очередной раз был приятно удивлен возможностями Panels и View context в Drupal. Оказалось, однако, что на Drupal 7 эти возможности никто почти не использует, видимо потому, что про них просто мало кто знает (ну а конкретно ту штуку, которая нужна была мне – вообще никто не юзал с момента релиза D7, так как там в прицнипе был нерабочий код).
Старясь исправить ситуация хотя бы чуть-чуть, решил написать об этом тут.

Во Views есть такой вариант Display под названием “Context”. Никогда раньше им не пользовался, но оказалось он делает офигенно полезные вещи.

Допустим стоит задача разместить на панели что-то, что как-то и достаточно хитро связано с уже имеющимися на панели контекстами, но с помощью Views в принципе вытаскивается. Можно конечно создать view типа content pane, параметаризовать её контекстом, и разместить на панели. Но хорошо, когда контекст уже есть, а что если нет? Что если стандартных, достаточно тривиальных контекстов, как то Node from Node (по поляем), Taxonomy from Node (по полям) (из ctools relashionships) не достаточно? Тут два варианта:

1) притягиваемые views panes параметаризовать имеющимся контекстом и строить сложный view, пока “не доберешься” до нужных данных (через views relashioships)
2) как-то добавить новые контексты которыми параметаризовать views panes, которые становятся теперь простыми, поскольку им сразу даются нужные параметры.

И вот, как раз второе можно сделать с помощью дисплея views context.

1. Сначала вы создаете display типа context, который вам вытаскивает нужные объекты (которые позже станут контекстами на панели)
2. Теперь в панелях в разеле контексты > relashionships добавляете эту появившуюся вьюху и она сама становится контекстом, но плюс
3. расширяет список relashionships, через который теперь можно притянуть то, что тащит уже сама вьюха. И вот это то – тоже становится контекстом!

Я не проврял пока ничего кроме притаскивания таким образом taxonomy terms (которые сперва не заработали – см. ссылку вверху – там блин был stuff из D6 ), но полагаю работать должно как минимум для нодов.

Теперь, у вас есть возможность

1) Также просто размещать на панели куски притянутого контекста, поля – да всё что угодно.
2) Использовать притянутые контексты для параметаризации других вьюх

А также, будучит притянутой таким вот образом (через view context), вьюха становится доступной для операции Вы можете вывести любую часть вьюхи где угодно в панели, на любой pane. Скажем, можно header вывести в панели слева, footer – сверху, результаты – в середине, а листалку – еще где-нибудь. Можно также разбить притянутую по номерам строк, выводя, скажем нечетные строки – слева, а четные – справа. Или вывести рекламу между 3 и 4-ой строкой. Еще можно вывести только отдельные поля из результатов.

В общем, спасибо Мерлину, он сегодня просвятил. Я пообещал ему поделиться с кем-нибудь. Делюсь.

p.s. Сорри что сумбурно, но просто нет времени.

best
OnkelTem

Источник: http://www.drupal.ru/node/90144

Видео курс: Drupal 7 Панели

Начал новый видео-курс по модулю Панели (Panels).
Он еще в разработке, но базовые вещи моменты уже показал.
Приятного просмотра!

Источник: http://www.drupal.ru/node/86762

© 2009 Обзор CMS