Current Path : /var/www/html/clients/biblio.e-nkama.ru/bitrix/modules/artismedia.faq/ |
Current File : /var/www/html/clients/biblio.e-nkama.ru/bitrix/modules/artismedia.faq/include.php |
<? global $MESS; IncludeModuleLangFile(__FILE__); Class CArtismediaFAQ { function Send($event_name, $site_id, $arFields, $Duplicate = "Y", $message_id = false, $user_mess = false, $mime_boundary = false, $arFieldsCodeName = array(), $arParams = array()) { $strFields = $strFieldsNames = $SITE_NAME = ""; $bReturn = false; global $DB; $arFilter = Array( "TYPE_ID" => $event_name, "SITE_ID" => $site_id, "ACTIVE" => "Y", ); if ($message_id) $arFilter['ID'] = $message_id; $arMess = array(); $rsMess = CEventMessage::GetList($by = "id", $order = "asc", $arFilter); while ($obMess = $rsMess->Fetch()) $arMess[] = $obMess; $rs_sites = CSite::GetList($by = "sort", $order = "desc"); while ($ar_site = $rs_sites->Fetch()) $arSites[$ar_site['ID']] = $ar_site; if (count($arSites) > 1 && $site_id) $SITE_NAME = $arSites[$site_id]['SITE_NAME']; else $SITE_NAME = COption::GetOptionString("main", "site_name", $GLOBALS["SERVER_NAME"]); if (!empty($arMess)) { foreach ($arMess as $k => $v) { $sFilesFields = $subject = ''; $email_to = ($v['EMAIL_TO'] == '#EMAIL_TO#') ? $arFields['EMAIL_TO'] : $v['EMAIL_TO']; $email_from = !$user_mess ? (($v['EMAIL_FROM'] == '#DEFAULT_EMAIL_FROM#') ? $arFields['DEFAULT_EMAIL_FROM'] : $v['EMAIL_FROM']) : $arFields['EMAIL_FROM']; if ($v['BODY_TYPE'] == 'text') $v['BODY_TYPE'] = 'plain'; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"{$mime_boundary}\"\n"; $headers .= "From: {$email_from}\n"; $headers .= "Reply-To: {$email_from}\n"; if (!empty($arFields)) { if (!empty($arFieldsCodeName)) { $i = 0; $cnt = count($arFieldsCodeName); foreach ($arFieldsCodeName as $code => $name) { $i++; if (strlen($arFields[$code])) { if ($v['BODY_TYPE'] == 'html') { $strFieldsNames .= "<b>" . $name . "</b><br>" . $arFields[$code] . "<br><br>"; } else { $strFieldsNames .= $name . "\n" . $arFields[$code]; if ($i != $cnt) $strFieldsNames .= "\n\n"; } } } } $subject = str_replace($search, $replace, $v['SUBJECT']); if (strpos($strFields, '#SITE_NAME#') !== false) $strFields = str_replace('#SITE_NAME#', $SITE_NAME, $strFields); if ($v['BODY_TYPE'] == 'html') { $message_header = '<html> <head> <meta http-equiv="content-type" content="text/html; charset=' . SITE_CHARSET . '"> </head> <body text="#000000" bgcolor="#FFFFFF"> '; $message_footer = ' </body></html>'; $strFields = $message_header . $strFields . $message_footer; } else { $strFields = $strFieldsNames; } if (strlen($strFieldsNames)) { if (!$bFindFilesMacros) $strFields = str_replace('#WORK_AREA#', '#WORK_AREA#' . $sFilesFields, $strFields); $strFields = str_replace('#WORK_AREA#', $strFieldsNames, $strFields); } } // multipart boundary $message = "--{$mime_boundary}\n"; $message .= "Content-Type: text/" . $v['BODY_TYPE'] . "; charset=" . SITE_CHARSET . "\n"; $message .= "Content-Transfer-Encoding: 8bit\n\n"; $message .= htmlspecialcharsback($strFields) . "\n\n"; //iso-8859-1 :: text/plain $message .= "--{$mime_boundary}--"; if (strlen($SITE_NAME)) $subject = str_replace('#SITE_NAME#', $SITE_NAME, $subject); $subject = "=?" . SITE_CHARSET . "?B?" . base64_encode($subject) . "?="; foreach ($arParams["~EMAIL_TO"] as $emails) { if (!empty($emails)) { if (bxmail($emails, $subject, $message, $headers)) { if (!$user_mess) { foreach (GetModuleEvents('artismedia.faq', "OnAfterEmailSend", true) as $arEvent) ExecuteModuleEventEx($arEvent, array(&$event_name, &$site_id, &$arFields, &$message_id)); } $bReturn = true; } else { return false; } } } } if ($bReturn) return true; } else return false; } } ?>