Пример #1
0
 function sendOnAfterResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID = false, $CHECK_RIGHTS = 'Y')
 {
     $NEW_STATUS_ID = intval($NEW_STATUS_ID);
     $dbRes = CForm::GetByID($WEB_FORM_ID);
     if (!($arForm = $dbRes->Fetch())) {
         return;
     }
     CTimeZone::Disable();
     $dbRes = CFormResult::GetByID($RESULT_ID);
     CTimeZone::Enable();
     if (!($arResult = $dbRes->Fetch()) || !$arResult['USER_ID']) {
         return;
     }
     $dbRes = CUser::GetByID($arResult['USER_ID']);
     if (!($arUser = $dbRes->Fetch())) {
         return;
     }
     if (!$NEW_STATUS_ID) {
         $NEW_STATUS_ID = CFormStatus::GetDefault($WEB_FORM_ID);
     }
     $dbRes = CFormStatus::GetByID($NEW_STATUS_ID);
     if (!($arStatus = $dbRes->Fetch()) || strlen($arStatus['MAIL_EVENT_TYPE']) <= 0) {
         return;
     }
     $arTemplates = CFormStatus::GetMailTemplateArray($NEW_STATUS_ID);
     if (!is_array($arTemplates) || count($arTemplates) <= 0) {
         return;
     }
     $arEventFields = array("EMAIL_TO" => $arUser['EMAIL'], "RS_FORM_ID" => $arForm["ID"], "RS_FORM_NAME" => $arForm["NAME"], "RS_FORM_VARNAME" => $arForm["SID"], "RS_FORM_SID" => $arForm["SID"], "RS_RESULT_ID" => $arResult["ID"], "RS_DATE_CREATE" => $arResult["DATE_CREATE"], "RS_USER_ID" => $arResult['USER_ID'], "RS_USER_EMAIL" => $arUser['EMAIL'], "RS_USER_NAME" => $arUser["NAME"] . " " . $arUser["LAST_NAME"], "RS_STATUS_ID" => $arStatus["ID"], "RS_STATUS_NAME" => $arStatus["TITLE"]);
     $dbRes = CEventMessage::GetList($by = "id", $order = "asc", array('ID' => implode('|', $arTemplates), "ACTIVE" => "Y", "EVENT_NAME" => $arStatus["MAIL_EVENT_TYPE"]));
     while ($arTemplate = $dbRes->Fetch()) {
         CEvent::Send($arTemplate["EVENT_NAME"], $arTemplate["SITE_ID"], $arEventFields, "Y", $arTemplate["ID"]);
     }
 }
