示例#1
0
             } 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));
        }
示例#3
0
     $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'));