Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/components/bitrix/subscribe.index/ |
Upload File : |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die(); } /** @var CBitrixComponent $this */ /** @var array $arParams */ /** @var array $arResult */ /** @var string $componentPath */ /** @var string $componentName */ /** @var string $componentTemplate */ /** @var CDatabase $DB */ /** @var CUser $USER */ /** @var CMain $APPLICATION */ $this->setFrameMode(false); if (!CModule::IncludeModule('subscribe')) { ShowError(GetMessage('SUBSCR_MODULE_NOT_INSTALLED')); return; } if (!isset($arParams['CACHE_TIME'])) { $arParams['CACHE_TIME'] = 3600; } if (!isset($arParams['PAGE']) || $arParams['PAGE'] == '') { $arParams['PAGE'] = COption::GetOptionString('subscribe', 'subscribe_section') . 'subscr_edit.php'; } $arParams['SHOW_HIDDEN'] = $arParams['SHOW_HIDDEN'] == 'Y'; $arParams['SHOW_COUNT'] = $arParams['SHOW_COUNT'] == 'Y'; $arParams['SET_TITLE'] = $arParams['SET_TITLE'] != 'N'; //get current user subscription from cookies $arSubscription = CSubscription::GetUserSubscription(); //get user's newsletter categories $arSubscriptionRubrics = CSubscription::GetRubricArray(intval($arSubscription['ID'])); //get site's newsletter categories $obCache = new CPHPCache; $strCacheID = LANGUAGE_ID . $arParams['SHOW_HIDDEN'] . $this->getRelativePath(); if ($obCache->StartDataCache($arParams['CACHE_TIME'], $strCacheID, '/' . SITE_ID . $this->getRelativePath())) { $arFilter = ['ACTIVE' => 'Y', 'LID' => SITE_ID]; if (!$arParams['SHOW_HIDDEN']) { $arFilter['VISIBLE'] = 'Y'; } $rsRubric = CRubric::GetList(['SORT' => 'ASC', 'NAME' => 'ASC'], $arFilter); $arRubrics = []; while ($arRubric = $rsRubric->GetNext()) { $arRubric['SUBSCRIBER_COUNT'] = $arParams['SHOW_COUNT'] ? CRubric::GetSubscriptionCount($arRubric['ID']) : 0; $arRubrics[] = $arRubric; } $obCache->EndDataCache($arRubrics); } else { $arRubrics = $obCache->GetVars(); } if (!$arRubrics) { ShowError(GetMessage('SUBSCR_NO_RUBRIC_FOUND')); return; } $arResult['FORM_ACTION'] = htmlspecialcharsbx(str_replace('#SITE_DIR#', LANG_DIR, $arParams['PAGE'])); $arResult['SHOW_COUNT'] = $arParams['SHOW_COUNT']; if ($arSubscription['EMAIL'] <> '') { $arResult['EMAIL'] = htmlspecialcharsbx($arSubscription['EMAIL']); } else { $arResult['EMAIL'] = htmlspecialcharsbx($USER->GetParam('EMAIL')); } //check whether already authorized $arResult['SHOW_PASS'] = true; if ($arSubscription['ID'] > 0) { //try to authorize user account's subscription if ($arSubscription['USER_ID'] > 0 && !CSubscription::IsAuthorized($arSubscription['ID'])) { CSubscription::Authorize($arSubscription['ID'], ''); } //check authorization if (CSubscription::IsAuthorized($arSubscription['ID'])) { $arResult['SHOW_PASS'] = false; } } $arResult['RUBRICS'] = []; foreach ($arRubrics as $arRubric) { $bChecked = ( // user is already subscribed !is_array($_REQUEST['sf_RUB_ID']) && in_array($arRubric['ID'], $arSubscriptionRubrics) || // or there is no information about user subscription !is_array($_REQUEST['sf_RUB_ID']) && intval($arSubscription['ID']) == 0 || // or user has checked the category and posted the form is_array($_REQUEST['sf_RUB_ID']) && in_array($arRubric['ID'], $_REQUEST['sf_RUB_ID']) ); $arResult['RUBRICS'][] = [ 'ID' => $arRubric['ID'], 'NAME' => $arRubric['NAME'], 'DESCRIPTION' => $arRubric['DESCRIPTION'], 'CHECKED' => $bChecked, 'SUBSCRIBER_COUNT' => $arRubric['SUBSCRIBER_COUNT'], ]; } if ($arParams['SET_TITLE'] == 'Y') { $APPLICATION->SetTitle(GetMessage('SUBSCR_PAGE_TITLE'), ['COMPONENT_NAME' => $this->getName()]); } $this->includeComponentTemplate();