Пример #2
0
 /**
  * Creates events for sending e-mail.
  * @return bool
  */
 public static function installEvents()
 {
     $dbEvent = \CEventMessage::GetList($b = "ID", $order = "ASC", array("EVENT_NAME" => "SALE_EBAY_ERROR"));
     if (!$dbEvent->Fetch()) {
         $langs = \CLanguage::GetList($b = "", $o = "");
         while ($lang = $langs->Fetch()) {
             $lid = $lang["LID"];
             $obEventType = new \CEventType();
             $obEventType->Add(array("EVENT_NAME" => "SALE_EBAY_ERROR", "NAME" => Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_ERROR"), "LID" => $lid, "DESCRIPTION" => "\n\t\t\t\t\t#ERROR_TYPE# - " . Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_ERROR_TYPE") . "\n\t\t\t\t\t#ERROR_DETAILS# - " . Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_ERROR_DETAIL") . "\n\t\t\t\t\t#EMAIL_FROM# - " . Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_FROM") . "\n\t\t\t\t\t#EMAIL_TO# - " . Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_TO") . "\n\t\t\t\t\t#BCC# - " . Loc::getMessage("SALE_EBAY_HLP_EVNT_TYPE_BCC")));
             $arSites = array();
             $sites = \CSite::GetList($b = "", $o = "", array("LANGUAGE_ID" => $lid));
             while ($site = $sites->Fetch()) {
                 $arSites[] = $site["LID"];
             }
             if (count($arSites) > 0) {
                 $arr = array();
                 $arr["ACTIVE"] = "Y";
                 $arr["EVENT_NAME"] = "SALE_EBAY_ERROR";
                 $arr["LID"] = $arSites;
                 $arr["EMAIL_FROM"] = "#DEFAULT_EMAIL_FROM#";
                 $arr["EMAIL_TO"] = "#EMAIL_TO#";
                 $arr["BCC"] = "#BCC#";
                 $arr["SUBJECT"] = "#SITE_NAME# " . Loc::getMessage("SALE_EBAY_EVNT_MSG_SBUJ']") . ".";
                 $arr["BODY_TYPE"] = "text";
                 $arr["MESSAGE"] = Loc::getMessage("SALE_EBAY_EVNT_MSG_INFO_SITE") . " #SITE_NAME#.\n\n" . Loc::getMessage("SALE_EBAY_EVNT_MSG") . ":\n\n" . "#ERROR_TYPE#\n\n" . "#ERROR_DETAILS#";
                 $obTemplate = new \CEventMessage();
                 $obTemplate->Add($arr);
             }
         }
     }
     return true;
 }
Пример #3
0
		function InstallDB($arParams = array())
		{
			RegisterModuleDependences('main', 'OnBuildGlobalMenu', self::MODULE_ID, 'CIpdesignK', 'OnBuildGlobalMenu');
			$arsites = array();
			$rsSites = CSite::GetList($by="sort", $order="desc", false);
			while ($arSite = $rsSites->Fetch()){
				$arsites[] = $arSite['ID'];
			}
			$arFilter = array(
	    	"TYPE_ID" => "SENDWISHLIST",
	    );
			$rsET = CEventType::GetList($arFilter);
			$arET = $rsET->Fetch();
			if(empty($arET)){
				$et = new CEventType;
				$arMessageFields = array("USER_ID" => $UserProduct['USER']['ID'],
														 "USER_NAME" => $UserProduct['USER']["NAME"].' '.$UserProduct['USER']["LAST_NAME"],
														 "USER_EMAIL" => $UserProduct['USER']["EMAIL"],
														 "PRODUCTS_LIST" => $strListProduct);
				$DESCRIPTION = '#USER_ID# - '.GetMessage("IT_BASKET_SENDER_USER_ID");
				$DESCRIPTION .= '\n#USER_NAME# - '.GetMessage("IT_BASKET_SENDER_USER_NAME");
				$DESCRIPTION .= '\n#USER_EMAIL# - '.GetMessage("IT_BASKET_SENDER_USER_EMAIL");
				$DESCRIPTION .= '\n#PRODUCTS_LIST# - '.GetMessage("IT_BASKET_SENDER_PRODUCTS_LIST");
		    $sendType = $et->Add(array(
		        "LID"           => 'ru',
		        "EVENT_NAME"    => "SENDWISHLIST",
		        "NAME"          => GetMessage("IT_SENDER_TYPE_NAME"),
		        "DESCRIPTION"   => $DESCRIPTION
		        ));
			}else{
				$sendType = $arET['ID'];
			}
			$rsMess = CEventMessage::GetList($by="site_id", $order="desc", array('TYPE' => 'SENDWISHLIST'));
			$arMess = $rsMess->Fetch();
			if(empty($arMess)){
				$message = '';
				$message .= '<h2>'.GetMessage("IT_BASKET_SENDER_TEMPLATE_HELLO").',#USER_NAME#</h2>';
				$message .= '<p>'.GetMessage("IT_BASKET_SENDER_TEMPLATE_WHISHLIST").'</p>';
				$message .= '<hr />';
				$message .= '#PRODUCTS_LIST#';
				$arFields = array("ACTIVE" => 'Y',
												 "EVENT_NAME" => "SENDWISHLIST",
												 "LID" => $arsites,
												 "EMAIL_FROM" => "#DEFAULT_EMAIL_FROM#",
												 "EMAIL_TO" => "#USER_EMAIL#",
												 "BCC" => "",
												 "MESSAGE" => $message,
												 "BODY_TYPE" => "html",
												 "SUBJECT" => GetMessage("IT_SENDER_MESSAGE_SUBJECT"). " #SERVER_NAME# ",
											 );
				$emess = new CEventMessage;
				if($emess->Add($arFields)){

				}
			};
			RegisterModuleDependences("sale", "OnCondSaleActionsControlBuildList", self::MODULE_ID, "CSaleActionCtrlBasketMain", "GetControlDescr");
			RegisterModuleDependences("main", "OnBeforeProlog", "main", "", "", 110, '/modules/ipdesign.k1785/itdiscount.php');
			return true;
		}
 function __construct()
 {
     $eventMessage = new CEventMessage();
     $getList = $eventMessage->GetList($by, $order);
     while ($data = $getList->Fetch()) {
         $this->items[] = $data;
     }
 }
Пример #5
0
	function GetAdditionalFields($id = 0){
		$arFieldList = array(
			"ID" => "SEND_MAIL",
			"SIZE" => 5,
			"TYPE" => "SELECT",
			"CTYPE" => "SINGLE",
			"VALUES" => array()					
		);
		$curEventMessage = array();
		$arFilter = array(
			"ACTIVE" => "Y"	
		);
		if($id > 0){
			$arFilter["ID"] = $id;
		}
		//echo "<pre>";print_r($arFilter);echo "</pre>";
		$rsEmailTemplates = CEventMessage::GetList($by, $order, $arFilter);
		if($arEmailTemplate = $rsEmailTemplates->GetNext()){
			//echo "<pre>";print_r($arEmailTemplate);echo "</pre>";
			$arFieldList["VALUES"][] = array(
				"ID" => $arEmailTemplate["ID"],
				"NAME" => $arEmailTemplate["EVENT_TYPE"]
			);
			$curEventMessage = array(
				"ID" => $arEmailTemplate["ID"],
				"TYPE_ID" => $arEmailTemplate["EVENT_NAME"]
			);			
		}
		if($id > 0 && !empty($curEventMessage)){
			$rsEmailEventType = CEventType::GetList(
				array(
					"TYPE_ID" => $curEventMessage["TYPE_ID"],
			    	"LID"     => "ru"
				)
			);
			if($arEmailEventType = $rsEmailEventType->Fetch()){
				//echo "<pre>";print_r($arEmailEventType);echo "</pre>";
				preg_match_all('/#([A-Za-z_]+)#/iu', $arEmailEventType["DESCRIPTION"], $out);
				//echo "<pre>";print_r($out);echo "</pre>";die;
				if(!empty($out[0])){
					return implode(",",$out[0]);
				}				
			}else{
				return "";
			}
			//return ($arEmailEventType = $rsEmailEventType->Fetch() ? $arEmailEventType["DESCRIPTION"] : "");			
		}else{
			return "";
		}
	}
Пример #6
0
 public function updateEventMessageByFilter($filter, $fields)
 {
     $by = "site_id";
     $order = "desc";
     /** @noinspection PhpDynamicAsStaticMethodCallInspection */
     $dbRes = \CEventMessage::GetList($by, $order, $filter);
     while ($aItem = $dbRes->getNext()) {
         $event = new \CEventMessage();
         if (!$event->Update($aItem["ID"], $fields)) {
             $this->throwException(__METHOD__, $event->LAST_ERROR);
         }
     }
     return true;
 }
Пример #7
0
 function UnInstallEvent()
 {
     global $DB;
     //Удаляем тип почтового события
     $et = new CEventType();
     $et->Delete($this->EVENT_NAME);
     //Находим все почтовые шаблоные которые были привязаны к нашему типу
     $DB->StartTransaction();
     $emessage = new CEventMessage();
     $rsMess = CEventMessage::GetList($by = "site_id", $order = "desc", array("TYPE_ID" => $this->EVENT_NAME));
     //рекурсивно по одному удаляем найденные шаблоны
     while ($events = $rsMess->GetNext()) {
         $emessage->Delete(intval($events["ID"]));
         $DB->Commit();
     }
 }
Пример #8
0
 if ($_REQUEST['action_target'] == 'selected') {
     $rsData = CEventType::GetListEx(array($by => $order), $arFilter, array("type" => "none"));
     while ($arRes = $rsData->Fetch()) {
         $arID[] = $arRes['EVENT_NAME'];
     }
 }
 foreach ($arID as $ID) {
     if (strLen($ID) <= 0) {
         continue;
     }
     switch ($_REQUEST['action']) {
         case "delete":
         case "clean":
             $DB->StartTransaction();
             $ID = array("EVENT_NAME" => $ID);
             $db_res = CEventMessage::GetList($by, $order, $ID);
             if ($db_res && ($res = $db_res->Fetch())) {
                 do {
                     if (!CEventMessage::Delete($res["ID"])) {
                         $error = true;
                         break;
                     }
                 } while ($res = $db_res->Fetch());
             }
             if ($error || !CEventType::Delete($ID)) {
                 $DB->Rollback();
                 $lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID);
             } else {
                 $DB->Commit();
             }
             break;
Пример #9
0
<?php

/*
 * This file is part of the Studio Fact package.
 *
 * (c) Kulichkin Denis (onEXHovia) <*****@*****.**>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die;
}
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
$eventTypeList = array();
$eventType = CEventType::GetList(array('LID' => SITE_ID));
while ($item = $eventType->GetNext()) {
    $eventTypeList[$item['EVENT_NAME']] = sprintf('[%s] %s', $item['EVENT_NAME'], $item['NAME']);
}
$eventTemplateList = array();
if (strlen($arCurrentValues['EVENT_NAME']) > 0) {
    $eventTemplate = CEventMessage::GetList($o = '', $b = '', array('EVENT_NAME' => $arCurrentValues['EVENT_NAME']));
    while ($item = $eventTemplate->GetNext()) {
        $eventTemplateList[$item['ID']] = sprintf('[%d] %s', $item['ID'], $item['SUBJECT']);
    }
}
$arComponentParameters = array('PARAMETERS' => array('ID' => array('PARENT' => 'BASE', 'NAME' => Loc::getMessage('ID'), 'TYPE' => 'STRING'), 'TYPE' => array('PARENT' => 'BASE', 'NAME' => Loc::getMessage('TYPE'), 'TYPE' => 'LIST', 'VALUES' => array('IBLOCK' => Loc::getMessage('TYPE_IBLOCK'), 'HLBLOCK' => Loc::getMessage('TYPE_HLBLOCK'), 'CUSTOM' => Loc::getMessage('TYPE_CUSTOM'))), 'ALIAS_FIELDS' => array('NAME' => Loc::getMessage('ALIAS_FIELDS'), 'TYPE' => 'CUSTOM', 'ADDITIONAL_VALUES' => 'Y', 'MULTIPLE' => 'Y', 'VALUES' => array()), 'DISPLAY_FIELDS' => array('NAME' => Loc::getMessage('DISPLAY_FIELDS'), 'TYPE' => 'STRING', 'ADDITIONAL_VALUES' => 'Y', 'MULTIPLE' => 'Y', 'VALUES' => array()), 'ATTACH_FIELDS' => array('NAME' => Loc::getMessage('ATTACH_FIELDS'), 'TYPE' => 'STRING', 'ADDITIONAL_VALUES' => 'Y', 'MULTIPLE' => 'Y', 'VALUES' => array()), 'EVENT_NAME' => array('NAME' => Loc::getMessage('EVENT_NAME'), 'TYPE' => 'LIST', 'ADDITIONAL_VALUES' => 'Y', 'VALUES' => $eventTypeList, 'REFRESH' => 'Y', 'DEFAULT' => ''), 'EVENT_TEMPLATE' => array('NAME' => Loc::getMessage('EVENT_TEMPLATE'), 'TYPE' => 'LIST', 'VALUES' => $eventTemplateList, 'ADDITIONAL_VALUES' => 'Y', 'DEFAULT' => ''), 'EVENT_TYPE' => array('NAME' => Loc::getMessage('EVENT_TYPE'), 'TYPE' => 'STRING', 'DEFAULT' => ''), 'BUILDER' => array('NAME' => Loc::getMessage('BUILDER'), 'TYPE' => 'STRING', 'DEFAULT' => ''), 'STORAGE' => array('NAME' => Loc::getMessage('STORAGE'), 'TYPE' => 'STRING', 'DEFAULT' => ''), 'VALIDATOR' => array('NAME' => Loc::getMessage('VALIDATOR'), 'TYPE' => 'STRING', 'DEFAULT' => ''), 'AJAX' => array('NAME' => Loc::getMessage('AJAX'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => ''), 'USE_CAPTCHA' => array('NAME' => Loc::getMessage('USE_CAPTCHA'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'Y'), 'USE_CSRF' => array('NAME' => Loc::getMessage('USE_CSRF'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'Y'), 'REDIRECT_PATH' => array('NAME' => Loc::getMessage('REDIRECT_PATH'), 'TYPE' => 'STRING', 'DEFAULT' => ''), 'CACHE_TIME' => array('DEFAULT' => 36000000), 'CACHE_GROUPS' => array('PARENT' => 'CACHE_SETTINGS', 'NAME' => Loc::getMessage('CACHE_GROUPS'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'Y')));
Пример #10
0
 function UnInstallEvents()
 {
     $dbEvent = CEventMessage::GetList($by, $order, array("EVENT_NAME" => "LDAP_USER_CONFIRM"));
     while ($arEvent = $dbEvent->Fetch()) {
         CEventMessage::Delete($arEvent["ID"]);
     }
     $eventType = new CEventType();
     $eventType->Delete("LDAP_USER_CONFIRM");
     return true;
 }
Пример #11
0
 $arStatusLang = CSaleStatus::GetLangByID($ID, $lid);
 $template = str_replace("#SITE_CHARSET#", $lang["CHARSET"], $templateGeneral);
 $dbEventType = $eventType->GetList(array("EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "LID" => $lid));
 if (!($arEventType = $dbEventType->Fetch())) {
     $str = "";
     $str .= "#ORDER_ID# - " . GetMessage("SKGS_ORDER_ID") . "\n";
     $str .= "#ORDER_DATE# - " . GetMessage("SKGS_ORDER_DATE") . "\n";
     $str .= "#ORDER_STATUS# - " . GetMessage("SKGS_ORDER_STATUS") . "\n";
     $str .= "#EMAIL# - " . GetMessage("SKGS_ORDER_EMAIL") . "\n";
     $str .= "#ORDER_DESCRIPTION# - " . GetMessage("SKGS_STATUS_DESCR") . "\n";
     $str .= "#TEXT# - " . GetMessage("SKGS_STATUS_TEXT") . "\n";
     $str .= "#SALE_EMAIL# - " . GetMessage("SKGS_SALE_EMAIL") . "\n";
     $eventTypeID = $eventType->Add(array("LID" => $lid, "EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "NAME" => GetMessage("SKGS_CHANGING_STATUS_TO") . " \"" . $arStatusLang["NAME"] . "\"", "DESCRIPTION" => $str));
 }
 if (count($arSites) > 0) {
     $dbEventMessage = $eventMessage->GetList($b = "", $o = "", array("EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "SITE_ID" => $arSites));
     if (!($arEventMessage = $dbEventMessage->Fetch())) {
         $message = GetMessage("SKGS_STATUS_MAIL_BODY1");
         $message .= "------------------------------------------\n\n";
         $message .= GetMessage("SKGS_STATUS_MAIL_BODY2");
         $message .= GetMessage("SKGS_STATUS_MAIL_BODY3");
         $message .= "#ORDER_STATUS#\n";
         $message .= "#ORDER_DESCRIPTION#\n";
         $message .= "#TEXT#\n\n";
         $message .= GetMessage("SKGS_STATUS_MAIL_BODY4");
         $message .= "#SITE_NAME#\n";
         $message = str_replace(array("#TITLE#", "#SUB_TITLE#", "#TEXT#", "#FOOTER_BR#", "#FOOTER_SHOP#"), array(GetMessage("SKGS_STATUS_MAIL_HTML_TITLE"), GetMessage("SKGS_STATUS_MAIL_HTML_SUB_TITLE"), str_replace("\n", "<br />\n", $message), GetMessage("SMAIL_FOOTER_BR"), GetMessage("SMAIL_FOOTER_SHOP")), $template);
         $arFields = array("ACTIVE" => "Y", "EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "LID" => $arSites, "EMAIL_FROM" => "#SALE_EMAIL#", "EMAIL_TO" => "#EMAIL#", "SUBJECT" => GetMessage("SKGS_STATUS_MAIL_SUBJ"), "MESSAGE" => $message, "BODY_TYPE" => "html");
         $eventMessageID = $eventMessage->Add($arFields);
     }
 }
Пример #12
0
	public static function GetTemplateList($STATUS_ID)
	{
		$err_mess = (CAllForm::err_mess())."<br>Function: GetTemplateList<br>Line: ";
		global $DB, $strError;

		$STATUS_ID = intval($STATUS_ID);
		if ($STATUS_ID > 0)
		{
			$arrSITE = array();
			$strSql = "
SELECT
	F.MAIL_EVENT_TYPE,
	FS.SITE_ID
FROM b_form_status F
INNER JOIN b_form_2_site FS ON (FS.FORM_ID = F.FORM_ID)
WHERE
	F.ID='".$STATUS_ID."'
";

			//echo '<pre>',$strSql,'</pre>';
			$z = $DB->Query($strSql,false,$err_mess.__LINE__);
			while ($zr = $z->Fetch())
			{
				$MAIL_EVENT_TYPE = $zr["MAIL_EVENT_TYPE"];
				$arrSITE[] = $zr["SITE_ID"];
			}

			if (strlen($MAIL_EVENT_TYPE) <= 0)
				return false;

			$arReferenceId = array();
			$arReference = array();
			$arFilter = Array(
				"ACTIVE"		=> "Y",
				"SITE_ID"		=> $arrSITE,
				"EVENT_NAME"	=> $MAIL_EVENT_TYPE
				);
			$e = CEventMessage::GetList($by="id", $order="asc", $arFilter);
			while ($er=$e->Fetch())
			{
				if (!in_array($er["ID"], $arReferenceId))
				{
					$arReferenceId[] = $er["ID"];
					$arReference[] = "(".$er["LID"].") ".TruncateText($er["SUBJECT"],50);
				}
			}

			$arr = array("reference"=>$arReference,"reference_id"=>$arReferenceId);
			return $arr;
		}
		return false;
	}
Пример #13
0
	/**
	 * <p>Создает почтовое событие для отсылки данных <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a> по e-mail. Возвращает "true" в случае успеха, в противном случае - "false".</p>
	 *
	 *
	 *
	 *
	 * @param int $result_id  ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>.
	 *
	 *
	 *
	 * @param mixed $template_id = false ID почтового шаблона.<br><br> Параметр необязательный. По умолчанию -
	 * "false" (будут использованы почтовые шаблоны из настроек
	 * соответствующей веб-формы).
	 *
	 *
	 *
	 * @return bool 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * $RESULT_ID = 189; // ID результата
	 * 
	 * // создадим почтовое событие для отсылки по EMail данных результата
	 * if (<b>CFormResult::Mail</b>($RESULT_ID))
	 * {
	 *     echo "Почтовое событие успешно создано.";
	 * }
	 * else // ошибка
	 * {
	 *     global $strError;
	 *     echo $strError;
	 * }
	 * ?&gt;
	 * </pre>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/mail.php
	 * @author Bitrix
	 */
	public static function Mail($RESULT_ID, $TEMPLATE_ID = false)
	{
		global $APPLICATION, $DB, $MESS, $strError;

		$err_mess = (CAllFormResult::err_mess())."<br>Function: Mail<br>Line: ";
		$RESULT_ID = intval($RESULT_ID);

		CTimeZone::Disable();
		$arrResult = CFormResult::GetDataByID($RESULT_ID, array(), $arrRES, $arrANSWER);
		CTimeZone::Enable();
		if ($arrResult)
		{
			$z = CForm::GetByID($arrRES["FORM_ID"]);
			if ($arrFORM = $z->Fetch())
			{
				$TEMPLATE_ID = intval($TEMPLATE_ID);

				$arrFormSites = CForm::GetSiteArray($arrRES["FORM_ID"]);
				$arrFormSites = (is_array($arrFormSites)) ? $arrFormSites : array();

				if (!defined('SITE_ID') || !in_array(SITE_ID, $arrFormSites))
					return true;

				$rs = CSite::GetList(($by="sort"), ($order="asc"), array('ID' => implode('|', $arrFormSites)));
				$arrSites = array();
				while ($ar = $rs->Fetch())
				{
					if ($ar["DEF"]=="Y") $def_site_id = $ar["ID"];
					$arrSites[$ar["ID"]] = $ar;
				}

				$arrFormTemplates = CForm::GetMailTemplateArray($arrRES["FORM_ID"]);
				$arrFormTemplates = (is_array($arrFormTemplates)) ? $arrFormTemplates : array();

				$arrTemplates = array();
				$rs = CEventMessage::GetList($by="id", $order="asc", array(
					"ACTIVE"		=> "Y",
					"SITE_ID"		=> SITE_ID,
					"EVENT_NAME"	=> $arrFORM["MAIL_EVENT_TYPE"]
					));

				while ($ar = $rs->Fetch())
				{
					if ($TEMPLATE_ID>0)
					{
						if ($TEMPLATE_ID == $ar["ID"])
						{
							$arrTemplates[$ar["ID"]] = $ar;
							break;
						}
					}
					elseif (in_array($ar["ID"],$arrFormTemplates)) $arrTemplates[$ar["ID"]] = $ar;
				}

				foreach($arrTemplates as $arrTemplate)
				{

					$OLD_MESS = $MESS;
					$MESS = array();
					IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/admin/form_mail.php", $arrSites[$arrTemplate["SITE_ID"]]["LANGUAGE_ID"]);

					$USER_AUTH = " ";
					if (intval($arrRES["USER_ID"])>0)
					{
						$w = CUser::GetByID($arrRES["USER_ID"]);
						$arrUSER = $w->Fetch();
						$USER_ID = $arrUSER["ID"];
						$USER_EMAIL = $arrUSER["EMAIL"];
						$USER_NAME = $arrUSER["NAME"]." ".$arrUSER["LAST_NAME"];
						if ($arrRES["USER_AUTH"]!="Y") $USER_AUTH="(".GetMessage("FORM_NOT_AUTHORIZED").")";
					}
					else
					{
						$USER_ID = GetMessage("FORM_NOT_REGISTERED");
						$USER_NAME = "";
						$USER_AUTH = "";
						$USER_EMAIL = "";
					}

					$arEventFields = array(
						"RS_FORM_ID"			=> $arrFORM["ID"],
						"RS_FORM_NAME"			=> $arrFORM["NAME"],
						"RS_FORM_VARNAME"		=> $arrFORM["SID"],
						"RS_FORM_SID"			=> $arrFORM["SID"],
						"RS_RESULT_ID"			=> $arrRES["ID"],
						"RS_DATE_CREATE"		=> $arrRES["DATE_CREATE"],
						"RS_USER_ID"			=> $USER_ID,
						"RS_USER_EMAIL"			=> $USER_EMAIL,
						"RS_USER_NAME"			=> $USER_NAME,
						"RS_USER_AUTH"			=> $USER_AUTH,
						"RS_STAT_GUEST_ID"		=> $arrRES["STAT_GUEST_ID"],
						"RS_STAT_SESSION_ID"	=> $arrRES["STAT_SESSION_ID"]
						);
					$w = CFormField::GetList($arrFORM["ID"], "ALL", $by, $order, array(), $is_filtered);
					while ($wr=$w->Fetch())
					{
						$answer = "";
						$answer_raw = '';
						if (is_array($arrResult[$wr["SID"]]))
						{
							//echo '<pre>'; print_r($wr); echo '</pre>';
							//echo '<pre>'; print_r($arrResult[$wr['SID']]);

							$bHasDiffTypes = false;
							$lastType = '';
							foreach ($arrResult[$wr['SID']] as $arrA)
							{
								if ($lastType == '') $lastType = $arrA['FIELD_TYPE'];
								elseif ($arrA['FIELD_TYPE'] != $lastType)
								{
									$bHasDiffTypes = true;
									break;
								}
							}

							foreach($arrResult[$wr["SID"]] as $arrA)
							{
								if ($wr['ADDITIONAL'] == 'Y')
									$arrA['FIELD_TYPE'] = $wr['FIELD_TYPE'];

								$USER_TEXT_EXIST = (strlen(trim($arrA["USER_TEXT"]))>0);
								$ANSWER_TEXT_EXIST = (strlen(trim($arrA["ANSWER_TEXT"]))>0);
								$ANSWER_VALUE_EXIST = (strlen(trim($arrA["ANSWER_VALUE"]))>0);
								$USER_FILE_EXIST = (intval($arrA["USER_FILE_ID"])>0);

								//echo 'USER_TEXT_EXIST '.$USER_TEXT_EXIST.' '.$USER_TEXT.'<br />';
								//echo 'ANSWER_TEXT_EXIST '.$ANSWER_TEXT_EXIST.' '.$ANSWER_TEXT.'<br />';
								//echo 'ANSWER_VALUE_EXIST '.$ANSWER_VALUE_EXIST.' '.$ANSWER_VALUE.'<br />';
								//echo 'USER_FILE_EXIST '.$USER_FILE_EXIST.' '.$USER_FILE.'<br />';

								if ($arrTemplate["BODY_TYPE"]=="html")
								{
									if (
										$bHasDiffTypes
										&&
										!$USER_TEXT_EXIST
										&&
										(
											$arrA['FIELD_TYPE'] == 'text'
											||
											$arrA['FIELD_TYPE'] == 'textarea'
										)
									)
										continue;

									if (strlen(trim($answer))>0) $answer .= "<br />";
									if (strlen(trim($answer_raw))>0) $answer_raw .= ",";

									if ($ANSWER_TEXT_EXIST)
										$answer .= $arrA["ANSWER_TEXT"].': ';

									switch ($arrA['FIELD_TYPE'])
									{
										case 'text':
										case 'textarea':
										case 'hidden':
										case 'date':
										case 'password':
										case 'integer':

											if ($USER_TEXT_EXIST)
											{
												$answer .= trim($arrA["USER_TEXT"]);
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'email':
										case 'url':

											if ($USER_TEXT_EXIST)
											{
												$answer .= '<a href="'.($arrA['FIELD_TYPE'] == 'email' ? 'mailto:' : '').trim($arrA["USER_TEXT"]).'">'.trim($arrA["USER_TEXT"]).'</a>';
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'checkbox':
										case 'multiselect':
										case 'radio':
										case 'dropdown':

											if ($ANSWER_TEXT_EXIST)
											{
												$answer = substr($answer, 0, -2).' ';
												$answer_raw .= $arrA['ANSWER_TEXT'];
											}

											if ($ANSWER_VALUE_EXIST)
											{
												$answer .= '('.$arrA['ANSWER_VALUE'].') ';
												if (!$ANSWER_TEXT_EXIST)
													$answer_raw .= $arrA['ANSWER_VALUE'];
											}

											if (!$ANSWER_VALUE_EXIST && !$ANSWER_TEXT_EXIST)
												$answer_raw .= $arrA['ANSWER_ID'];

											$answer .= '['.$arrA['ANSWER_ID'].']';

										break;

										case 'file':
										case 'image':

											if ($USER_FILE_EXIST)
											{
												$f = CFile::GetByID($arrA["USER_FILE_ID"]);
												if ($fr = $f->Fetch())
												{
													$file_size = CFile::FormatSize($fr["FILE_SIZE"]);
													$url = ($APPLICATION->IsHTTPS() ? "https://" : "http://").$_SERVER["HTTP_HOST"]. "/bitrix/tools/form_show_file.php?rid=".$RESULT_ID. "&hash=".$arrA["USER_FILE_HASH"]."&lang=".LANGUAGE_ID;

													if ($arrA["USER_FILE_IS_IMAGE"]=="Y")
													{
														$answer .= "<a href=\"$url\">".$arrA["USER_FILE_NAME"]."</a> [".$fr["WIDTH"]." x ".$fr["HEIGHT"]."] (".$file_size.")";
													}
													else
													{
														$answer .= "<a href=\"$url&action=download\">".$arrA["USER_FILE_NAME"]."</a> (".$file_size.")";
													}

													$answer_raw .= $arrA['USER_FILE_NAME'];
												}
											}

										break;
									}
								}
								else
								{
									//echo $bHasDiffTypes.'*'.$USER_TEXT_EXIST.'<br />';

									if (
										$bHasDiffTypes
										&&
										!$USER_TEXT_EXIST
										&&
										(
											$arrA['FIELD_TYPE'] == 'text'
											||
											$arrA['FIELD_TYPE'] == 'textarea'
										)
									)
										continue;

									if (strlen(trim($answer)) > 0) $answer .= "\n";
									if (strlen(trim($answer_raw)) > 0) $answer_raw .= ",";

									if ($ANSWER_TEXT_EXIST)
										$answer .= $arrA["ANSWER_TEXT"].': ';

									switch ($arrA['FIELD_TYPE'])
									{
										case 'text':
										case 'textarea':
										case 'email':
										case 'url':
										case 'hidden':
										case 'date':
										case 'password':
										case 'integer':

											if ($USER_TEXT_EXIST)
											{
												$answer .= trim($arrA["USER_TEXT"]);
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'checkbox':
										case 'multiselect':
										case 'radio':
										case 'dropdown':

											if ($ANSWER_TEXT_EXIST)
											{
												$answer = substr($answer, 0, -2).' ';
												$answer_raw .= $arrA['ANSWER_TEXT'];
											}

											if ($ANSWER_VALUE_EXIST)
											{
												$answer .= '('.$arrA['ANSWER_VALUE'].') ';
												if (!$ANSWER_TEXT_EXIST)
												{
													$answer_raw .= $arrA['ANSWER_VALUE'];
												}
											}

											if (!$ANSWER_VALUE_EXIST && !$ANSWER_TEXT_EXIST)
											{
												$answer_raw .= $arrA['ANSWER_ID'];
											}

											$answer .= '['.$arrA['ANSWER_ID'].']';

										break;

										case 'file':
										case 'image':

											if ($USER_FILE_EXIST)
											{
												$f = CFile::GetByID($arrA["USER_FILE_ID"]);
												if ($fr = $f->Fetch())
												{
													$file_size = CFile::FormatSize($fr["FILE_SIZE"]);
													$url = ($APPLICATION->IsHTTPS() ? "https://" : "http://").$_SERVER["HTTP_HOST"]. "/bitrix/tools/form_show_file.php?rid=".$RESULT_ID. "&hash=".$arrA["USER_FILE_HASH"]."&action=download&lang=".LANGUAGE_ID;

													if ($arrA["USER_FILE_IS_IMAGE"]=="Y")
													{
														$answer .= $arrA["USER_FILE_NAME"]." [".$fr["WIDTH"]." x ".$fr["HEIGHT"]."] (".$file_size.")\n".$url;
													}
													else
													{
														$answer .= $arrA["USER_FILE_NAME"]." (".$file_size.")\n".$url."&action=download";
													}
												}

												$answer_raw .= $arrA['USER_FILE_NAME'];
											}

										break;
									}
								}
							}
						}

						$arEventFields[$wr["SID"]] = (strlen($answer)<=0) ? " " : $answer;
						$arEventFields[$wr["SID"].'_RAW'] = (strlen($answer_raw)<=0) ? " " : $answer_raw;
					}

					CEvent::Send($arrTemplate["EVENT_NAME"], $arrTemplate["SITE_ID"], $arEventFields, "Y", $arrTemplate["ID"]);
					$MESS = $OLD_MESS;
				} //foreach($arrTemplates as $arrTemplate)
				return true;
			}
			else $strError .= GetMessage("FORM_ERROR_FORM_NOT_FOUND")."<br>";
		}
		else $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND")."<br>";
		return false;
	}
Пример #14
0
    echo GetMessage("SUPPORT_MAIL_SUBJECT_TEMPLATE");
    ?>
<br>
	<?php 
    echo GetMessage("SUPPORT_MAIL_SUBJECT_TEMPLATE_NOTES");
    ?>
</td>
</tr>

<tr valign="top">
	<td colspan="2" align="center">
	<?php 
    if (!isset($W_SUPPORT_SUBJECT)) {
        $w_subject = "";
        $arrTemplate = array();
        $db_res = CEventMessage::GetList($o, $b, array("ACTIVE" => "Y", "EVENT_NAME" => "TICKET_NEW_FOR_AUTHOR || TICKET_NEW_FOR_TECHSUPPORT || TICKET_CHANGE_FOR_TECHSUPPORT || TICKET_CHANGE_BY_AUTHOR_FOR_AUTHOR || TICKET_CHANGE_BY_SUPPORT_FOR_AUTHOR", "LID" => $MAILBOX_LID));
        while ($ar_res = $db_res->Fetch()) {
            $arrTemplate[] = $ar_res["SUBJECT"];
        }
        $arrTemplate = array_unique($arrTemplate);
        if (is_array($arrTemplate) && count($arrTemplate) > 0) {
            foreach ($arrTemplate as $subject) {
                $subject = preg_quote($subject, "/");
                $subject = str_replace("#ID#", "([0-9]+)", $subject);
                $subject = preg_replace("/#[-A-Z_0-9]+#/i" . BX_UTF_PCRE_MODIFIER, ".*?", $subject);
                $w_subject .= $subject . "\r\n";
            }
            $W_SUPPORT_SUBJECT = $w_subject;
        }
    }
    ?>
Пример #15
0
                    $lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID);
                } else {
                    $DB->Commit();
                }
                break;
            case "activate":
            case "deactivate":
                $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N");
                if (!$emessage->Update($ID, $arFields)) {
                    $lAdmin->AddGroupError(GetMessage("MAIN_EDIT_ERROR") . ':' . $emessage->LAST_ERROR, $ID);
                }
                break;
        }
    }
}
$rsData = CEventMessage::GetList($by, $order, $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
// LIST
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES")));
// Header
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true, "align" => "right"), array("id" => "TIMESTAMP_X", "content" => GetMessage('TIMESTAMP'), "default" => true, "align" => "center"), array("id" => "ACTIVE", "content" => GetMessage('ACTIVE'), "sort" => "active", "default" => true, "align" => "center"), array("id" => "LID", "content" => GetMessage('LANG'), "default" => true, "align" => "center"), array("id" => "EVENT_NAME", "content" => GetMessage("EVENT_TYPE"), "sort" => "event_name", "default" => true), array("id" => "EVENT_TYPE", "content" => GetMessage("EVENT_TYPE")), array("id" => "SUBJECT", "content" => GetMessage('SUBJECT'), "sort" => "subject", "default" => true), array("id" => "EMAIL_FROM", "content" => GetMessage("F_FROM"), "sort" => "from"), array("id" => "EMAIL_TO", "content" => GetMessage("F_TO"), "sort" => "to"), array("id" => "BCC", "content" => GetMessage("F_BCC"), "sort" => "bcc"), array("id" => "BODY_TYPE", "content" => GetMessage("F_BODY_TYPE"), "sort" => "body_type")));
$arText_HTML = array("text" => GetMessage("MAIN_TEXT"), "html" => GetMessage("MAIN_HTML"));
$arEventTypes = array();
$rsType = CEventType::GetListEx(array(), array(), array("LID" => LANG, "type" => "type"));
while ($arType = $rsType->Fetch()) {
    $arEventTypes[$arType["EVENT_NAME"]] = $arType["NAME"];
}
// Body
while ($arRes = $rsData->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arRes, "message_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $f_ID, GetMessage("MAIN_ADMIN_MENU_EDIT_TITLE"));
Пример #16
0
 function StatusOrder($ID, $val)
 {
     global $DB, $USER;
     $ID = IntVal($ID);
     $val = trim($val);
     foreach (GetModuleEvents("sale", "OnSaleBeforeStatusOrder", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, $val)) === false) {
             return false;
         }
     }
     $arFields = array("STATUS_ID" => $val, "=DATE_STATUS" => $DB->GetNowFunction(), "EMP_STATUS_ID" => IntVal($USER->GetID()) > 0 ? IntVal($USER->GetID()) : false);
     $res = CSaleOrder::Update($ID, $arFields);
     unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]);
     foreach (GetModuleEvents("sale", "OnSaleStatusOrder", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $val));
     }
     CTimeZone::Disable();
     $arOrder = CSaleOrder::GetByID($ID);
     CTimeZone::Enable();
     $userEmail = "";
     $dbOrderProp = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ID, "PROP_IS_EMAIL" => "Y"));
     if ($arOrderProp = $dbOrderProp->Fetch()) {
         $userEmail = $arOrderProp["VALUE"];
     }
     if (strlen($userEmail) <= 0) {
         $dbUser = CUser::GetByID($arOrder["USER_ID"]);
         if ($arUser = $dbUser->Fetch()) {
             $userEmail = $arUser["EMAIL"];
         }
     }
     $dbSite = CSite::GetByID($arOrder["LID"]);
     $arSite = $dbSite->Fetch();
     $arStatus = CSaleStatus::GetByID($arOrder["STATUS_ID"], $arSite["LANGUAGE_ID"]);
     $arFields = array("ORDER_ID" => $ID, "ORDER_DATE" => $arOrder["DATE_INSERT_FORMAT"], "ORDER_STATUS" => $arStatus["NAME"], "EMAIL" => $userEmail, "ORDER_DESCRIPTION" => $arStatus["DESCRIPTION"], "TEXT" => "", "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER["SERVER_NAME"]));
     foreach (GetModuleEvents("sale", "OnSaleStatusEMail", true) as $arEvent) {
         $arFields["TEXT"] = ExecuteModuleEventEx($arEvent, array($ID, $arStatus["ID"]));
     }
     $eventName = "SALE_STATUS_CHANGED_" . $arOrder["STATUS_ID"];
     $bSend = true;
     foreach (GetModuleEvents("sale", "OnOrderStatusSendEmail", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$eventName, &$arFields, $arOrder["STATUS_ID"])) === false) {
             $bSend = false;
         }
     }
     if ($bSend) {
         $eventMessage = new CEventMessage();
         $dbEventMessage = $eventMessage->GetList($b = "", $o = "", array("EVENT_NAME" => $eventName, "SITE_ID" => $arOrder["LID"]));
         if (!($arEventMessage = $dbEventMessage->Fetch())) {
             $eventName = "SALE_STATUS_CHANGED";
         }
         $event = new CEvent();
         $event->Send($eventName, $arOrder["LID"], $arFields, "N");
     }
     return $res;
 }
