Не знаю было ли такое решение или нет, по крайней мере я не нашел.
Раскуривал эту тему очень давно. Решений на форуме приведено уйма, но не все по моему удачные (требуют лесть в код или создавать отдельные шаблоны). В общем есть "правильное" решение которое думаю и предлагал девелопер.
После установки Колорбокса лезем в его настройки и включаем опцию "Enable Colorbox inline" (а Enable Colorbox load поможет вам с разными формами)
После чего создаем ноду\блок и в его теле пишем такой код
Где, width=500 - высота окна, height=500 - ширина окна, link - отображаемая ссылка на окно, myid - название вашего дива, 19 - ID ноды содержимое которой хотим вывести в окно.
Сохраняем в формате PHP code и радуемся)))
Комментарии
Большое спасибо. Попробую.
Полезно. Спасибо.
Помимо colorbox, это умеют почти все попапы, список тут: http://drupal.org/node/266126 , глава "Available Modules".
м-да... полезно
Модальное окно
Спасибо. Поправил. Но тогда я не понимаю как назвать такой эффект. На модельное окно похоже, но не оно
popup window. Большинство работает в "модальном" режиме, но есть плагины которые могут и в немодальном режиме.
Оффтоп.
Что с drupal.ru происходит? Предпросмотр комментария не работает. Подписка на комментарии не работает.
а вот через этот модуль не пробовали?
Поподробней можно? В viewse выродить можно? Как вывести ноду?
Смотря как вам надо через views. "Чистая нода" выводится при наличии в url параметра. Сейчас не помню как он там пишется, загляните в readme модуля.
KTATTOO, огромное спасибо.
Вот бы не помещало ещё к открывшемуся окну страницы ссылку прикрутить на эту страницу (чтоб над страницей висела), чтоб по ней пройти, если что.
Дак не проблема
до или после
<?php print render (node_view(node_load(19)), FALSE, TRUE);?>
прописываем какую хотим ссылку или текст)))Ага, ещё раз спасибо, я даж сам догадался.
В смысле, "до" сам догадался, а "после" нет )))
И если стиль ссылке прописать #myid>a, то он действует на эти верхнюю и нижнюю ссылку, а ссылки в самой всплывающей ноде не затрагивает! Удобно.
И, кстати, если страница с прописанным в коде ИД отсутствует на сайте (сами по пьяне удалили, к примеру, или враги утащили), то кракозяб вместо страницы получается. Надо бы в ПХП условие прописать.
P.S. Не приходят уведомления на почту об ответах в данной теме. У Друпал.ру временный косячок?
Спасибо. Однако, у этого решения есть одна очевидная проблема — содержимое ноды загружается вне зависимости от того, будет ли пользователь открывать её в модальном окне или нет, что не есть гуд (наргузка, трафик и т.п.). Те же варианты, которые вы не считаете удачными, подразумевают, что содержимое ноды будет подгружаться только в том случае, если пользователь решил его посмотреть.
Ну да, содержимое грузит сразу, но не думаю, что на сервак это особая загрузка (пять-десять страниц одновременно не так много). Заходил на сайт с телефона, в принципе грузится не на много дольше (несколько секунд добавилось). В принципе меня данный способ устроил полностью. Единственный косяк в том, что при использовании таких ссылок в представлениях начинают
куражатсяпутаться хлебные крошки, пришлось их пока отключить (заказчика не напрягает, а у меня как руки дойдут разберусь).Мне кажется, вы совершенно не имеете представления о нагрузках на сервер нашим с вами чудным друпалом если, как вы говорите, "пять-десять" страниц одновременно грузить, конечно, это не много. Но а если посещаемость вашего сайта, к примеру, 1000 человек в день? Умножаем на "пять-десять" каждое посещение и получаем охренительный трафик + нагрузку на процессор и базы данных, несопоставимые с жизнью Drupal у вас полетит всё, если вы только кинете ссылку на сайт с подобной реализацией попапа, в той же статье на хабре, где "хабра-эффект" (убивший не один десяток сайтов) ломает даже простенькие сайтики с одной html-страничкой
Ваше решение - не решение.
Я, конечно, не копенгаген, но думаю, что это недостаток совершенно небольшой, т.к загружается только содержимое ноды, и от загрузки нескольких лишних кБ мало что изменится (ну если только на них нет мегабайтных картинок ))) .
А вот интересно, почему при таком типе загрузки модального окна ID colorbox присваивается атрибут position: absolute, ведь при показе Colorbox-ом фоток у класса colorbox атрибут position:fixed.
Т.е., если окно сайта немного прокручено и ссылка вверху, то с position: absolute модальное окно откроется тоже вверху и может быть частично скрыто, надо основную страницу прокрутить вверх.
Я дописал себе в CSS colorbox{position: fixed !important;}, вот думаю, не сделал ли я фигню, ибо я не копенгаген.
Как подгрузить содержимо страницы которую создали программно через модуль? Например страницу /checkout в Ubercart
спасибо огромное за ссылочку. хороший модуль. работает очень просто и с его помощью можно открывать любое содержимое как в colorbox и подобных модулях, так и во всплывающих cluetip и подобных. для этого нужно ссылку вставлять в таком формате http://yoursite.com/node/1?ajax_request где ?ajax_request просто дописывается к любой ноде которую хотите открыть. если открывать в colorbox то можно как через класс "colorbox-load" так и "colorbox-inline".
views еще не пробовал с ним, но думаю что и он будет работать. данный модуль избавляет от необходимости вручную преопределять вывод ноды или любого другого контента.
да еще в данном случае с colorbox контент будет подгружаться только при вызове, а не постоянно при загрузке страницы, что решает проблему обсуждаемую выше.
попробовал с views - все отлично работает выводится чистое содержимое и в colorbox и в cluetip. также к пути вьюшки добавляется в конце ?ajax_request .
также выводится и webform и в colorbox (только класс colorbox-load, а colorbox-inline - не будет соответственно работать) и в cluetip .
Прошу прощения, но Вы не приведёте полные примеры синтаксиса ссылки для вывода ноды в Colorbox, с использованием модуля Content Page, а то я понятия не имею об этих ajax_request'ах, мне просто чтобы работало.
Все сделал как написано и заработало! Только один вопрос - как вставить такую ссылку на в заголовке поля webform (например: Я подтверждаю, что ознакомился с условиями договора)? если вставить в таком виде как написано, то нода выводится без попап эффекта (остальное все впорядке). Перерыл кучу форумов но ответа не нашел...
ss_400, через него можно назначить для всех нод вывод содержимого в боксе?
я не понял вопроса, можете подробнее описать задачу?
ss_400,мне нужно,чтобы при открытии ноды,она отображалась в окне поверх сайта.Понял,что это возможно реализовать методом ТС и модулем,о котором Вы написали выше.Так вот,можно ли через этот модуль назначить для всех нод вывод в окне автоматом,не прописывая каждый раз ничего?
в каждом конкретном случае очень много нюансов, универсальное решение предложить навскидку не могу, могу предположить что можно какое то правило реализовать , но методов может быть тоже несколько, как вариант средствами jQuery. но может еще тригеры будут работать, здесь я к сожалению не знаю как делать.
Ясно. Спасибо за ответ.
Можно просто, но жестко - через правку шаблона. Добавив ?ajax_request к выводу $node_url
У меня получилось вывести через Lightbox2, но теперь две проблемы: 1) в фрейм страница грузится целиком, а нужны только поля изображения и текста; 2) как назначить для всех нод вывод в лайтбоксе? Как им прикрутить атрибут rel="lightframe"?
читайте комментарии выше. Там есть пути решения вопроса.
Бррр, туплю. Не заметил, что Вы только о первой части моего вопроса написали. Ссылку я уже прикрутил (кстати, ничего смертельного, что я убрал rel="bookmarks", заменив его на rel="lightframe" ?). А вот как захватывать только ноду во фрейм, а не всю страницу - это беда...
вообще нужно href=/yoursite.com/node/1?ajax_request и rel=/yoursite.com/node/1?ajax_request отображать примерно так.
ss_400, я лайтбоксом делал. Все вывел как надо, методом отключения всех ненужных блоков в node/*. Только из-за манипуляции с адресом ноды появилась проблема с выводом полей через views. Ну да ладно, это все решаемо.
Я заюзал popups api, он сразу тело ноды выводит в попапе.
<p><a class="colorbox-load" href="/yoursite.com/node/1?ajax_request" rel="/yoursite.com/node/1?ajax_request">Ссылка при нажатии на которую запускается colorbox</a></p>
данную строчку помещаете в поле Body вашего материала, заменяете /yoursite.com/node/1 на адрес вашей ноды, которую хотите выводить , ну соответственно ссылкой может быть все что вы захотите а не только текст. как смог постарался объяснить доступно.Спасибо большое, вроде всё работает. Неясно только, как задать размер окна Colorbox для вывода, должны ведь подставляться такие параметры? Я имею ввиду для каждой отдельной ссылки, а не те, которые на странице настройки модуля.
И не выводится заголовок ноды, только автор и дата, так и должно быть?
Может, из-за этой строчки (шаблон node.tpl.php темы zen):
<?php if (!$page && $title): ?>
- потому что заголовок выводится в шаблоне страницы.Попробуйте изменить на:
<?php if ($title): ?>
опишите подробнее что делаете и что хотите получить, навскидку сложно продумывать и решать все возможные варианты.
Спасибо KTATTOO, все работает супер, очень кульно смотрится
а как сделать так чтобы по ссылке сразу открыть все фотографии с ноды или views в вплывающем окне colorBox?
+
и коменты бы еще
Спасибо. Ваш совет очень помог. Долго гуглил, не знал как вывести модальное окно.
А тут ваш совет очень кстати. Надо было сразу идти искать здесь!
UPDATE:
http://drupal.org/project/colorbox_node
Еще удобней)
Вопрос, как через colorbox вывести только содержимое одного текстового поля ноды?
Все четко, модуль работает на ура!
Только вопрос имеется: как заставить открываться окно при клике на фотку? Каталог выводится вьюхой, в настройках поля "заголовок", есть включение вывода через cjlorbox, включаешь, при клике все открывается, а в настройке поля изображения ... нет этой менюшки!
Как туда его докрутить, чтоб и при клике на фото открывалось окно colorbox-а с нодой ??? Подскажите пожалуйста, а то что-то никак ...
Все четко, модуль работает на ура!
Только вопрос имеется: как заставить открываться окно при клике на фотку? Каталог выводится вьюхой, в настройках поля "заголовок", есть включение вывода через cjlorbox, включаешь, при клике все открывается, а в настройке поля изображения ... нет этой менюшки!
Как туда его докрутить, чтоб и при клике на фото открывалось окно colorbox-а с нодой ??? Подскажите пожалуйста, а то что-то никак ...
RASSEL очень просто:
1. идем в наше поле "фото" там отмечаем "Исключить из вывода"
2. добавляем новое поле "ссылка" в ней раскрываем "ПОКАЗАТЬПЕРЕЗАПИСАТЬ РЕЗУЛЬТАТЫ" ниже смотрим "ПОКАЗАТЬПОДСТАНОВОЧНЫЕ ШАБЛОНЫ" копируем шаблон нашей картинке и вставляем в форму выше этих шаблонов.
Не "лесть" а "лезть"
Дельное предложение, но не срабатывает, просто переходит на страницу товара ... понимаю что ДОЛЖНО работать, где-то что-то упускаю.
В Colorbox включена опция: Enable Colorbox inline (с выключенной тоже пробовал).
Кстати, ссылка работает и открывает colorbox-окно со всеми подстановочными шаблонами, буть это цена, заголовок, "добавить в корзину" .... кроме фото!!! Переопределяешь ссылку как фото, фото появляется, но при клике блин просто переходит на страницу товара!
Может как-то по особому поле фото нужно настроить (В Formatter есть : Colorbox, Изображение и Ubercart product)?
Итить-колотить .... в настройках фото, нужно было убрать "Изображение как ссылка на: Ничего", после этого созданная ссылка заработала как нужно!
огромное спасибо за "наводку" !!!Товарщи, подскажите, поставил я colorbox - голый, и моя самая первая задача, это вьюха выводит список пользователей, я сделал чтобы имя пользователя было ссылкой на его профиль (user/[uid]), и добавил класс этой ссылке colorbox
Сохранил, открыл - и всё чудненько!!! всё работает - легко!, НО!
Если щёлкнуть по юзеру, откроется окно, оооок. посмотрел, закрыл его... щёлкаю по другому окно открывается вновь, но их открывается две штуки как будто, и один под другим,получается что они как будто накладывают друг над другом, т.к. фоновое пространство становится ещё более темнее/светлее (в зависимости от темы colorbox-а), и если закрыть всплывшее окно, оно исчезает, но под ним находится ещё одно такое же, получается ещё раз закрываю, и только тогда они все пропадают
если продолжить дальше щёлкать по юзерам, кол-во открываемых одних и тех же окон будет увеличиваться.
Ощущение что он что то не забывает, как будто каждой следующей ссылке ещё раз приписывает класс colorbox, тем самым заставляя несколько раз открывать
как можно решить?
Хм, проблема решилась добавлением строки user/* в Show Colorbox on specific pages
получается он по умолчанию в колорбоксе пытается открыть профиль, а я тут на ему ещё вьюхой приделываю...
-
Да, все отлично работает, содержимое ноды выводится в окне колорбокса. НО единственный минус то что в Colorbox не подхватываются параметры отображения ноды заданнные в display suite
Я использую более элегантное решение.
Делаю ссылку примерно такой:
Плюс такого решения, если javascript отключен то мы перейдем на страницу где расположена форма.
В настройках colorbox-а можно ничего не менять.
Ну да элегантно, а в чем +? Итог один и тот же!
Крутяк, парни! Столько времени искал решение этой проблемы с возможностью написания комментов в окне Colorbox. И вот, наконец-то! Огромная благодарность WiseMan!
возможно ли, чтобы colorbox реагировал не на нажатие, а на наведение, или подскажите другой модуль
Спасибо
Такая возможность "под ключ" не предусмотрена, но возможна, при изменении кода самого Colorbox, хотя это и не совсем логично, ведь Colorbox полностью перекрывает собой содержимое страницы. В вашем случае, думаю, был бы более логичным способ, предоставляемый модулем PopUp, хотя смотря что именно вы хотите отображать во всплывающем окошке.
У меня постоянная ошибка (Strict warning: Only variables should be passed by reference в функции eval() (строка 14 в файле modules\php\php.module(80) : eval()'d code).)
как поправить ?