Цитата |
---|
Валентин Матвейчик написал: Вот моё решение для модуля Веб-форм битрикса:Код |
---|
Bitrix\Main\EventManager::getInstance()->addEventHandler(
"main" ,
"OnBeforeEventAdd" ,
[ "MailEventHandler" , "onBeforeEventAddHandler" ]
);
class MailEventHandler
{
static function onBeforeEventAddHandler (& $event , & $lid , & $arFields , & $message_id , & $files )
{
if (strpos( $event , 'FORM_FILLING_' ) !== false ) {
if (!is_array( $files )) $files = [];
foreach ( $arFields as $key => $field ) {
if ( $link = self ::getLinkFromField( $field )) {
if ( $arFile = self ::getFileFromLink( $link )) {
$files [] = $arFile [ 'FILE_ID' ];
}
}
}
}
}
static function getLinkFromField ( $field )
{
preg_match( "/href=[\"'](.*form_show_file.*)[\"']/" , $field , $out );
return ( $out [ 1 ] ?: false );
}
static function getFileFromLink ( $link )
{
$uri = new \Bitrix\Main\Web\Uri( $link );
parse_str( $uri ->getQuery(), $query );
return CFormResult::GetFileByHash( $query [ "rid" ], $query [ "hash" ]);
}
} |
Этот код в init.php сделает так, что все файлы, которые выбрал пользователь попадут в атач письма (а не только как ссылка на скачивание). Работает именно с вебформами. |
Перестал работать этот способ. Не подскажите в чем может быть проблема? У Вас работает?