Нашел более, как мне кажется, легкий способ.
http://prostoufa.ru/forma-obratnoj-svyazi-na-umi-start/#comment-322Содержание темы:
Так как в редакции start системы управления umicms нет модуля обратная связь, то пришлось написать свой обработчик форм. Правда он без конструктора форм, но для простой обратной связи на сайте вполне сгодиться.
Вот код обработчика формы, который я по привычке помещаю в кастомный файл модуля users: /classes/modules/users/__custom.php. Так же не забываем добавить функцию в файл permissions.php, лежащий поблизости в той же папке. Я добавил функцию в ветку «login».
public function send_form()
{
//список полей формы
$item1 = (string) getRequest('item1');
$item2 = (string) getRequest('item2');
$item3 = (string) getRequest('item3');
$item4 = (string) getRequest('item4');
$item5 = (string) getRequest('item5');
$item6 = (string) getRequest('item6');
$item7 = (string) getRequest('item7');
$item8 = (string) getRequest('item8');
//массив обязательный полей и сообщений о пустом значении соответствующих полей
$test = array(
'Заполните поле 2' => $item2,
'Заполните поле 2' => $item3
);
$error = false;
foreach ($test as $name_field => $value) {
if (empty($value)) {
$this->errorNewMessage('Необходимо заполнить все поля',false);
$error = true;
}
} //проверка заполненности обязательных полей
if ($error) {
$this->errorPanic(); //вывод ошибки
}
//формирование тела письма
$mailContent = 'Поле 1: '.$item1.'<br>';
$mailContent .= 'Поле 2: '.$item2.'<br>';
$mailContent .= 'Поле 3: '.$item3.'<br>';
$mailContent .= 'Поле 4: '.$item4.'<br>';
$mailContent .= 'Поле 5: '.$item5.'<br>';
$mailContent .= 'Поле 6: '.$item6.'<br>';
$mailContent .= 'Поле 7: '.$item7.'<br>';
$mailContent .= 'Поле 8: '.$item8.'<br>';
$mail = new umiMail;
$email_from = regedit::getInstance()->getVal("//settings/email_from"); //берём адрес электронной почты и имя адресата из вкладки «почта» модуля «конфигурация».
$mail->addRecipient($email_from);
$mail->setFrom($item2, $item1); //$item2 - email отправителя, $item1 - имя
$mail->setSubject('Пользователь заполнил форму на сайте "garto.ru"');
$mail->setPriorityLevel('highest');
$mail->setContent($mailContent);
$mail->commit();
$mail->send();
$this->redirect('/order/?result=success');//редирект при удаче
}
Вывод формы такой:
<form action="/users/send_form/" method="post" >
<label>Фамилия, имя, отчество:</label><br/>
<input type="text" name="item1" value=""/>
<label>E-mail или телефон для связи:</label><br/>
<input type="text" name="item2" value=""/>
<label>Текст сообщения:</label><br/>
<textarea name="item3" ></textarea>
<br/>
<input type="submit" name="item4" class="buttom" value="Отправить"/>
</form>
Перезагрузка страницы происходит, но отправка сообщения не идет. В чем может быть проблема?