Exemple #1
0
 public static function mailserviceUpdate($arParams)
 {
     global $USER;
     IncludeModuleLangFile(__FILE__);
     if (!$USER->CanDoOperation('bitrix24_config')) {
         throw new Exception(GetMessage('ACCESS_DENIED'));
     }
     if (empty($arParams['ID'])) {
         throw new Exception(GetMessage('MAIL_MAILSERVICE_EMPTY_ID'));
     }
     $result = Bitrix\Mail\MailServicesTable::getList(array('filter' => array('=ID' => $arParams['ID'], '=SITE_ID' => SITE_ID)));
     if (!$result->fetch()) {
         throw new Exception(GetMessage('MAIL_MAILSERVICE_EMPTY'));
     }
     $arFields = array('ACTIVE' => $arParams['ACTIVE'], 'NAME' => $arParams['NAME'], 'SERVER' => $arParams['SERVER'], 'PORT' => $arParams['PORT'], 'ENCRYPTION' => $arParams['ENCRYPTION'], 'LINK' => $arParams['LINK'], 'ICON' => CRestUtil::saveFile($arParams['ICON']) ?: $arParams['ICON'], 'SORT' => $arParams['SORT']);
     foreach ($arFields as $name => $value) {
         if (empty($value)) {
             unset($arFields[$name]);
         }
     }
     $result = Bitrix\Mail\MailServicesTable::update($arParams['ID'], $arFields);
     if (!$result->isSuccess()) {
         throw new Exception(join('; ', $result->getErrorMessages()));
     }
     return true;
 }
        }
        $ID = intval($ID);
        switch ($_REQUEST['action']) {
            case "delete":
                @set_time_limit(0);
                $DB->StartTransaction();
                if (!Bitrix\Mail\MailServicesTable::delete($ID)) {
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("MAIL_MSERVICE_DELETE_ERROR"), $ID);
                }
                $DB->Commit();
                break;
            case "activate":
            case "deactivate":
                $arFields = array('ACTIVE' => $_REQUEST['action'] == 'activate' ? 'Y' : 'N');
                if (!Bitrix\Mail\MailServicesTable::update($ID, $arFields)) {
                    if ($e = $APPLICATION->GetException()) {
                        $lAdmin->AddGroupError(GetMessage('SAVE_ERROR') . $ID . ": " . $e->GetString(), $ID);
                    }
                }
                break;
        }
    }
}
$rsData = Bitrix\Mail\MailServicesTable::getList(array('filter' => array_filter($arFilter), 'order' => array(strtoupper($by) => $order)));
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("MAIL_MSERVICE_ADM_TITLE")));
$arHeaders = array();
$arHeaders[] = array('id' => 'NAME', 'content' => GetMessage('MAIL_MSERVICE_ADM_NAME'), 'default' => true, 'sort' => 'name');
$arHeaders[] = array('id' => 'ACTIVE', 'content' => GetMessage('MAIL_MSERVICE_ADM_ACTIVE'), 'default' => true, 'sort' => 'active');
    $str_SERVER = $ms['SERVER'];
    $str_PORT = $ms['PORT'];
    $str_ENCRYPTION = $ms['ENCRYPTION'];
    $str_LINK = $ms['LINK'];
    $str_ICON = $ms['ICON'];
    $str_TOKEN = $ms['TOKEN'];
    $str_SORT = $ms['SORT'];
} else {
    $ID = 0;
}
if ($REQUEST_METHOD == "POST" && (strlen($save) > 0 || strlen($apply) > 0) && $MOD_RIGHT == "W" && check_bitrix_sessid()) {
    $ICON['old_file'] = $str_ICON;
    $ICON['del'] = $remove_icon;
    $arFields = array('SITE_ID' => $SITE_ID, 'ACTIVE' => $ACTIVE ?: 'N', 'NAME' => $NAME, 'SERVER' => $SERVER, 'PORT' => $PORT ?: null, 'ENCRYPTION' => $TYPE == 'imap' ? $bCanUseTLS ? $ENCRYPTION : 'N' : ($ENCRYPTION == 'N' ? 'N' : 'Y'), 'LINK' => $LINK, 'ICON' => $ICON, 'TOKEN' => $TOKEN, 'SORT' => $SORT);
    if ($ID > 0) {
        $result = Bitrix\Mail\MailServicesTable::update($ID, $arFields);
    } else {
        $arFields['SERVICE_TYPE'] = $TYPE;
        $result = Bitrix\Mail\MailServicesTable::add($arFields);
        $ID = $result->isSuccess() ? $result->getId() : 0;
    }
    if (!$result->isSuccess()) {
        $message = new CAdminMessage(array('MESSAGE' => GetMessage("MAIL_MSERVICE_EDT_ERROR"), 'DETAILS' => join('<br>', $result->getErrorMessages())));
    } else {
        if (strlen($save) > 0) {
            LocalRedirect("mail_mailservice_admin.php?lang=" . LANG);
        } else {
            LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANG . "&ID=" . $ID);
        }
    }
}