} } } //No rubrics was checked so delete subscription if (count($arNewRubrics) <= 0) { if (is_array($arSubscription)) { $rs = $obSubscription->Delete($arSubscription["ID"]); if (!$rs) { $arResult["ERRORS"][] = GetMessage("CC_BSS_DELETE_ERROR"); } else { $_SESSION["subscribe.simple.message"] = GetMessage("CC_BSS_UPDATE_SUCCESS"); } } } else { if (is_array($arSubscription)) { $rs = $obSubscription->Update($arSubscription["ID"], array("FORMAT" => $_POST["FORMAT"] !== "html" ? "text" : "html", "RUB_ID" => $arNewRubrics), false); if (!$rs) { $arResult["ERRORS"][] = $obSubscription->LAST_ERROR; } else { $_SESSION["subscribe.simple.message"] = GetMessage("CC_BSS_UPDATE_SUCCESS"); } } else { $ID = $obSubscription->Add(array("USER_ID" => $USER_ID, "ACTIVE" => "Y", "EMAIL" => $USER->GetEmail(), "FORMAT" => $_POST["FORMAT"] !== "html" ? "text" : "html", "CONFIRMED" => "Y", "SEND_CONFIRM" => "N", "RUB_ID" => $arNewRubrics)); if (!$ID) { $arResult["ERRORS"][] = $obSubscription->LAST_ERROR; } else { $_SESSION["subscribe.simple.message"] = GetMessage("CC_BSS_UPDATE_SUCCESS"); } } } if (count($arResult["ERRORS"]) <= 0) {
if ($ar["VISIBLE"] == "N") { $arNewRubrics[] = $ar["ID"]; } } } else { $arNewRubrics = $_REQUEST["RUB_ID"]; } $arFields = array("USER_ID" => $USER->IsAuthorized() ? $USER->GetID() : false, "FORMAT" => $_REQUEST["FORMAT"] != "html" ? "text" : "html", "EMAIL" => $_REQUEST["EMAIL"], "RUB_ID" => $arNewRubrics); if ($_REQUEST["CONFIRM_CODE"] != "" && $ID > 0) { $arFields["CONFIRM_CODE"] = $_REQUEST["CONFIRM_CODE"]; } $res = false; if ($ID > 0) { //allow edit only after authorization if (CSubscription::IsAuthorized($ID)) { $res = $obSubscription->Update($ID, $arFields); if ($res) { $iMsg = $obSubscription->LAST_MESSAGE != "" ? $obSubscription->LAST_MESSAGE : "UPD"; } } } else { //can add without authorization $arFields["ACTIVE"] = "Y"; $ID = $obSubscription->Add($arFields); $res = $ID > 0; if ($res) { $iMsg = "SENT"; CSubscription::Authorize($ID); } } if ($res) {
$lAdmin->AddGroupError(GetMessage("subscr_del_err"), $ID); } $DB->Commit(); break; case "activate": case "deactivate": $ob = new CSubscription(); $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N"); if (!$ob->Update($ID, $arFields)) { $lAdmin->AddGroupError(GetMessage("subscr_save_error") . $ob->LAST_ERROR, $ID); } break; case "confirm": $ob = new CSubscription(); $arFields = array("CONFIRMED" => "Y"); if (!$ob->Update($ID, $arFields)) { $lAdmin->AddGroupError(GetMessage("subscr_save_error") . $ob->LAST_ERROR, $ID); } break; } } } $cData = new CSubscription(); $rsData = $cData->GetList(array($by => $order), $arFilter, array("nPageSize" => CAdminResult::GetNavSize($sTableID))); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("subscr_nav"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "align" => "right", "default" => true), array("id" => "DATE_INSERT", "content" => GetMessage("POST_DATE_INSERT"), "sort" => "date_insert", "default" => true), array("id" => "EMAIL", "content" => GetMessage("subscr_addr"), "sort" => "email", "default" => true), array("id" => "USER_ID", "content" => GetMessage("subscr_user"), "sort" => "user", "default" => true), array("id" => "CONFIRMED", "content" => GetMessage("subscr_conf"), "sort" => "conf", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("subscr_act"), "sort" => "act", "default" => true), array("id" => "FORMAT", "content" => GetMessage("subscr_fmt"), "sort" => "fmt", "default" => true), array("id" => "DATE_UPDATE", "content" => GetMessage("subscr_updated"), "sort" => "date_update", "default" => false), array("id" => "DATE_CONFIRM", "content" => GetMessage("subscr_conf_time"), "sort" => "date_confirm", "default" => false), array("id" => "CONFIRM_CODE", "content" => GetMessage("subscr_conf_code"), "sort" => "confirm_code", "default" => false))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); if ($f_USER_ID > 0) {
$rubSelect = array("SORT" => "ASC", "NAME" => "ASC"); $rubFilter = array("ACTIVE" => "Y", "VISIBLE" => "Y", 'NAME' => 'Акции'); $dbRub = CRubric::GetList($rubSelect, $rubFilter); while ($arRubric = $dbRub->GetNext()) { echo $rbkIDs[] = $arRubric["ID"]; } $RUB_ID = $rbkIDs; } $email = $_REQUEST["EMAIL"]; $ID = $USER->IsAuthorized() ? $USER->GetID() : false; //echo "DATACHECK ID=$ID, EMAIL=$email<br/>"; if ($ID || !empty($email)) { //echo "DATA_VALID<br/>"; if (empty($email)) { $email = $USER->GetEmail(); } $subscr = new CSubscription(); //echo "SEARCH SUBSCRIPTION<br/>"; $arSFields = array("USER_ID" => $ID, "FORMAT" => "html", "ACTIVE" => "Y", "EMAIL" => $email, "SEND_CONFIRM" => "N", "CONFIRMED" => "Y", "DATE_CONFIRM" => ConvertTimeStamp(time(), "SHORT", "ru"), "RUB_ID" => $RUB_ID, "SEND_CONFIRM" => "N"); $dbSubscr = CSubscription::GetByEmail($email); if ($arSubscr = $dbSubscr->GetNext()) { // echo "FOUND.UPDATE<br/>"; $result = $subscr->Update($arSubscr["ID"], $arSFields, "#SITE_ID#"); } else { // echo "NOT FOUND.ADD<br/>"; $result = $subscr->Add($arSFields, "#SITE_ID#"); // echo $subscr->LAST_ERROR; } } } // LocalRedirect($backUrl);
$rubSelect = array("SORT" => "ASC", "NAME" => "ASC"); $rubFilter = array("ACTIVE" => "Y", "VISIBLE" => "Y", 'NAME' => 'Акции'); $dbRub = CRubric::GetList($rubSelect, $rubFilter); while ($arRubric = $dbRub->GetNext()) { echo $rbkIDs[] = $arRubric["ID"]; } $RUB_ID = $rbkIDs; } $email = $_REQUEST["EMAIL"]; $ID = $USER->IsAuthorized() ? $USER->GetID() : false; //echo "DATACHECK ID=$ID, EMAIL=$email<br/>"; if ($ID || !empty($email)) { //echo "DATA_VALID<br/>"; if (empty($email)) { $email = $USER->GetEmail(); } $subscr = new CSubscription(); //echo "SEARCH SUBSCRIPTION<br/>"; $arSFields = array("USER_ID" => $ID, "FORMAT" => "html", "ACTIVE" => "Y", "EMAIL" => $email, "SEND_CONFIRM" => "N", "CONFIRMED" => "Y", "DATE_CONFIRM" => ConvertTimeStamp(time(), "SHORT", "ru"), "RUB_ID" => $RUB_ID, "SEND_CONFIRM" => "N"); $dbSubscr = CSubscription::GetByEmail($email); if ($arSubscr = $dbSubscr->GetNext()) { // echo "FOUND.UPDATE<br/>"; $result = $subscr->Update($arSubscr["ID"], $arSFields, "s1"); } else { // echo "NOT FOUND.ADD<br/>"; $result = $subscr->Add($arSFields, "s1"); // echo $subscr->LAST_ERROR; } } } // LocalRedirect($backUrl);
define("HELP_FILE", "add_subscriber.php"); $POST_RIGHT = $APPLICATION->GetGroupRight("subscribe"); if ($POST_RIGHT == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("subscr_tab_subscriber"), "ICON" => "main_user_edit", "TITLE" => GetMessage("subscr_tab_subscriber_title")), array("DIV" => "edit2", "TAB" => GetMessage("subscr_tab_subscription"), "ICON" => "main_user_edit", "TITLE" => GetMessage("subscr_tab_subscription_title"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); $ID = intval($ID); // Id of the edited record $strError = ""; $bVarsFromForm = false; if ($REQUEST_METHOD == "POST" && ($save != "" || $apply != "") && $POST_RIGHT >= "W" && check_bitrix_sessid()) { $subscr = new CSubscription(); $arFields = array("USER_ID" => $ANONYMOUS == "Y" ? false : $USER_ID, "ACTIVE" => $ACTIVE != "Y" ? "N" : "Y", "FORMAT" => $FORMAT != "html" ? "text" : "html", "EMAIL" => $EMAIL, "CONFIRMED" => $CONFIRMED != "Y" ? "N" : "Y", "SEND_CONFIRM" => $SEND_CONFIRM != "Y" ? "N" : "Y", "RUB_ID" => $RUB_ID, "ALL_SITES" => "Y"); if ($ID > 0) { $res = $subscr->Update($ID, $arFields, $SITE_ID); } else { $ID = $subscr->Add($arFields, $SITE_ID); $res = $ID > 0; } if ($res) { if ($apply != "") { LocalRedirect("/bitrix/admin/subscr_edit.php?ID=" . $ID . "&mess=ok&lang=" . LANG . "&" . $tabControl->ActiveTabParam()); } else { LocalRedirect("/bitrix/admin/subscr_admin.php?lang=" . LANG); } } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("subs_save_error"), $e); } $bVarsFromForm = true;
} else { /* определим рубрики активные рубрики подписок */ $RUB_ID = array(); $rub = CRubric::GetList(array(), array("ACTIVE" => "Y")); while ($rub->ExtractFields("r_")) { $RUB_ID = array($r_ID); } $RUB_ID = array('0' => '2'); /* создадим массив на подписку */ $subscr = new CSubscription(); $arFields = array("USER_ID" => $USER, "FORMAT" => "html/text", "EMAIL" => $EMAIL, "ACTIVE" => "Y", "RUB_ID" => $RUB_ID, "SEND_CONFIRM" => "Y", "CONFIRMED" => "Y"); if ($idsubrscr = $subscr->Add($arFields)) { $result = json_encode(array("result" => true, "value" => "Спасибо, вы подписались на рассылку", "action" => "subscribe")); } else { $result = json_encode(array("result" => false, "value" => "Данный адрес уже был подписан на рассылку", "action" => "subscribe")); } } } elseif ($_POST["email"] && $_POST["action"] == "remove") { $subscription = CSubscription::GetByEmail($_POST["email"]); if ($subscription->ExtractFields("str_")) { $ID = (int) $str_ID; } $subscr = new CSubscription(); if ($subscr->Update($ID, array("ACTIVE" => "N"))) { $result = json_encode(array("result" => true, "value" => "Вы отписались на рассылки", "action" => "unsubscribe")); } else { $result = json_encode(array("result" => false, "value" => "Произошла ошибка. ПОпробуйте позже", "action" => "unsubscribe")); } } echo $result; }
} if ($_REQUEST['action_target'] == 'selected') { $arEMAIL = array_keys($arSubscr); } foreach ($arEMAIL as $EMAIL) { $SUBSCR_ID = IntVal($arSubscr[$EMAIL]); if ($SUBSCR_ID <= 0) { continue; } switch ($_REQUEST['action']) { case "sudelete": CSubscription::Delete($SUBSCR_ID); break; case "inactive": $oSubscription = new CSubscription(); $oSubscription->Update($SUBSCR_ID, array("ACTIVE" => "N")); break; } } } $lAdmin->AddHeaders(array(array("id" => "EMAIL", "content" => GetMessage("POST_EMAIL"), "default" => true), array("id" => "SUBSCRIPTION_ID", "content" => GetMessage("POST_SUBSCRIPTION_ID"), "default" => true, "align" => "right"), array("id" => "USER_ID", "content" => GetMessage("POST_USER_ID"), "default" => true, "align" => "right"))); $cData = new CPosting(); $rsData = $cData->GetEmailsByStatus($ID, $find_status_id); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint("")); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_EMAIL, $arRes); if ($f_SUBSCRIPTION_ID > 0) { $rs = CSubscription::GetByID($f_SUBSCRIPTION_ID); $ar = $rs->Fetch();