Вывести views или блок в Colorbox/Shadowbox/Lightbox

Главные вкладки

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 11 августа 2011 в 16:31

Здравствуйте!

Появилась необходимость вывести views в модальном окне (в моём случае - Colorbox), причём выводить его не из скрытого дива, заранее загруженного на страницу, но грузить его после вызова этого модального окна. Стал искать информацию на эту тему, но так и не сумел обнаружить конкретных вариантов того, как это можно сделать. Из более-менее рабочих решений нашёл только один: выводить views по конкретному пути, темизировать этот путь через отдельный шаблон page-myalias.tpl.php и подгружать его как iframe, но меня этот такой вариант не устраивает по некоторым причинам. Пожалуйста, посоветуйте, как ещё можно решить подобную задачу?

Комментарии

Аватар пользователя drupby drupby 11 августа 2011 в 16:49

при установке Lightbox2 в views в добавлениии полей есть поле Lightbox trigger ,в котором можно указать поля вьюхи которые выводить в Lightbox .

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 августа 2011 в 17:18

"drupby" wrote:
при установке Lightbox2 в views в добавлениии полей есть поле Lightbox trigger ,в котором можно указать поля вьюхи которые выводить в Lightbox .

Спасибо, но это не то — мне нужно не определённые поля выводить, а всю вьюсу целиком.

Аватар пользователя drupby drupby 15 августа 2011 в 17:33

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
Спасибо, но это не то — мне нужно не определённые поля выводить, а всю вьюсу целиком.

Значит надо туда добавить все поля вьюхи ,по-моему логичное и правильное решение .

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 августа 2011 в 18:13

"drupby" wrote:
Значит надо туда добавить все поля вьюхи ,по-моему логичное и правильное решение .

Возможно, мы говорим о разных вещах. Мне нужно, чтобы вся вьюса целиком выводилась в одном модальном окне при клике по ссылке определённого вида. То, о чём говорите вы, как я понимаю, это вывод отдельных полей в отдельных модальных окнах. Разве не так?

Аватар пользователя drupby drupby 15 августа 2011 в 18:33

Lightbox trigger - это и есть ссылка при клике на которую выводятся поля вьюхи ,хочешь всю полностью ,хочешь несколько нужных полей.
Все остальные поля в настройках убираются для отображения и остается только ссылка Lightbox trigger ,при клике вылазит модальное окно с вьюхой ,единственное ,что может не совсем корректно отображать всю вьюху в опере .

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 августа 2011 в 18:40

Спасибо за терпение, но, как я вижу, при клике на ссылку/триггер выводятся все поля одной строки вьюсы, а мне нужно, чтобы в боксе выводились вообще вся вьюса целиком.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 августа 2011 в 20:38

"drupby" wrote:
прочитай внимательно http://www.drupal.ru/node/56627[/quote]
Спасибо. Прочитал. Всё именно так, как я говорил.

Клик на триггере выводит в лайтбоксе/колорбоксе скрытые поля, относящиеся к этой строке выборки — то есть, предположим, что наша вьюса выдаёт пять результатов-товаров. Мы выводим для каждого товара поля a, b, c, d, а поля e, f, g скрываем (excluded), а в качестве поля h у нас — триггер, в котором мы уже определяем, что при клике, скажем, на поле a первого товара во вьюсе будет открываться лайтбокс/колорбокс, в котором будут показаны поля a, b, d, e, f, g первого товара. Кликая на поле a второго товара, мы увидим в модальном окне поля a, b, d, e, f, g второго товара и так далее.

Это очень классная штука, но мне она действительно не подходит — мне нужно выводить всю вьюсу _целиком_ (не одну строку, а все вообще). То есть, предположим, у меня есть вьюса, которая отображает трекер (тип — page, путь — /my_tracker), и мне надо сделать так, чтобы, скажем, на главной странице сайта при клике на ссылке вида <a href="/my_tracker">Мой трекер</a> в модальном окне открывалась вся эта вьюса my_tracker.

Аватар пользователя drupby drupby 15 августа 2011 в 21:20

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
и мне надо сделать так, чтобы, скажем, на главной странице сайта при клике на ссылке вида Мой трекер в модальном окне открывалась вся эта вьюса my_tracker.

здесь надо вручную делать ,тот же Lightbox 2 позволяет выводить при клике на ссылку страницу в боксе ,а в качестве адреса указать адрес вьюхи .

на http://www.fancybox.net/ можно реализовать вывод при клике на ссылку контента в боксе с указанного урла - там ссылка вида < a class="iframe" href="http://www.google.ru">погуглим? ,только там надо обязательно указать class="iframe" .

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 августа 2011 в 21:26

Да, спасибо. Этот вариант я, конечно, тоже рассматривал, в стартовом посте как раз об этом говорил. Там минус в том, что либо в боксе выводится вьюса со всем прочим содержимым (хедер, футер, сайдбары, меню), либо, если я в шаблоне обрезаю всё содержимое только до вывода самой вьюсы, при попытке просмотра вьюсы по её адресу (а не в модальном окне), она видна кастрированной :/

Аватар пользователя Alexanderos Alexanderos 25 декабря 2011 в 15:32

Наверное уже не актуально, но все же. Почему бы не попробовать так:
1. Создаем вьюху которую нам надо будет выводить потом в модальном окне.
2. С помощью модуля Views Field View вставляем в поле другой вьюхи нашу целевую вьюху, скрываем ее (exculded).
3. Добавляем сюда же поле colorbox/lightbox trigger с выводом нашего поля с вьюхой (пункт 2).

Но я не пробовал, это в теории.

Аватар пользователя Alexanderos Alexanderos 9 января 2012 в 9:03

Попробовал свой способ. Реально работает! Блоком конечно тоже можно (как сказано ниже), кому что ближе как говориться... Если у кого проблемы возникают с моим способом, пишите — объясню подробно!

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 23:28

Alexanderos wrote:
Попробовал свой способ. Реально работает! Блоком конечно тоже можно (как сказано ниже), кому что ближе как говориться... Если у кого проблемы возникают с моим способом, пишите — объясню подробно!

Отличный вариант, спасибо большое! Правда долго разбирался с триггером. Муторная настройка.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 25 декабря 2011 в 20:48

Спасибо за совет. Я в итоге сделал по-другому — у меня есть блок, сформированный views, его я вывожу через свой модуль при обращении по определённому адресу (my_module/get_my_view/view_args). А потом я выстраиваю ссылку, которая подгружает в колорбокс через аякс этот блок при клике по ссылке. Дёшево и сердито Smile

Аватар пользователя Alexanderos Alexanderos 30 мая 2012 в 13:23

Опишите ваши действия по пунктам... лучше со скриншотами настроек views... и я вам укажу на ошибки. Так будет продуктивнее.