Поставить контактную форму на все страницы саита в правую колонку

Главные вкладки

Аватар пользователя Bricius Bricius 6 октября 2008 в 18:35

День добрый. Мне нужно поставить контактную форму на все страницы сайта в правую колонку. Частично с этим справился, используя сниппет с данной страницы:
http://drupal.org/node/236997

Сеичас у меня форма появилась, только она никуда не сабмититься и никак не обрабатывается. Не могу понять куда нужно вставить данные функции:
function local_contactblock_page()
function local_contactblock_page_submit($form_id, $form_values)

Результат сеичас можно посмотреть здесь:
http://www.infitegroup.com/about-us

Можете подсказать куда обычно ставятся эти функции? И может быть есть более правильное решение моей задачи?

Заранее спасибо,

Влад

Комментарии

Аватар пользователя Antoniy Antoniy 6 октября 2008 в 18:44

А зачем тогда при выводе содержимого пункта меню "Contact" выводится снова форма контактов? Можно при выводе "Contact" (в адресе, например, /contacts) телефончики, аськи, и т. п. вывести.

А так, вообще, форма контактов на всех страницах неплохо смотрится, её бы еще темизировать: например, фон с закругленными краями добавить.

Вообще, интересное решение - сразу на написание сообщения наталкивает. Типа, решение для сайта тех. поддержки?

Аватар пользователя whisk@drupal.org whisk@drupal.org 6 октября 2008 в 19:00

Форму включаете при помощи: <?php
require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
print drupal_get_form('contact_mail_page');
?>

Модуль contact включен? Тогда, по идее, форма должна нормально обрабатыватсья после нажатия Submit.

Аватар пользователя Bricius Bricius 6 октября 2008 в 19:07

Угу, все верно. Страница контактов поменяется потом. Форму можно при помощи css крутить-вертеть как угодно. Только не могу ее до конца заставить работать Smile

Аватар пользователя gorr gorr 6 октября 2008 в 19:27

У вас форма ведет на страницу: /about-us
Надо action выставить правильно, чтобы форма обработалась. Должна вести на страницу contact.

Аватар пользователя whisk@drupal.org whisk@drupal.org 6 октября 2008 в 22:55

Насколько я понимаю механиз обработки, action формы не важен в этом случае. Суть в обработке массива POST при вызове drupal_get_form.
Короче, я сделал как описано тут http://drupal.org/node/236997, все работает. drupal 6.4. Спрашивайте, попытаемся понять, в чем дело.

Аватар пользователя Bricius Bricius 7 октября 2008 в 0:33

Таак, в page.tpl.php я добавил следующий код:

<?php
  require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
  print drupal_get_form('contact_mail_page');
?>

Хмм, только что еще проверил, письма начали приходить. Очень странно, но утром еще не приходили Smile

Тогда еще такой вопрос. Можно ли после сабмита формы вывести какое-то сообщение, типа "Спасибо"? Насколько я понял, в стандартной комплектации модуля Contact этого нет.

Аватар пользователя AkeLLbl4 AkeLLbl4 7 марта 2009 в 20:26

direqtor wrote:
Можно сделать и блок с PHP-кодом.

Создаю блок с текстом:

<?php
  require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
  print drupal_get_form('contact_mail_page');
?>

Выставляю тип ввода PHP.
Вписываю заголовок блока.

При отображении вижу только заголовок блока.
Модуль Contact включен, содано 3 формы разного типа.

Аватар пользователя whisk@drupal.org whisk@drupal.org 8 октября 2008 в 1:30

Quote:
Можно ли после сабмита формы вывести какое-то сообщение, типа "Спасибо"?
Можно изменить форму, дописав к ней дополнительную submit функцию, которая будет выводить сообщение. А так contact по-умолчанию что-то выводит, типа "сообщение отправлено".

Аватар пользователя direqtor direqtor 8 октября 2008 в 4:37

"<a href="mailto:whisk@drupal.org">whisk@drupal.org</a>" wrote:
что-то выводит, типа "сообщение отправлено".

Ну и поищи это сообщение в переводах и напиши то, что тебе надо.

Аватар пользователя Dark_kz Dark_kz 26 марта 2009 в 19:47

Спасибо! Пригодилось. Для разных языков задействовал $language-language и у меня всего одна форма контактов, зато для каждой страницы разная )

Аватар пользователя yustos.com yustos.com 21 января 2010 в 22:13

"Dark_kz" wrote:
Спасибо! Пригодилось. Для разных языков задействовал $language-language и у меня всего одна форма контактов, зато для каждой страницы разная )

А нельзя подробнее насчет задействования? Очень был бы благодарен Smile

Аватар пользователя Dark_kz Dark_kz 3 февраля 2010 в 8:59

Создал блок 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)

Аватар пользователя vl vl 1 сентября 2010 в 11:24

Можно было сделать так:


<?php
require_once drupal_get_path('module''contact') .'/contact.pages.inc';
echo 
'<h1>'.t('Feedback:').'</h1>';
print 
drupal_get_form('contact_mail_page');
?>

и добавить переводы