Метод Mage_Contacts_IndexController::postAction()
может обрабатывать пользовательские контактные формы.
Размещенные данные должны соответствовать некоторым основным требованиям:
// Excerpt from Mage_Contacts_IndexController::postAction()
$postObject = new Varien_Object();
$postObject->setData($post);
$error = false;
if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {
$error = true;
}
if (!Zend_Validate::is(trim($post['comment']) , 'NotEmpty')) {
$error = true;
}
if (!Zend_Validate::is(trim($post['email']), 'EmailAddress')) {
$error = true;
}
if (Zend_Validate::is(trim($post['hideit']), 'NotEmpty')) {
$error = true;
}
if ($error) {
throw new Exception();
}
Этот код показывает, по каким критериям ваша форма удовлетворяет вам, действие контроллера работает с вашими данными из коробки.
Прежде всего, данные должны быть опубликованы (не отправляются через GET).
Затем должны присутствовать непустое поле name
, поле email
(с синтаксически корректным адресом электронной почты), непустое поле hideit
и поле comment
.
Форма должна быть отправлена на URL /contacts/index/post
.
Лучший способ создать URL в Magento - это echo Mage::getUrl('contacts/index/post')
.
Опубликованные данные доступны в электронном письме контактов через переменную {{ var data}}
.
Шаблон электронной почты можно настроить через интерфейс администратора в разделе Система> Транзакционные электронные письма .
По умолчанию шаблон очень простой, но может быть легко расширен. Например, чтобы добавить значение поля с именем q5_otherOptions
к электронному письму, используйте `{{var data.q5_otherOptions}} в качестве заполнителя.