Выводим форму модуля WEBFORM или CONTACT в popup окно (во всплывающее окно) в Drupal
Всем привет! Сегодня научимся закидывать форму обратной связи во всплывающее окно – чтобы красиво было. Для Drupal Задача – вывести форму обратной связи во всплывающем окне Для начала определим форму контактов в ноде (node) В Drupal 6 можно следующим образом:
<?php require_once drupal_get_path('module', 'contact').'/contact.pages.inc'; print drupal_get_form('contact_mail_page'); ?>
Далее подключаем скрипты colorbox (полностью архив плагина можно скачать на оф. сайте) – это скрипт, а точнее плагин, который позволяет использовать на сайте всплывающие popup окошки для фоток, видео и т.д. Можно подключать как и в шаблоне так и в документе php. Соответственно положил его я в корень сайта в папку /js/colorbox/
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script> <script type="text/javascript" src="/js/colorbox/jquery.colorbox-min.js"></script> <link type="text/css" rel="stylesheet" href="/js/colorbox/colorbox.css" /> <link type="text/css" rel="stylesheet" href="/js/colorbox/style.css" />
Далее прописываем тело скрипта (блок и функцию)
<a class="inline" href="#show-block"> <img alt="форма обратной связи" title="форма обратной связи" src="/userfiles/obr_sviaz2.png" /></a> <div class="hidden"> <div id="show-block"><?php require_once drupal_get_path('module', 'contact').'/contact.pages.inc'; print drupal_get_form('contact_mail_page'); ?></div> </div> <script type="text/javascript"> (function($) { $(document).ready(function() { $("a.inline").colorbox({inline:true}); }); }(jQuery)) </script>
В Drupal 7 код, который вытащит тебе только форму с ноды типа webform. Выглядит так:
<?php $block_recall = module_invoke('webform', 'block_view', 'client-block-1'); print $block_recall['content']; ?>
client-block-1 - id формы засунуть ее надо как раз в див id="show-block" который выводит блок внутри плагина colorbox. Проверяем – работает.
Комментарии
не пробовал