отключить обязательное поле email

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

Аватар пользователя zlodiak zlodiak 18 января 2013 в 1:22

подскажите пожалуйста как в drupal 6, в стандартной contact form, не изменяя ядро, отключить обязательное поле email

средствами forms api я могу исключить его из вывода

«unset($form['mail']);»
, или убрать атрибут required

«$form['mail']['#required'] = false; »
, НО при отправке формы все равно выводится сообщение о том, что нужно заполнить поле email

Цитата:
«> Your e-mail address field is required.»

Комментарии

Аватар пользователя VLADI27 VLADI27 18 января 2013 в 8:16

"zlodiak" wrote:
НО при отправке формы все равно выводится сообщение о том, что нужно заполнить поле email

Цитата:
«> Your e-mail address field is required.»


Правильно, потому что проверка стоит в ядре. Используйте вебформ

Аватар пользователя zlodiak zlodiak 18 января 2013 в 9:07

с webform сделал давно, но у меня задача, обойтись без него. посоветуете варианты других модулей, не тяжёлых?

Аватар пользователя VLADI27 VLADI27 18 января 2013 в 9:08

"zlodiak" wrote:
осоветуете варианты других модулей, не тяжёлых?

Сделать в шаблоне собственную форму отправки - легче не придумать.

Аватар пользователя zlodiak zlodiak 18 января 2013 в 10:27

как я понимаю, при этом сообщения отправляться на определённый email или складываться в определённое место не будут? а для меня это главное...

Аватар пользователя VLADI27 VLADI27 18 января 2013 в 10:58

"zlodiak" wrote:
как я понимаю, при этом сообщения отправляться на определённый email или складываться в определённое место не будут? а для меня это главное...

Ок. Ещё варианты:
- Отправлять через доменную почту с сохранением почты на сервере.
- Создать папку в личной почте и складировать письма там.
- Написать свой модуль.

Аватар пользователя duozersk duozersk 18 января 2013 в 15:25

Уважаемый zlodiak,

Попробуйте вот так:

Теми же средствами Forms API, что вы используете для того, чтобы убрать поле email из формы или сделать его необязательным - не убирайте его; проставьте дефолтное значение для этого поля и запретите к нему доступ:

$form['mail']['#default_value'] = 'site_admin@example.com';
$form['mail']['#access'] = FALSE;

Этот способ позволяет минимальным количеством кода сделать то, что вам нужно. Коду ядра необходим хоть какой-то имейл адрес, чтобы встравить в поле From при отправке.

P.S. фонтан идей в этой теме заставил меня улыбнуться и помог проснуться. Спасибо Smile

Спасибо
AndyB