День добрый. Мне нужно поставить контактную форму на все страницы сайта в правую колонку. Частично с этим справился, используя сниппет с данной страницы:
http://drupal.org/node/236997
Сеичас у меня форма появилась, только она никуда не сабмититься и никак не обрабатывается. Не могу понять куда нужно вставить данные функции:
function local_contactblock_page()
function local_contactblock_page_submit($form_id, $form_values)
Результат сеичас можно посмотреть здесь:
http://www.infitegroup.com/about-us
Можете подсказать куда обычно ставятся эти функции? И может быть есть более правильное решение моей задачи?
Заранее спасибо,
Влад
Комментарии
А зачем тогда при выводе содержимого пункта меню "Contact" выводится снова форма контактов? Можно при выводе "Contact" (в адресе, например, /contacts) телефончики, аськи, и т. п. вывести.
А так, вообще, форма контактов на всех страницах неплохо смотрится, её бы еще темизировать: например, фон с закругленными краями добавить.
Вообще, интересное решение - сразу на написание сообщения наталкивает. Типа, решение для сайта тех. поддержки?
Форму включаете при помощи: <?php
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
print drupal_get_form('contact_mail_page');
?>
Модуль contact включен? Тогда, по идее, форма должна нормально обрабатыватсья после нажатия Submit.
Угу, все верно. Страница контактов поменяется потом. Форму можно при помощи css крутить-вертеть как угодно. Только не могу ее до конца заставить работать
У вас форма ведет на страницу: /about-us
Надо action выставить правильно, чтобы форма обработалась. Должна вести на страницу contact.
Насколько я понимаю механиз обработки, action формы не важен в этом случае. Суть в обработке массива POST при вызове drupal_get_form.
Короче, я сделал как описано тут http://drupal.org/node/236997, все работает. drupal 6.4. Спрашивайте, попытаемся понять, в чем дело.
Таак, в page.tpl.php я добавил следующий код:
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
print drupal_get_form('contact_mail_page');
?>
Хмм, только что еще проверил, письма начали приходить. Очень странно, но утром еще не приходили
Тогда еще такой вопрос. Можно ли после сабмита формы вывести какое-то сообщение, типа "Спасибо"? Насколько я понял, в стандартной комплектации модуля Contact этого нет.
Можно сделать и блок с PHP-кодом.
Создаю блок с текстом:
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
print drupal_get_form('contact_mail_page');
?>
Выставляю тип ввода PHP.
Вписываю заголовок блока.
При отображении вижу только заголовок блока.
Модуль Contact включен, содано 3 формы разного типа.
Ну и поищи это сообщение в переводах и напиши то, что тебе надо.
Спасибо! Пригодилось. Для разных языков задействовал $language-language и у меня всего одна форма контактов, зато для каждой страницы разная )
А нельзя подробнее насчет задействования? Очень был бы благодарен
Создал блок PHP:
<?php
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
global $language;
switch ($language->language) {
case "ru": //
echo "<h1>Обратная связь:</h1>";
break;
case "en":
echo "<h1>Feedback:</h1>";
break;
default: //по-умолчанию язык казахский
echo "<h1>Керi байланыс:</h1>";
}
print drupal_get_form('contact_mail_page');
?>
Что касается переводов в самой форме контактов, то это через поиск (admin/build/translate/search)
Можно было сделать так:
<?php
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
echo '<h1>'.t('Feedback:').'</h1>';
print drupal_get_form('contact_mail_page');
?>
и добавить переводы