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"]); } }
/** * 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; }
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; } }
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 ""; } }
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; }
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(); } }
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;
<?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')));
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; }
$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); } }
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; }
/** * <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> * <? * $RESULT_ID = 189; // ID результата * * // создадим почтовое событие для отсылки по EMail данных результата * if (<b>CFormResult::Mail</b>($RESULT_ID)) * { * echo "Почтовое событие успешно создано."; * } * else // ошибка * { * global $strError; * echo $strError; * } * ?> * </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; }
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; } } ?>
$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"));
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; }
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; }
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'])); } }
<?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"));
<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;
} 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);
<?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)));
$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;
{ $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));
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; }
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; }
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; }
<?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); }
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; }
/** * @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'); }