Пример #17
0
 function SetMailTemplate($WEB_FORM_ID, $ADD_NEW_TEMPLATE = "Y", $old_SID = "", $bReturnFullInfo = false)
 {
     global $DB, $MESS, $strError;
     $err_mess = CAllForm::err_mess() . "<br>Function: SetMailTemplates<br>Line: ";
     $arrReturn = array();
     $WEB_FORM_ID = intval($WEB_FORM_ID);
     $q = CForm::GetByID($WEB_FORM_ID);
     if ($arrForm = $q->Fetch()) {
         $MAIL_EVENT_TYPE = "FORM_FILLING_" . $arrForm["SID"];
         if (strlen($old_SID) > 0) {
             $old_MAIL_EVENT_TYPE = "FORM_FILLING_" . $old_SID;
         }
         $et = new CEventType();
         $em = new CEventMessage();
         if (strlen($MAIL_EVENT_TYPE) > 0) {
             $et->Delete($MAIL_EVENT_TYPE);
         }
         $z = CLanguage::GetList($v1, $v2);
         $OLD_MESS = $MESS;
         while ($arLang = $z->Fetch()) {
             IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/admin/form_mail.php", $arLang["LID"]);
             $str = "";
             $str .= "#RS_FORM_ID# - " . GetMessage("FORM_L_FORM_ID") . "\n";
             $str .= "#RS_FORM_NAME# - " . GetMessage("FORM_L_NAME") . "\n";
             $str .= "#RS_FORM_SID# - " . GetMessage("FORM_L_SID") . "\n";
             $str .= "#RS_RESULT_ID# - " . GetMessage("FORM_L_RESULT_ID") . "\n";
             $str .= "#RS_DATE_CREATE# - " . GetMessage("FORM_L_DATE_CREATE") . "\n";
             $str .= "#RS_USER_ID# - " . GetMessage("FORM_L_USER_ID") . "\n";
             $str .= "#RS_USER_EMAIL# - " . GetMessage("FORM_L_USER_EMAIL") . "\n";
             $str .= "#RS_USER_NAME# - " . GetMessage("FORM_L_USER_NAME") . "\n";
             $str .= "#RS_USER_AUTH# - " . GetMessage("FORM_L_USER_AUTH") . "\n";
             $str .= "#RS_STAT_GUEST_ID# - " . GetMessage("FORM_L_STAT_GUEST_ID") . "\n";
             $str .= "#RS_STAT_SESSION_ID# - " . GetMessage("FORM_L_STAT_SESSION_ID") . "\n";
             $strFIELDS = "";
             $w = CFormField::GetList($WEB_FORM_ID, "ALL", $by, $order, array(), $is_filtered);
             while ($wr = $w->Fetch()) {
                 if (strlen($wr["RESULTS_TABLE_TITLE"]) > 0) {
                     $FIELD_TITLE = $wr["RESULTS_TABLE_TITLE"];
                 } elseif (strlen($wr["TITLE"]) > 0) {
                     $FIELD_TITLE = $wr["TITLE_TYPE"] == "html" ? htmlspecialcharsback(strip_tags($wr["TITLE"])) : $wr["TITLE"];
                 } else {
                     $FIELD_TITLE = TrimEx($wr["FILTER_TITLE"], ":");
                 }
                 $str .= "#" . $wr["SID"] . "# - " . $FIELD_TITLE . "\n";
                 $str .= "#" . $wr["SID"] . "_RAW# - " . $FIELD_TITLE . " (" . GetMessage('FORM_L_RAW') . ")\n";
                 $strFIELDS .= $FIELD_TITLE . "\n*******************************\n#" . $wr["SID"] . "#\n\n";
             }
             $et->Add(array("LID" => $arLang["LID"], "EVENT_NAME" => $MAIL_EVENT_TYPE, "NAME" => GetMessage("FORM_FILLING") . " \"" . $arrForm["SID"] . "\"", "DESCRIPTION" => $str));
         }
         // задаем новый тип событи¤ дл¤ старых шаблонов
         if (strlen($old_MAIL_EVENT_TYPE) > 0 && $old_MAIL_EVENT_TYPE != $MAIL_EVENT_TYPE) {
             $e = $em->GetList($by = "id", $order = "desc", array("EVENT_NAME" => $old_MAIL_EVENT_TYPE));
             while ($er = $e->Fetch()) {
                 $em->Update($er["ID"], array("EVENT_NAME" => $MAIL_EVENT_TYPE));
             }
             if (strlen($old_MAIL_EVENT_TYPE) > 0) {
                 $et->Delete($old_MAIL_EVENT_TYPE);
             }
         }
         if ($ADD_NEW_TEMPLATE == "Y") {
             $z = CSite::GetList($v1, $v2);
             while ($arSite = $z->Fetch()) {
                 $arrSiteLang[$arSite["ID"]] = $arSite["LANGUAGE_ID"];
             }
             $arrFormSite = CForm::GetSiteArray($WEB_FORM_ID);
             if (is_array($arrFormSite) && count($arrFormSite) > 0) {
                 foreach ($arrFormSite as $sid) {
                     IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/admin/form_mail.php", $arrSiteLang[$sid]);
                     $SUBJECT = "#SERVER_NAME#: " . GetMessage("FORM_FILLING_S") . " [#RS_FORM_ID#] #RS_FORM_NAME#";
                     $MESSAGE = "#SERVER_NAME#\n\n" . GetMessage("FORM_FILLING") . ": [#RS_FORM_ID#] #RS_FORM_NAME#\n-------------------------------------------------------\n\n" . GetMessage("FORM_DATE_CREATE") . "#RS_DATE_CREATE#\n" . GetMessage("FORM_RESULT_ID") . "#RS_RESULT_ID#\n" . GetMessage("FORM_USER") . "[#RS_USER_ID#] #RS_USER_NAME# #RS_USER_AUTH#\n" . GetMessage("FORM_STAT_GUEST_ID") . "#RS_STAT_GUEST_ID#\n" . GetMessage("FORM_STAT_SESSION_ID") . "#RS_STAT_SESSION_ID#\n\n\n{$strFIELDS}\n" . GetMessage("FORM_VIEW") . "\nhttp://#SERVER_NAME#/bitrix/admin/form_result_view.php?lang=" . $arrSiteLang[$sid] . "&WEB_FORM_ID=#RS_FORM_ID#&RESULT_ID=#RS_RESULT_ID#\n\n-------------------------------------------------------\n" . GetMessage("FORM_GENERATED_AUTOMATICALLY") . "\n\t\t\t\t\t\t";
                     // добавл¤ем новый шаблон
                     $arFields = array("ACTIVE" => "Y", "EVENT_NAME" => $MAIL_EVENT_TYPE, "LID" => $sid, "EMAIL_FROM" => "#DEFAULT_EMAIL_FROM#", "EMAIL_TO" => "#DEFAULT_EMAIL_FROM#", "SUBJECT" => $SUBJECT, "MESSAGE" => $MESSAGE, "BODY_TYPE" => "text");
                     $TEMPLATE_ID = $em->Add($arFields);
                     if ($bReturnFullInfo) {
                         $arrReturn[] = array('ID' => $TEMPLATE_ID, 'FIELDS' => $arFields);
                     } else {
                         $arrReturn[] = $TEMPLATE_ID;
                     }
                 }
             }
         }
         $MESS = $OLD_MESS;
     }
     return $arrReturn;
 }
