Вложение файлов в письма. Поле с формы.
Заодно убираем зацикливание обработчика события
AddEventHandler('main', 'OnBeforeEventAdd', Array("MyForm", "my_OnBeforeEventSend"));
class MyForm {
protected static $handlerDisallow = false;
public static function my_OnBeforeEventSend(&$event, &$lid, &$arFields, &$message_id, &$files, &$languageId) {
/* проверяем, что обработчик уже запущен */
if (self::$handlerDisallow)
return;
if ( isset( $arFields['RS_FORM_ID'] ) && !empty( $arFields['RS_FORM_ID'] ) ) {
if (self::$handlerDisallow)
return;
/* взводим флаг запуска */
self::$handlerDisallow = true;
$arAnswer = CFormResult::GetDataByID( $arFields[RS_RESULT_ID], array( "PHOTO" ), $arResult, $arAnswer2 );
if ( $arAnswer[PHOTO][0][ANSWER_ID] ) {
$arGetFileByAnswerID = CFormResult::GetFileByAnswerID( $arFields[RS_RESULT_ID], $arAnswer[PHOTO][0][ANSWER_ID] );
if ( !empty( $arGetFileByAnswerID[USER_FILE_ID] ) && $arGetFileByAnswerID[USER_FILE_ID] > 0 ) {
CEvent::Send($event, $lid, $arFields, "Y", $message_id, array( $arGetFileByAnswerID[USER_FILE_ID] ) );
$lid = NULL;
}
}
/* вновь разрешаем запускать обработчик */
self::$handlerDisallow = false;
}
}
}