Example #1
0
$POST_RIGHT = $APPLICATION->GetGroupRight("sender");
if ($POST_RIGHT == "D") {
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("sender_mailing_edit_tab_main"), "ICON" => "main_user_edit", "TITLE" => GetMessage("sender_mailing_edit_tab_main_title")), array("DIV" => "edit2", "TAB" => GetMessage("sender_mailing_edit_tab_grp"), "ICON" => "main_user_edit", "TITLE" => GetMessage("sender_mailing_edit_tab_grp_title")));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$ID = intval($ID);
// Id of the edited record
$message = null;
$bVarsFromForm = false;
if ($REQUEST_METHOD == "POST" && ($save != "" || $apply != "") && $POST_RIGHT == "W" && check_bitrix_sessid()) {
    $arError = array();
    $NAME = trim($NAME);
    $arFields = array("ACTIVE" => $ACTIVE != "Y" ? "N" : "Y", "TRACK_CLICK" => $TRACK_CLICK != "Y" ? "N" : "Y", "SORT" => $SORT, "IS_PUBLIC" => $IS_PUBLIC != "Y" ? "N" : "Y", "NAME" => $NAME, "DESCRIPTION" => $DESCRIPTION, "SITE_ID" => $SITE_ID);
    if ($ID > 0) {
        $mailingUpdateDb = \Bitrix\Sender\MailingTable::update($ID, $arFields);
        $res = $mailingUpdateDb->isSuccess();
        if (!$res) {
            $arError = $mailingUpdateDb->getErrorMessages();
        }
    } else {
        $mailingAddDb = \Bitrix\Sender\MailingTable::add($arFields);
        if ($mailingAddDb->isSuccess()) {
            $ID = $mailingAddDb->getId();
            $res = $ID > 0;
        } else {
            $arError = $mailingAddDb->getErrorMessages();
        }
    }
    $GROUP = array();
    if (isset($GROUP_INCLUDE)) {
if (!($mailing = $mailingDb->fetch())) {
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
    ShowError(\Bitrix\Main\Localization\Loc::getMessage("SENDER_MAILING_TRIG_ERROR_NOT_FOUND"));
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
    exit;
}
$errorList = array();
$chainFieldsList = array();
if (in_array($_REQUEST["action"], array('activate', 'deactivate')) && check_bitrix_sessid() && $POST_RIGHT >= "W") {
    $fields = array();
    if ($_REQUEST["action"] == 'activate') {
        $fields['ACTIVE'] = 'Y';
    } else {
        $fields['ACTIVE'] = 'N';
    }
    \Bitrix\Sender\MailingTable::update($ID, $fields);
    LocalRedirect('/bitrix/admin/sender_mailing_trig_edit.php?ID=' . $ID . '&lang=' . LANGUAGE_ID);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && is_array($CHAIN) && ($save != "" || $apply != "") && $POST_RIGHT == "W" && check_bitrix_sessid()) {
    if (is_array($_POST)) {
        foreach ($_POST as $k => $v) {
            if (substr($k, 0, strlen('CHAIN_MESSAGE_')) == "CHAIN_MESSAGE_") {
                $chainMessage = explode('_', $k);
                $CHAIN[intval($chainMessage[2])][$chainMessage[1]] = $v;
            }
        }
    }
    $arTriggerSettings = $CHAIN;
    // sort chain
    $arTriggerSettingsTmp = array();
    foreach ($arTriggerSettings as $item) {
Example #3
0
        $dataPrimary = array('ID' => $ID);
        switch ($_REQUEST['action']) {
            case "delete":
                @set_time_limit(0);
                $DB->StartTransaction();
                $dataDeleteDb = \Bitrix\Sender\MailingTable::delete($dataPrimary);
                if (!$dataDeleteDb->isSuccess()) {
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("rub_del_err"), $ID);
                }
                $DB->Commit();
                break;
            case "activate":
            case "deactivate":
                $arFields["ACTIVE"] = $_REQUEST['action'] == "activate" ? "Y" : "N";
                $dataUpdateDb = \Bitrix\Sender\MailingTable::update($dataPrimary, $arFields);
                if (!$dataUpdateDb->isSuccess()) {
                    $LAST_ERROR = $dataUpdateDb->getErrorMessages();
                    $LAST_ERROR = $LAST_ERROR[0];
                    $lAdmin->AddGroupError(GetMessage("rub_save_error") . $LAST_ERROR, $ID);
                }
                break;
        }
    }
}
// runtime: RECIPIENT_CNT = include_cnt = group_cnt * (exclude_int)
$arFilter['IS_TRIGGER'] = 'N';
$groupListDb = \Bitrix\Sender\MailingTable::getList(array('select' => array('ID', 'NAME', 'SORT', 'DATE_INSERT', 'ACTIVE', 'IS_PUBLIC', 'SITE_ID', 'RECIPIENT_CNT'), 'filter' => $arFilter, 'runtime' => array(new \Bitrix\Main\Entity\ExpressionField('RECIPIENT_CNT', 'SUM(%2$s*(%1$s))', array('MAILING_GROUP.INCLUDE', 'MAILING_GROUP.GROUP.ADDRESS_COUNT'))), 'order' => array($by => $order)));
$rsData = new CAdminResult($groupListDb, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("rub_nav")));
Example #4
0
                $trigger->setFieldPrefix('ENDPOINT[' . $type . '][FIELDS]');
                $trigger->setFields($triggerListExists[$type]['FIELDS']);
                $triggerListExists[$type]['FORM'] = $trigger->getForm();
            }
        }
    }
    if ($REQUEST_METHOD == "POST" && !$isPostedFormProcessed && check_bitrix_sessid()) {
        $arError = array();
        $triggerListExists = array('START' => null, 'END' => null);
        foreach ($triggerListExists as $type => $value) {
            $trigger = \Bitrix\Sender\TriggerManager::getOnce($ENDPOINT[$type]);
            if ($trigger) {
                $triggerListExists[$type] = $ENDPOINT[$type] + \Bitrix\Sender\TriggerSettings::getArrayFromTrigger($trigger);
            }
        }
        $updateDb = \Bitrix\Sender\MailingTable::update($MAILING_ID, array('TRIGGER_FIELDS' => $triggerListExists));
        if (!$updateDb->isSuccess()) {
            $arError = array_merge($arError, $updateDb->getErrorMessages());
        }
        if (empty($arError)) {
            $isPostedFormProcessed = true;
            LocalRedirect('/bitrix/admin/sender_mailing_trig_edit.php?ID=' . $MAILING_ID . "&lang=" . LANGUAGE_ID);
        }
    }
}
if (!empty($arError)) {
    $message = new CAdminMessage(implode("<br>", $arError));
}
\CJSCore::Init(array("sender_admin"));
$title = GetMessage("sender_wizard_step_" . $step . $title_postfix . "_title");
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";