Пример #18
0
 function DeleteTemplateMailEvent()
 {
     $arFilter = array("TYPE_ID" => "STALL_EMAIL", "ACTIVE" => "Y");
     $dbType = CEventMessage::GetList($by = "ID", $order = "DESC", $arFilter);
     while ($arType = $dbType->GetNext()) {
         $mEvent = new CEventMessage();
         $mEvent->Delete(intval($arType['ID']));
     }
 }
Пример #19
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$arFilter = array("ACTIVE" => "Y");
$rsMess = CEventMessage::GetList($by = "id", $order = "desc", $arFilter);
$arMess = array();
while ($arMessage = $rsMess->Fetch()) {
    if ($arMessage["EVENT_NAME"] == "SONET_NEW_MESSAGE") {
        continue;
    }
    $str_LID = array();
    $db_LID = CEventMessage::GetLang($arMessage["ID"]);
    while ($ar_LID = $db_LID->Fetch()) {
        $str_LID[] = $ar_LID["LID"];
    }
    if (!in_array(WIZARD_SITE_ID, $str_LID)) {
        $str_LID[] = WIZARD_SITE_ID;
    }
    $arMess[] = array("ID" => $arMessage["ID"], "ACTIVE" => $arMessage["ACTIVE"], "LID" => $str_LID);
}
$em = new CEventMessage();
foreach ($arMess as $arM) {
    $arFields = array("ACTIVE" => $arM["ACTIVE"], "LID" => $arM["LID"]);
    $res = $em->Update($arM["ID"], $arFields);
}
$em->Add(array("ACTIVE" => "Y", "EVENT_NAME" => "SONET_NEW_MESSAGE", "LID" => array(WIZARD_SITE_ID), "EMAIL_FROM" => "#DEFAULT_EMAIL_FROM#", "EMAIL_TO" => "#EMAIL_TO#", "SUBJECT" => GetMessage("EXTRANET_NEW_MESSAGE_SUBJECT"), "MESSAGE" => str_replace("/company/personal/", WIZARD_SITE_DIR . "contacts/personal/", GetMessage("EXTRANET_NEW_MESSAGE_MESSAGE")), "BODY_TYPE" => "text"));
Пример #20
0
		<td>
			<div id="definedfields"></div>
		</td>
	</tr>
	<?if(false):?>
	<tr>
		<td><?php 
