Как то, для одного из проектов, мне было необходимо выводить статьи сайта, а именно полное содержимое ноды, в модальное окно и желательно через Ajax, дабы не нагружать страницу с тизерами. Первое, что пришло в голову – это использовать Colorbox_node, но согласитесь, что для получения простейшего функционала использовать достаточно объёмную библиотеку данного плагина не самая хорошая идея, поэтому я написал небольшой модуль, который реализует данный функционал без подключения дополнительных плагинов jQuery, а использует лишь фреймворк Ajax Drupal.
Данный модуль не имеет никаких настроек, все, что от вас требуется – это передать ему id ноды [nid], вывод которой вам необходим в модальном окне. По сути, все, что вам нужно сделать – это добавить в файл node.tpl.php ссылку, по следующему шаблону:
<a href="/ajaxcontent/nojs/<?php print $node->nid;?>" class="use-ajax">Открыть в модальном окне</a>
И теперь по клику по ссылке у вас будет открывать модальное окно с полным содержимым ноды.
Хочу заметить, что в вывод попадает только контент, форма комментариев в него не входит (входит начиная с версии 1.01).
Скачать модуль Ajaxcontent, версия 1.0
Обновление до версии 1.01
Список изменений:
- Добавилась возможность загружать в окно и комментарии ноды
- Добавилась страница для настройки модуля (Конфигурация -> Интерфейс пользователя -> Ajax Content)
Скачать модуль Ajaxcontent, версия 1.01
Обновление до версии 1.02
Список изменений:
- Исправлена ошибка при загрузке файла, при включенном модуле ajaxcontent
Комментарии (14)
А есть какие нибудь варианты выводить и комментарии тоже?
варианты всегда есть, только для вывода комментариев нужно так же озаботиться и об их отправке, а также форме ответов на комментарии - здесь все сложнее, нужно подумать вообщем.
С комментариями, это былабы бомба!
Впринципе содержимое ноды можно вывести с помощью любого лайтбокса(если конечно он установлен на сайте)
вот тут описан пример вывода в Colorbox, я вывожу по этому примеру в Fancybox:
где 19 - это NID
JS
при включенном модуле не работает стандартная форма загрузки изображений
Спасибо, исправлено в версии 1.02
У меня с Colorbox Node была такая проблема, что он на мультиязычном сайте дополнительные поля подргружал без перевода, но на языке сайта по умолчанию. Поля Title и body переводил. А все остальное нет. Так и не решил эту проблему...
Доброго времени суток.
А как сделать что бы можно было вставлять в Глобальный: Пользовательский текст. Как подставочный шаблон?
Здравствуйте.
Подскажите пожалуйста. В своем модуле вы решаете задачу вывода содержимого ноды в всплывающее окно.
А что нужно изменить чтобы выводить не в окно, а определенный блок, на определенной странице (точнее даже русскую версию на одну страницу, а английскую на другую, но блок один и тот же).
Заранее благодарен.
Модуль Nodeblock
Павел, а можно, в качестве модального окна, использовать fancybox, если да, то каким образом?
Можно. Удалить подключение JS скрипта, который идет в данном модуле. Далее написать свою Ajax команду, которая после выполнения Ajax запроса будет открывать модальное окно Fancybox.
Как создать свою Ajax команду ?
Fancybox API (как открыть модальное окно)
Есть два типа матерьяла: вакансия и резюме, задача: при добавлении матерьяла пользователем выводить его в модальное окно. Я так понимаю, в вашем примере нужно в ручную указать номер ноды, а как зделать чтоб все матерьялы определёного типа выводильсь окном ?
Можно как то отдельно вывести в модальное окно, только нужные поля с ноды.
измените ф-ю _ajaxcontent_load_noder как вам нужно.
Переменная $vnode содержит все поля ноды.