} elseif (substr($_POST["EMAIL_FORUM_MAILBOX"], 0, 1) == 'M') { $MAILBOX_ID = substr($_POST["EMAIL_FORUM_MAILBOX"], 1); $dbrMailF = CMailBox::GetById($MAILBOX_ID); if (($arMailF = $dbrMailF->GetNext()) && $arMailF['SERVER_TYPE'] == 'smtp') { $arFields["EMAIL_GROUP"] = ''; $domains = preg_split("/[\r\n]+/", $arMailF['DOMAINS'], -1, PREG_SPLIT_NO_EMPTY); if (count($domains) > 0) { $arFields["EMAIL"] = $arFields["EMAIL"] . "@" . $_POST['EMAIL_DOMAIN']; } } else { $MAILBOX_ID = 0; } } if ($MAILBOX_ID > 0) { $arMailFilterFields = array("MAILBOX_ID" => $MAILBOX_ID, "NAME" => GetMessage("SOCNET_FORUM_TL_EMAIL_RULE"), "ACTION_TYPE" => "forumsocnet", "ACTION_VARS" => "", "WHEN_MAIL_RECEIVED" => "Y", "WHEN_MANUALLY_RUN" => "Y"); $MAIL_FILTER_ID = CMailFilter::Add($arMailFilterFields); $arFields["MAIL_FILTER_ID"] = $MAIL_FILTER_ID; if (CForumEMail::Set($arFields) > 0) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"]))); } } } } } elseif ($ACTION == "FORUM_SUBSCRIBE") { if (ForumSubscribeNewMessagesEx($arParams["FID"], 0, "N", $strErrorMessage, $strOkMessage, false, $arParams["SOCNET_GROUP_ID"])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"]))); } else { $arResult["ERROR_MESSAGE"] = $strErrorMessage; } } elseif ($ACTION == "FORUM_UNSUBSCRIBE") { $arFields = array("USER_ID" => $USER->GetID(), "FORUM_ID" => $arParams["FID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => false, "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"]);
$ID = intval($ID); if ($REQUEST_METHOD == "POST" && (strlen($save) > 0 || strlen($apply) > 0) && $MOD_RIGHT >= "W" && check_bitrix_sessid()) { $arFields = array("ACTIVE" => $ACTIVE, "MAILBOX_ID" => $MAILBOX_ID, "PARENT_FILTER_ID" => false, "NAME" => $NAME, "SORT" => $SORT, "WHEN_MAIL_RECEIVED" => $WHEN_MAIL_RECEIVED, "WHEN_MANUALLY_RUN" => $WHEN_MANUALLY_RUN, "SPAM_RATING" => $SPAM_RATING, "SPAM_RATING_TYPE" => $SPAM_RATING_TYPE, "MESSAGE_SIZE" => $MESSAGE_SIZE, "MESSAGE_SIZE_TYPE" => $MESSAGE_SIZE_TYPE, "MESSAGE_SIZE_UNIT" => $MESSAGE_SIZE_UNIT, "DESCRIPTION" => $DESCRIPTION, "CONDITIONS" => $CONDITIONS, "ACTION_STOP_EXEC" => $ACTION_STOP_EXEC, "ACTION_DELETE_MESSAGE" => $ACTION_DELETE_MESSAGE, "ACTION_READ" => $ACTION_READ, "ACTION_SPAM" => $ACTION_SPAM, "ACTION_TYPE" => ""); if ($USER->IsAdmin()) { $arFields["PHP_CONDITION"] = $PHP_CONDITION; $arFields["ACTION_PHP"] = $ACTION_PHP; } if ($arModFilter) { $arFields["ACTION_TYPE"] = $arModFilter["ID"]; $ACTION_VARS = call_user_func($arModFilter["PREPARE_RESULT_FUNC"]); $arFields["ACTION_VARS"] = $ACTION_VARS; } if ($ID > 0) { $res = CMailFilter::Update($ID, $arFields); } else { $ID = CMailFilter::Add($arFields); $res = $ID > 0; } if (!$res) { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("MAIL_FLT_EDT_ERROR"), $e); } } else { //$strError .= CMailError::GetErrorsText(); //if(strlen($strError)<=0) //{ if (strlen($save) > 0) { LocalRedirect("mail_filter_admin.php?lang=" . LANG); } else { LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANG . "&ID=" . $ID . "&tabControl_active_tab=" . urlencode($tabControl_active_tab)); }
$arMailFilter = $arMailFilterData; } else { $rsMailFilter = CMailFilter::GetById($mailFilterID); $arMailFilter = $rsMailFilter->Fetch(); if (!is_array($arMailFilter)) { $mailFilterID = 0; $arMailFilter = array(); } else { $arMailFilter = array_merge($arMailFilter, $arMailFilterData); } } if (isset($arMailFilter['ID'])) { unset($arMailFilter['ID']); } if ($mailFilterID <= 0) { $mailFilterID = intval(CMailFilter::Add($arMailFilter)); if ($mailFilterID <= 0) { $ex = $GLOBALS['APPLICATION']->GetException(); $errorMsg = $ex->GetString(); $GLOBALS['APPLICATION']->ResetException(); } } else { if (!CMailFilter::Update($mailFilterID, $arMailFilter)) { $ex = $GLOBALS['APPLICATION']->GetException(); $errorMsg = $ex->GetString(); $GLOBALS['APPLICATION']->ResetException(); } } if ($errorMsg === '' && $mailFilterID > 0) { // Deleting other crm related filters (only one active crm filter is allowed) $rsMailFilter = CMailFilter::GetList(array(), array('ACTION_TYPE' => 'crm'));