echo GetMessage("USER_IMPORT_EMAIL_TEMPLATE");
?>
:</td>
		<td>
			<select name="eventLdapLangID" style="width:300px;">
			<?
			$dbSites = CSite::GetList($by="sort", $order="desc", Array());
			while ($arSite = $dbSites->Fetch()):
				$dbMessage = CEventMessage::GetList($by="site_id", $order="desc", Array("TYPE_ID" => "LDAP_USER_CONFIRM", "ACTIVE" => "Y", "SITE_ID" => $arSite["LID"]));
				while ($arMessage = $dbMessage->GetNext()):
			?>
					<option value="<?php 
echo $arSite["LID"];
?>
" <?if ($eventLangID == $arSite["LID"]):?> selected<?endif?>>(<?php 
echo $arSite["LID"];
?>
) <?php 
echo $arMessage["SUBJECT"];
?>
</option>
			<?
				endwhile;
			endwhile;
Пример #21
0
     } else {
         $res = strlen($langs->Add($arFields)) > 0;
     }
 }
 if (!$res) {
     $bVarsFromForm = true;
 } else {
     if ($SITE_MESSAGE_LINK == "C" && strlen($SITE_MESSAGE_LINK_C_SITE) > 0) {
         $db_msg = CEventMessage::GetList($o, $b, array("SITE_ID" => $SITE_MESSAGE_LINK_C_SITE));
         while ($ar_msg = $db_msg->Fetch()) {
             unset($ar_msg["TIMESTAMP_X"]);
             $ar_msg["LID"] = $LID;
             $em->Add($ar_msg);
         }
     } elseif ($SITE_MESSAGE_LINK == "E" && strlen($SITE_MESSAGE_LINK_E_SITE) > 0) {
         $db_msg = CEventMessage::GetList($o, $b, array("SITE_ID" => $SITE_MESSAGE_LINK_E_SITE));
         while ($ar_msg = $db_msg->Fetch()) {
             $msg_id = $ar_msg["ID"];
             $db_msg_sites = CEventMessage::GetSite($ar_msg["ID"]);
             $ar_msg = array("NAME" => $ar_msg["NAME"], "LID" => array($LID));
             while ($ar_msg_sites = $db_msg_sites->Fetch()) {
                 $ar_msg["LID"][] = $ar_msg_sites["SITE_ID"];
             }
             $em->Update($msg_id, $ar_msg);
         }
     }
     if ($bNew && $_POST["START_SITE_WIZARD"] == "Y") {
         $rsSite = CSite::GetList($by = "sort", $order = "asc", array("ID" => $LID));
         $arSite = $rsSite->GetNext();
         $p = CSite::GetSiteDocRoot($LID) . $arSite["DIR"];
         CheckDirPath($p);
Пример #22
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule("iblock")) {
    return;
}
$site = $_REQUEST["site"] != '' ? $_REQUEST["site"] : ($_REQUEST["src_site"] != '' ? $_REQUEST["src_site"] : false);
$arFilter = array("ACTIVE" => "Y");
if ($site !== false) {
    $arFilter["LID"] = $site;
}
$arEvent = array();
$dbType = CEventMessage::GetList($by = "ID", $order = "DESC", $arFilter);
while ($arType = $dbType->GetNext()) {
    $arEvent[$arType["ID"]] = "[" . $arType["ID"] . "] " . $arType["SUBJECT"];
}
$arIBlockType = CIBlockParameters::GetIBlockTypes();
$arIBlock = array();
$rsIBlock = CIBlock::GetList(array("sort" => "asc"), array("TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE" => "Y"));
while ($arr = $rsIBlock->Fetch()) {
    $arIBlock[$arr["ID"]] = "[" . $arr["ID"] . "] " . $arr["NAME"];
}
$arComponentParameters = array("PARAMETERS" => array("OK_TEXT" => array("NAME" => GetMessage("WF_OK_MESSAGE"), "TYPE" => "STRING", "DEFAULT" => GetMessage("WF_OK_TEXT"), "PARENT" => "BASE"), "EMAIL_TO" => array("NAME" => GetMessage("WF_EMAIL_TO"), "TYPE" => "STRING", "DEFAULT" => htmlspecialcharsbx(COption::GetOptionString("main", "email_from")), "PARENT" => "BASE"), "IBLOCK_TYPE" => array("PARENT" => "BASE", "NAME" => GetMessage("WF_IBLOCK_TYPE"), "TYPE" => "LIST", "VALUES" => $arIBlockType, "REFRESH" => "Y"), "IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("WF_IBLOCK"), "TYPE" => "LIST", "VALUES" => $arIBlock, "REFRESH" => "Y"), "EVENT_MESSAGE_ID" => array("NAME" => GetMessage("WF_EMAIL_TEMPLATES"), "TYPE" => "LIST", "VALUES" => $arEvent, "DEFAULT" => "", "MULTIPLE" => "Y", "COLS" => 25, "PARENT" => "BASE"), "SET_TITLE" => array(), "CACHE_TIME" => array("DEFAULT" => 36000000)));
Пример #23
0
         $res = strlen($langs->Add($arFields)) > 0;
     }
 }
 if (!$res) {
     $bVarsFromForm = true;
 } else {
     $em = new CEventMessage();
     if ($_POST["SITE_MESSAGE_LINK"] == "C" && $_POST["SITE_MESSAGE_LINK_C_SITE"] != '') {
         $db_msg = CEventMessage::GetList($o = "", $b = "", array("SITE_ID" => $_POST["SITE_MESSAGE_LINK_C_SITE"]));
         while ($ar_msg = $db_msg->Fetch()) {
             unset($ar_msg["TIMESTAMP_X"]);
             $ar_msg["LID"] = $LID;
             $em->Add($ar_msg);
         }
     } elseif ($_POST["SITE_MESSAGE_LINK"] == "E" && $_POST["SITE_MESSAGE_LINK_E_SITE"] != '') {
         $db_msg = CEventMessage::GetList($o = "", $b = "", array("SITE_ID" => $_POST["SITE_MESSAGE_LINK_E_SITE"]));
         while ($ar_msg = $db_msg->Fetch()) {
             $msg_id = $ar_msg["ID"];
             $db_msg_sites = CEventMessage::GetSite($ar_msg["ID"]);
             $ar_msg = array("NAME" => $ar_msg["NAME"], "LID" => array($LID));
             while ($ar_msg_sites = $db_msg_sites->Fetch()) {
                 $ar_msg["LID"][] = $ar_msg_sites["SITE_ID"];
             }
             $em->Update($msg_id, $ar_msg);
         }
     }
     if ($bNew && $_POST["START_SITE_WIZARD"] == "Y") {
         $rsSite = CSite::GetList($by = "sort", $order = "asc", array("ID" => $LID));
         $arSite = $rsSite->GetNext();
         $siteDir = "/" . ltrim(rtrim($arSite["DIR"], "/") . "/", "/");
         $p = CSite::GetSiteDocRoot($LID) . $siteDir;
Пример #24
0
{
    $et = new CEventType();
    $et->Add(array("LID" => $LID, "EVENT_NAME" => $EVENT_NAME, "NAME" => $NAME, "DESCRIPTION" => $DESCRIPTION));
}
$em = new CEventMessage();
$langs = CLanguage::GetList($b = "", $o = "");
$evtMsg = 0;
while ($lang = $langs->Fetch()) {
    WizardServices::IncludeServiceLang("feedback.php", $lang["LID"]);
    $arSites = array();
    $sites = CLang::GetList($by, $order, array("LANGUAGE_ID" => $lang["LID"]));
    while ($site = $sites->Fetch()) {
        $arSites[] = $site["LID"];
    }
    ///////////////////// FEEDBACK_FORM /////////////////////
    $fres = CEventType::GetList(array("EVENT_NAME" => "NEW_FEEDBACK_FORM", "LID" => $lang["LID"]));
    if (!$fres->Fetch()) {
        UET("NEW_FEEDBACK_FORM", GetMessage("FEEDBACK_FORM_NAME"), $lang["LID"], "\n\t\t\t#AUTHOR# - " . GetMessage("FEEDBACK_FORM_AUTHOR") . "\n      #AUTHOR_EMAIL# - " . GetMessage("FEEDBACK_FORM_EMAIL") . "\n      #TEXT# - " . GetMessage("FEEDBACK_FORM_TEXT") . "\n      #EMAIL_FROM# - " . GetMessage("FEEDBACK_FORM_EMAIL_FROM") . "\n      #EMAIL_TO# - " . GetMessage("FEEDBACK_FORM_EMAIL_TO") . "\n      #LINK# " . GetMessage("FEEDBACK_FORM_EMAIL_TO"));
        if (is_array($arSites) && count($arSites) > 0) {
            //****************************************************************
            $evtMsg = $em->Add(array("ACTIVE" => "Y", "EVENT_NAME" => "NEW_FEEDBACK_FORM", "LID" => $arSites, "EMAIL_FROM" => "#DEFAULT_EMAIL_FROM#", "EMAIL_TO" => "#EMAIL_TO#", "SUBJECT" => "#SITE_NAME#: " . GetMessage("FEEDBACK_FORM_DESC"), "MESSAGE" => GetMessage("FEEDBACK_FORM_BODY"), "BODY_TYPE" => "text"));
            //****************************************************************
        }
    } else {
        $arFilter = array("EVENT_NAME" => "NEW_FEEDBACK_FORM");
        $rsMess = $em->GetList($by = "site_id", $order = "desc", $arFilter);
        $arMess = $rsMess->Fetch();
        $evtMsg = $arMess["ID"];
    }
}
CWizardUtil::ReplaceMacros($_SERVER["DOCUMENT_ROOT"] . "/bitrix/templates/webfly_san/footer.php", array("WF_FEEDBACK_EVENT" => $evtMsg));
Пример #25
0
 function Fetch()
 {
     $arr = array();
     $arr_lid = array();
     $arr_lids = array();
     if ($res = parent::Fetch()) {
         if ($this->type != "none") {
             $db_res_ = CEventType::GetList(array("EVENT_NAME" => $res["EVENT_NAME"]));
             if ($db_res_ && ($res_ = $db_res_->Fetch())) {
                 do {
                     $arr[$res_["ID"]] = $res_;
                     $arr_lid[] = $res_["LID"];
                     $arr_lids[$res_["LID"]] = $res_;
                 } while ($res_ = $db_res_->Fetch());
             }
             $res["ID"] = array_keys($arr);
             $res["LID"] = $arr_lid;
             $res["NAME"] = empty($arr_lids[$this->LID]["NAME"]) ? $arr_lids["en"]["NAME"] : $arr_lids[$this->LID]["NAME"];
             $res["SORT"] = empty($arr_lids[$this->LID]["SORT"]) ? $arr_lids["en"]["SORT"] : $arr_lids[$this->LID]["SORT"];
             $res["DESCRIPTION"] = empty($arr_lids[$this->LID]["DESCRIPTION"]) ? $arr_lids["en"]["DESCRIPTION"] : $arr_lids[$this->LID]["DESCRIPTION"];
             $res["TYPE"] = $arr;
             if ($this->type != "type") {
                 $arr = array();
                 $db_res_ = CEventMessage::GetList($sort = "sort", $by = "asc", array("EVENT_NAME" => $res["EVENT_NAME"]));
                 if ($db_res_ && ($res_ = $db_res_->Fetch())) {
                     do {
                         $arr[$res_["ID"]] = $res_;
                     } while ($res_ = $db_res_->Fetch());
                 }
                 $res["TEMPLATES"] = $arr;
             }
         }
     }
     return $res;
 }
Пример #26
0
 function UnInstallEvents()
 {
     //Comment
     $EM = new CEventMessage();
     $oEventMessgae = $EM->GetList($by = "", $order = "", array("EVENT_NAME" => "ADD_IDEA_COMMENT"));
     while ($arEvent = $oEventMessgae->Fetch()) {
         $EM->Delete($arEvent["ID"]);
     }
     $ET = new CEventType();
     $ET->Delete("ADD_IDEA_COMMENT");
     //Idea
     $oEventMessgae = $EM->GetList($by = "", $order = "", array("EVENT_NAME" => "ADD_IDEA"));
     while ($arEvent = $oEventMessgae->Fetch()) {
         $EM->Delete($arEvent["ID"]);
     }
     $ET->Delete("ADD_IDEA");
     return true;
 }
Пример #27
0
 function UnInstallEvents()
 {
     global $DB;
     $statusMes = array();
     $dbStatus = $DB->Query("SELECT * FROM b_sale_status", true);
     if ($dbStatus) {
         while ($arStatus = $dbStatus->Fetch()) {
             $statusMes[] = "SALE_STATUS_CHANGED_" . $arStatus["ID"];
         }
     }
     $statusMes[] = "SALE_NEW_ORDER";
     $statusMes[] = "SALE_ORDER_CANCEL";
     $statusMes[] = "SALE_ORDER_PAID";
     $statusMes[] = "SALE_ORDER_DELIVERY";
     $statusMes[] = "SALE_RECURRING_CANCEL";
     $statusMes[] = "SALE_STATUS_CHANGED";
     $statusMes[] = "SALE_ORDER_REMIND_PAYMENT";
     $statusMes[] = "SALE_NEW_ORDER_RECURRING";
     $statusMes[] = "SALE_ORDER_TRACKING_NUMBER";
     $statusMes[] = "SALE_SUBSCRIBE_PRODUCT";
     $eventType = new CEventType();
     $eventM = new CEventMessage();
     foreach ($statusMes as $v) {
         $eventType->Delete($v);
         $dbEvent = CEventMessage::GetList($b = "ID", $order = "ASC", array("EVENT_NAME" => $v));
         while ($arEvent = $dbEvent->Fetch()) {
             $eventM->Delete($arEvent["ID"]);
         }
     }
     return true;
 }
Пример #28
0
<?php

/*
$DB->Query("DELETE FROM b_event_type WHERE EVENT_NAME in (
	'TICKET_NEW_FOR_AUTHOR', 
	'TICKET_NEW_FOR_TECHSUPPORT',
	'TICKET_CHANGE_FOR_TECHSUPPORT', 
	'TICKET_CHANGE_BY_AUTHOR_FOR_AUTHOR', 
	'TICKET_CHANGE_BY_SUPPORT_FOR_AUTHOR',
	'TICKET_OVERDUE_REMINDER'
	)");

$DB->Query("DELETE FROM b_event_message WHERE EVENT_NAME in (
	'TICKET_NEW_FOR_AUTHOR', 
	'TICKET_NEW_FOR_TECHSUPPORT',
	'TICKET_CHANGE_FOR_TECHSUPPORT', 
	'TICKET_CHANGE_BY_AUTHOR_FOR_AUTHOR', 
	'TICKET_CHANGE_BY_SUPPORT_FOR_AUTHOR',
	'TICKET_OVERDUE_REMINDER'
	)");
*/
$arEventNames = array('TICKET_NEW_FOR_AUTHOR', 'TICKET_NEW_FOR_TECHSUPPORT', 'TICKET_CHANGE_FOR_TECHSUPPORT', 'TICKET_CHANGE_BY_AUTHOR_FOR_AUTHOR', 'TICKET_CHANGE_BY_SUPPORT_FOR_AUTHOR', 'TICKET_OVERDUE_REMINDER', 'TICKET_GENERATE_SUPERCOUPON');
$rs = CEventMessage::GetList($v1, $v2, array('EVENT_NAME' => implode('|', $arEventNames)));
while ($arEventMessage = $rs->Fetch()) {
    CEventMessage::Delete($arEventMessage['ID']);
}
foreach ($arEventNames as $e) {
    CEventType::Delete($e);
}
Пример #29
0
 public static function CreateMailTemplate($ID)
 {
     $ID = trim($ID);
     if ('' == $ID) {
         return false;
     }
     if (!($arStatus = CSaleStatus::GetByID($ID, LANGUAGE_ID))) {
         return false;
     }
     $eventType = new CEventType();
     $eventMessage = new CEventMessage();
     $eventType->Delete("SALE_STATUS_CHANGED_" . $ID);
     $b = 'sort';
     $o = 'asc';
     $dbSiteList = CSite::GetList($b, $o);
     while ($arSiteList = $dbSiteList->Fetch()) {
         IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/general/status.php", $arSiteList["LANGUAGE_ID"]);
         $arStatusLang = CSaleStatus::GetLangByID($ID, $arSiteList["LANGUAGE_ID"]);
         $dbEventType = $eventType->GetList(array("EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "LID" => $arSiteList["LANGUAGE_ID"]));
         if (!($arEventType = $dbEventType->Fetch())) {
             $str = "";
             $str .= "#ORDER_ID# - " . GetMessage("SKGS_ORDER_ID") . "\n";
             $str .= "#ORDER_DATE# - " . GetMessage("SKGS_ORDER_DATE") . "\n";
             $str .= "#ORDER_STATUS# - " . GetMessage("SKGS_ORDER_STATUS") . "\n";
             $str .= "#EMAIL# - " . GetMessage("SKGS_ORDER_EMAIL") . "\n";
             $str .= "#ORDER_DESCRIPTION# - " . GetMessage("SKGS_STATUS_DESCR") . "\n";
             $str .= "#TEXT# - " . GetMessage("SKGS_STATUS_TEXT") . "\n";
             $str .= "#SALE_EMAIL# - " . GetMessage("SKGS_SALE_EMAIL") . "\n";
             $eventTypeID = $eventType->Add(array("LID" => $arSiteList["LANGUAGE_ID"], "EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "NAME" => GetMessage("SKGS_CHANGING_STATUS_TO") . " \"" . $arStatusLang["NAME"] . "\"", "DESCRIPTION" => $str));
         }
         $dbEventMessage = $eventMessage->GetList($b = "", $o = "", array("EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "SITE_ID" => $arSiteList["LID"]));
         if (!($arEventMessage = $dbEventMessage->Fetch())) {
             $subject = GetMessage("SKGS_STATUS_MAIL_SUBJ");
             $message = GetMessage("SKGS_STATUS_MAIL_BODY1");
             $message .= "------------------------------------------\n\n";
             $message .= GetMessage("SKGS_STATUS_MAIL_BODY2");
             $message .= GetMessage("SKGS_STATUS_MAIL_BODY3");
             $message .= "#ORDER_STATUS#\n";
             $message .= "#ORDER_DESCRIPTION#\n";
             $message .= "#TEXT#\n\n";
             $message .= "#SITE_NAME#\n";
             $arFields = array("ACTIVE" => "Y", "EVENT_NAME" => "SALE_STATUS_CHANGED_" . $ID, "LID" => $arSiteList["LID"], "EMAIL_FROM" => "#SALE_EMAIL#", "EMAIL_TO" => "#EMAIL#", "SUBJECT" => $subject, "MESSAGE" => $message, "BODY_TYPE" => "text");
             $eventMessageID = $eventMessage->Add($arFields);
         }
     }
     return true;
 }
Пример #30
0
 /**
  * @param Main\Event $event
  *
  * @return Main\EventResult
  * @throws Main\ObjectNotFoundException
  */
 public static function onSaleOrderStatusChangeSendEmail(Main\Event $event)
 {
     $parameters = $event->getParameters();
     /** @var Sale\Order $basketItem */
     $order = $parameters['ENTITY'];
     $value = $parameters['VALUE'];
     $oldValue = $parameters['OLD_VALUE'];
     if (!$order instanceof Sale\Order) {
         return new Main\EventResult(Main\EventResult::ERROR, new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_EVENT_COMPATIBILITY_ORDER_STATUS_CHANGE_WRONG_ORDER'), 'SALE_EVENT_COMPATIBILITY_ORDER_STATUS_CHANGE_WRONG_ORDER'), 'sale');
     }
     $orderFields = array();
     /** @var Sale\Result $resultOrderFields */
     $resultOrderFields = OrderCompatibility::getOrderFields($order);
     if ($resultOrderFields->isSuccess()) {
         if ($orderFieldsResultData = $resultOrderFields->getData()) {
             if (!empty($orderFieldsResultData['ORDER_FIELDS']) && is_array($orderFieldsResultData['ORDER_FIELDS'])) {
                 $orderFields = $orderFieldsResultData['ORDER_FIELDS'];
             }
         }
     }
     \CSaleMobileOrderPush::send(static::EVENT_COMPATIBILITY_MOBILE_PUSH_ORDER_STATUS_CHANGE, array("ORDER" => $orderFields));
     $propertyCollection = $order->getPropertyCollection();
     $userEmail = "";
     /** @var Sale\PropertyValue $userEmailProperty */
     if ($userEmailProperty = $propertyCollection->getUserEmail()) {
         $userEmail = $userEmailProperty->getValue();
     }
     if (strval(trim($userEmail)) == '') {
         $userRes = \CUser::GetByID($order->getUserId());
         if ($userData = $userRes->fetch()) {
             $userEmail = $userData["EMAIL"];
         }
     }
     static $cacheSiteData = array();
     if (!isset($cacheSiteData[$order->getSiteId()])) {
         $siteRes = \CSite::GetByID($order->getSiteId());
         $siteData = $siteRes->Fetch();
     } else {
         $siteData = $cacheSiteData[$order->getSiteId()];
     }
     if (($statusData = \CSaleStatus::GetByID($order->getField("STATUS_ID"), $siteData['LANGUAGE_ID'])) && $statusData['NOTIFY'] == "Y") {
         $fields = array("ORDER_ID" => $order->getField("ACCOUNT_NUMBER"), "ORDER_DATE" => $order->getField("DATE_INSERT")->toString(), "ORDER_STATUS" => $statusData["NAME"], "EMAIL" => $userEmail, "ORDER_DESCRIPTION" => $statusData["DESCRIPTION"], "TEXT" => "", "SALE_EMAIL" => Main\Config\Option::get("sale", "order_email", "order@" . $_SERVER["SERVER_NAME"]));
         foreach (GetModuleEvents("sale", static::EVENT_COMPATIBILITY_ORDER_STATUS_EMAIL, true) as $oldEvent) {
             $fields["TEXT"] = ExecuteModuleEventEx($oldEvent, array($order->getId(), $statusData["ID"]));
         }
         $eventName = "SALE_STATUS_CHANGED_" . $order->getField("STATUS_ID");
         $isSend = true;
         foreach (GetModuleEvents("sale", static::EVENT_COMPATIBILITY_ORDER_STATUS_SEND_EMAIL, true) as $oldEvent) {
             if (ExecuteModuleEventEx($oldEvent, array($order->getId(), &$eventName, &$fields, $order->getField("STATUS_ID"))) === false) {
                 $isSend = false;
             }
         }
         if ($isSend) {
             $b = '';
             $o = '';
             $eventMessage = new \CEventMessage();
             $eventMessageRes = $eventMessage->GetList($b, $o, array("EVENT_NAME" => $eventName, "SITE_ID" => $order->getSiteId(), 'ACTIVE' => 'Y'));
             if (!($eventMessageData = $eventMessageRes->Fetch())) {
                 $eventName = "SALE_STATUS_CHANGED";
             }
             unset($o, $b);
             $event = new \CEvent();
             $event->Send($eventName, $order->getSiteId(), $fields, "N");
         }
     }
     return new Main\EventResult(Main\EventResult::SUCCESS, null, 'sale');
 }