Никак чтото не подцеплю Webform в Colorbox.
выдаёт Request unsuccessful: Not Found.
вывожу кодом
<?php<a class="colorbox-load" href="/colorbox/form/webform_client_form_7?width=500&height=350">Form</a>?>
или
<?php<a class="colorbox-load" href=""/colorbox/form/[form_7]?width=500&height=350]">Form</a>?>
на официалке пишут про баги но там версия модуля колорбокс более ранняя, в последней таих строк даже нету.
http://drupal.org/node/940220
помогите люди знающие.
Комментарии
Там пишут, что нужно использовать Popups.
1
в коде разобраться и отделить мух от котлет ,в смысле php от html .
1
разберитесь с href .
<a class="colorbox-load" href="/node/id?width=500&height=500&iframe=true">my webform</a>
,где id номер ноды с вашей формой
так он всю страницу подцепляет, а мне только одну форму нужно. все комбинации уже пробовал. поиски читал...такбы не спрашивал
на официалку ссылка сообщение номер 6. я про него речь в 1 посте вёл.
промашка
Он не сработает все равно через колорбокс - там вроде надо искать более раннюю версию самой библиотеки, но автор ее по непонятным причинам скрывает.
В сторону модуля Popups, вестимо. Там, насколько помню, на страницы модуля colorbox еще написано, что больше формы не поддерживаются. У Вас возможно получится даже форму вывести, но при отправке будет 500.
И еще, вот это:
/colorbox/form/webform_client_form_7?width=500&height=350
должно заменяться на что-то вроде/colorbox/form/webform_client_form_7%3Fwidth=500&height%3D350
1
1
Если TC интересен вариант реализации именно через colorbox, могу расписать, как делал здесь http://alukon-kzn.ru/catalog/1/2 (кнопка Оформить заказ)
а форма реализована через webform ?
Да, можете убедиться по form id.
и как это все реализовано ,если colorbox-load не хочет работает с webform ?
подцепим страницу, на которой будет только форма и ничего лишнего.
Для чего нужно сделать несколько вещей.
1. новый темплейт страницы, например, page-cbox.tpl.php, в котором выводим только то ,что нам нужно
Например (привожу только body)
<div id="page" class="cbox-page"><div id="page-inner">
<?php print $content; ?>
</div></div>
</body>
2. добавить следующее в phptemplate_preprocess_page tempalate.php, чтобы подключить наш tpl страницы (очень может быть ,что в вашей теме это уже сделано)
$path = drupal_get_path_alias($_GET['q']);
list($site_section, ) = explode('/', $path, 2);
if (arg(0) == 'node') {
if (arg(1) == 'add') {
$site_section = 'node-add';
}
elseif (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete')) {
$site_section = 'node-' . arg(2);
}
}
}
//подхватываем page.tpl в зависимости от адреса страницы (например, page-stranica.tpl.php)
$vars['template_files'][] = 'page-'.$site_section;
3. добавляете алиас страницы, например для вашей webform/7, cbox/webform/7.
Теперь, если все верно сделано и сброшен кэш, по адресу site.ru/cbox/webform/7 вам отдастся страница с "только" формой
4.отправляем colorbox ссылки "по новому" направлению - подключаем свой js (например, в файле темы .info)
//форма заказа
var popupLink = "a.cbox-popup";
$(popupLink).click(function(e){
e.preventDefault();
$.colorbox({
iframe: true,
width: 600,
height: "95%",
href: "/cbox/"+this.pathname + this.search
});
});
});
Теперь, ваша ссылка вида
<a class="cbox-popup" href="webform/7">Форма связи</a>
при включенном js откроет только форму в iframe, а выключенном js отправит пользователя на обычную страницу формы.Чтобы у всплывающего окна не появлялись скроллы, css задайте ширину-высоту, например в моем примере
width: 600px;
}
Остается момент с автозакрытием/ресайзингом по отправке формы. Были какие-то варианты на http://stackoverflow.com/, у меня необходимости не было.
По сути, если сделать все, как расписал, теперь таким же макаром, можно любую страницу открывать colorbox - нужно лишь добавить алиас да ссылке добавить класс нужный.
так то можно форму и во вьюсе где-нибудь ,к примеру в блоке или в шаблоне вытянуть ,скрыть ее ,а потом в colorbox-inline вывести нужный div с формой.
Можно, все зависит от задачи. Только проверьте, что будет по сабмиту формы из colorboxa в вашем варианте (при неверном заполнении формы) - мне не понравилось.
Мне нужно было передавать параметры в форму в зависимости от нажатой кнопки. На том же сайте, что приводил выше на странице контактов вьюха с контактами многих лиц, по нажатию открывается одна и та же форма связи, но по отправке отправляется смс конкретному человеку и письмо на его мыло. Так же в каталоге заказ уходит в разные отделы.
Потому делал более-менее унифицированный вариант.
Земляк, фирма не твоя случаем по ссылке?
Нет. Похоже на спам? ))
Не, не похоже, просто могло быть предложение о сотрудничестве.
я вчера более простым способом решил проблемму)
написал шаблон page-node-7.tpl.php
где только контент вывожу
и вывожу ссылкой
<a class="colorbox-load" href="node/7?width=500&height=350&iframe=true]">Form</a>
по сути тоже самое что предлогает rimen только попроще)
вот кстати когда вывожу колорбокс классами colorbox-load и colorbox-inline почему то грузится посредине всей страницы а не экрана. Это глюк стилей калорбокса или я чёто гоню?
1
Да,все верно. Этот вариант, когда нужно вывести одну форму, проще и даж правильнее))
А в коде самого colorbox ничего не менял?
Попробуй стиль колорбокса сменить или в другой теме вывести.
Еще у него есть параметры позиционирования, может, их изменял.
1
всем спасибо) приляпал статус [Решено]
Если речь о предыдущем посте, то, вероятно, стоило сначала поиграться с агрегацией скриптов колорбокса и всего сайта.
неужели colorbox-load стал выводить все формы ?
если актуально для 7ки есть http://drupal.org/project/colorbox_node
1
все получается, только одно но! Если прицепить капчу к форме, и в случае, если пользователь не правильно вводит ответ, то форма перегружается в обычной странице. Этот факт очень портит такую "вкусную" реализацию вебформы. Ктонить смог решить?
C вашего позволения, подниму тему. Делаю так: создал материал типа page, в Body вписал код:
<?php
module_load_include('inc', 'node', 'node.pages');
echo drupal_get_form('stena_node_form');
?>
Где stena_node_form - id формы, которую нужно вывести.
Сделал page-node-25.tpl.php, где 25 - это ID той страницы. В этот шаблон вставил:
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
<head>
<?php print $head ?>
<title><?php print $head_title ?></title>
<?php print $styles ?>
<?php print $scripts ?>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyle Content in IE */ ?> </script>
</head>
<body>
<div id="main">
<?php print $content; ?>
</div>
<?php print $closure ?>
</body>
</html>
Ссылка на вывод окошка:
<?php if(!user_is_anonymous()) { ?>
<a class="colorbox-load add_zapis_link" href="/forma-dobavleniya-zapisi-na-stenu?width=600&height=800&iframe=true">Добавить запись на стену</a>
<?php }
else echo "Авторизуйтесь, для добавления записи на стену";?>
где /forma-dobavleniya-zapisi-na-stenu - алиас той страницы с выводом формы.
Итог этих действий - выводится только нижняя часть формы. Как на прикрепленном файле.
Как так-то? Упустил что-то? Заранее благодарен за ответы!
Вопрос снимается. Спасибо xandeadx: http://xandeadx.ru/blog/drupal/247