Your IP : 172.28.240.42


Current Path : /var/www/html/clients/biblio.e-nkama.ru/bitrix/modules/artismedia.faq/
Upload File :
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;

    }
}
?>