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; } }
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) { LocalRedirect($APPLICATION->GetCurPageParam()); } else { $bVarsFromForm = true; } } if (array_key_exists("subscribe.simple.message", $_SESSION)) { $arResult["MESSAGE"] = $_SESSION["subscribe.simple.message"];
$user->Update($USER_ID, array("LOGIN" => "user" . $USER_ID)); //send registration message if ($SEND_REG_INFO == "Y") { $user->SendUserInfo($USER_ID, $LID, GetMessage("subscr_send_info")); } } else { $arError[] = array("id" => "", "text" => $email . ": " . $user->LAST_ERROR); $nError++; continue; } } //$USER_TYPE == "U" //add subscription $arFields["USER_ID"] = $USER_ID; $arFields["EMAIL"] = $email; if (!$subscr->Add($arFields, $LID)) { $arError[] = array("id" => "", "text" => $email . ": " . $subscr->LAST_ERROR); $nError++; } else { $nSuccess++; } } //foreach $bShowRes = true; } else { //default falues $CONFIRMED = "Y"; $USER_TYPE = "A"; $SEND_REG_INFO = "Y"; $FORMAT = "text"; $USER_GROUP_ID = array();
} $post = $_POST; if ($post['asd_subscribe'] == 'Y' && strlen(trim($post['asd_email'])) && $post['asd_key'] == md5($arParams['JS_KEY'] . $post['asd_rubrics'] . (isset($post['asd_show_rubrics']) ? $post['asd_show_rubrics'] : '') . (isset($post['asd_not_confirm']) ? $post['asd_not_confirm'] : '')) && check_bitrix_sessid()) { $arReturn = array(); CComponentUtil::__IncludeLang(substr(__FILE__, strpos(__FILE__, '/bitrix/components'), -strlen(basename(__FILE__))), basename(__FILE__)); if (CModule::IncludeModule('subscribe')) { $arRubrics = strlen($post['asd_rubrics']) ? explode('|', $post['asd_rubrics']) : array(); $arRubricsUser = isset($post['asd_rub']) && is_array($post['asd_rub']) ? $post['asd_rub'] : array(); $arRubricsUser = array_intersect($arRubrics, $arRubricsUser); $arRubricsUser = empty($arRubricsUser) ? $arRubrics : $arRubricsUser; $email = trim($post['asd_email']); $charset = $post['charset']; $bShowRubrics = $post['asd_show_rubrics'] == 'Y'; $arFields = array('USER_ID' => $USER->GetID(), 'SEND_CONFIRM' => $post['asd_not_confirm'] == 'Y' ? 'N' : 'Y', 'EMAIL' => $email, 'ACTIVE' => 'Y', 'RUB_ID' => $bShowRubrics ? $arRubricsUser : $arRubrics, 'CONFIRMED' => $post['asd_not_confirm'] == 'Y' ? 'Y' : 'N'); $subscr = new CSubscription(); if ($newID = $subscr->Add($arFields)) { $arReturn = array('message' => GetMessage('ASD_CMP_SUCCESS' . ($post['asd_not_confirm'] == 'Y' ? '_NC' : '')), 'status' => 'ok'); } elseif ($ex = $APPLICATION->GetException()) { $arReturn = array('message' => $ex->GetString(), 'status' => 'error'); } } else { $arReturn = array('message' => GetMessage('ASD_CMP_NOT_INSTALLED'), 'status' => 'error'); } if (defined('PUBLIC_AJAX_MODE') && PUBLIC_AJAX_MODE === true) { $arReturn['message'] = $APPLICATION->ConvertCharset(strip_tags($arReturn['message']), $charset, 'UTF-8'); header('Content-type: application/json'); echo json_encode($arReturn); } else { return $arReturn; } }
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) { //remember e-mail in cookies $bVarsFromForm = false; $APPLICATION->set_cookie("SUBSCR_EMAIL", $_REQUEST["EMAIL"], mktime(0, 0, 0, 12, 31, 2030)); LocalRedirect($APPLICATION->GetCurPage() . "?ID=" . $ID . ($iMsg != "" ? "&mess_code=" . urlencode($iMsg) : "")); } else { $arWarning[] = $obSubscription->LAST_ERROR; } }
$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);
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule('subscribe'); $rsRubric = CRubric::GetList(false, array('ACTIVE' => 'Y')); while ($rubric = $rsRubric->Fetch()) { $rubrics[] = $rubric['ID']; } $error = false; if (isset($_GET['email'])) { if (!check_email($_GET['email'])) { $error = 'Введен неверый Email адрес.'; } else { $fields = array('FORMAT' => 'html', 'EMAIL' => trim($_GET['email']), 'ACTIVE' => 'Y', 'CONFIRMED' => 'Y', 'RUB_ID' => $rubrics); } } else { if ($USER->isAuthorized()) { $fields = array('USER_ID' => $USER->GetId(), 'FORMAT' => 'html', 'EMAIL' => $USER->GetEmail(), 'ACTIVE' => 'Y', 'CONFIRMED' => 'Y', 'RUB_ID' => $rubrics); } } if (false === $error) { $subscr = new CSubscription(); $subscr->Add($fields); $error = !$subscr->LAST_ERROR ? 0 : $subscr->LAST_ERROR; } echo json_encode($error);
$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);
<?php if (isset($_REQUEST['SITE_ID'])) { define('SITE_ID', !empty($_REQUEST['SITE_ID']) ? $_REQUEST['SITE_ID'] : 's1'); } define("STOP_STATISTICS", true); define('NO_AGENT_CHECK', true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; use Bitrix\Main\Localization\Loc; use RBCC\Helpers\Common\JS; Loc::loadMessages(__FILE__); $response = array('result' => false, 'title' => GetMessage('SUBSCRIBE_ERROR_TITLE'), 'message' => ''); global $USER; CModule::IncludeModule('subscribe'); if (!isset($_REQUEST['EMAIL']) || empty($_REQUEST['EMAIL'])) { $response['message'] = GetMessage('SUBSCRIBE_EMAIL_IS_EMPTY'); JS::ajax($response); } $subscription = new CSubscription(); $subId = $subscription->Add(array('USER_ID' => $USER->IsAuthorized() ? $USER->GetID() : false, 'EMAIL' => $_REQUEST['EMAIL'])); if ($subId) { @CSubscription::Authorize($subId); $response['result'] = true; $response['title'] = GetMessage('SUBSCRIBE_MESSAGE_TITLE'); $response['message'] = GetMessage('SUBSCRIBE_MESSAGE_TEXT', array('#EMAIL#' => $_REQUEST['EMAIL'])); JS::ajax($response); } else { $response['message'] = strip_tags($subscription->LAST_ERROR); JS::ajax($response); }
/** * [subscribeRegUser description] * @param str $email * @return bool */ function subscribeRegUser($email){ //require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule("subscribe"); $EMAIL = $email; global $USER; /* получим значение пользователя */ if ($USER->IsAuthorized()): $USER = $USER->GetID(); else: $USER = NULL ; endif; /* определим рубрики активные рубрики подписок */ $RUB_ID = array(); $rub = CRubric::GetList(array(), array("ACTIVE"=>"Y")); while($rub->ExtractFields("r_")): $RUB_ID = array($r_ID) ; endwhile; $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 ($subscr->Add($arFields)) return true; return false; }
$subscr = new CSubscription(); if ($subscr->Update($ID, array("ACTIVE" => "Y"))) { $result = json_encode(array("result" => true, "value" => "Спасибо, вы подписались на рассылку", "action" => "subscribe")); } } 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"));
/** * Subscribe user by email * * @global object $APPLICATION * @param string $email * @return array */ public static function subscribe($email, $subscribeID, $siteID) { global $APPLICATION; $arResult["SUCCESS"] = true; $arFields = array("EMAIL" => $email, "FORMAT" => "html", "ACTIVE" => "Y", "RUB" => $subscribeID, "SEND_CONFIRM" => "Y", "CONFIRM_CODE" => self::GenerateConfirmCode(8)); if (!CModule::IncludeModule("subscribe")) { $arResult["SUCCESS"] = false; $arResult["MESSAGE"] = "Модуль подписок не установлен на сайте"; } $subscription = new CSubscription(); $sId = $subscription->Add($arFields, $siteID); $sId = intval($sId); if ($sId > 0) { $arResult["ID"] = $sId; $arResult["MESSAGE"] = "На указанный e-mail отправлено письмо для потверждения подписки"; } else { $arResult["SUCCESS"] = false; $arResult["MESSAGE"] = strip_tags($subscription->LAST_ERROR); } return $arResult; }
} if ($strWarning == "") { $arFields = array("USER_ID" => $USER->IsAuthorized() ? $USER->GetID() : false, "FORMAT" => $_REQUEST["FORMAT"] != "html" ? "text" : "html", "EMAIL" => $_REQUEST["EMAIL"], "RUB_ID" => $_REQUEST["RUB_ID"]); $res = false; if ($ID > 0) { //allow edit only after authorization if (CSubscription::IsAuthorized($ID)) { $res = $subscr->Update($ID, $arFields); if ($res) { $iMsg = $subscr->LAST_MESSAGE != "" ? $subscr->LAST_MESSAGE : "UPD"; } } } else { //can add without authorization $arFields["ACTIVE"] = "Y"; $ID = $subscr->Add($arFields); $res = $ID > 0; if ($res) { $iMsg = "SENT"; CSubscription::Authorize($ID); } } if ($res) { //remember e-mail in cookies $bVarsFromForm = false; $APPLICATION->set_cookie("SUBSCR_EMAIL", $_REQUEST["EMAIL"], mktime(0, 0, 0, 12, 31, 2030)); LocalRedirect($APPLICATION->GetCurPage() . "?ID=" . $ID . ($iMsg != "" ? "&mess_code=" . $iMsg : "")); } else { $strWarning .= $subscr->LAST_ERROR; } }
<?php define("STOP_STATISTICS", true); define("PUBLIC_AJAX_MODE", true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; /* * Подписка на рассылки */ if (CModule::IncludeModule("subscribe")) { if (isset($_POST['rassylka']) && $_POST['rassylka'] == "Y") { $arFields = array("USER_ID" => $USER->IsAuthorized() ? $USER->GetID() : false, "FORMAT" => $FORMAT != "html" ? "text" : "html", "EMAIL" => $_POST['email'], "ACTIVE" => "Y", "CONFIRMED" => "Y", 'SEND_CONFIRM' => "N"); $subscr = new CSubscription(); //can add without authorization $IDrassylka = $subscr->Add($arFields); if ($ID > 0) { CSubscription::Authorize($IDrassylka); } /*else $strWarning .= "Error adding subscription: ".$subscr->LAST_ERROR."<br>";*/ } } /* * END Подписка на рассылки */ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";