AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.131.13.41
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/components/bitrix/subscribe.simple/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/components/bitrix/subscribe.simple//component.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

if(!CModule::IncludeModule("subscribe"))
{
	ShowError(GetMessage("CC_BSS_MODULE_NOT_INSTALLED"));
	return;
}

if(!isset($arParams["CACHE_TIME"]))
	$arParams["CACHE_TIME"] = 3600;
if($arParams["SHOW_HIDDEN"]!="Y")
	$arParams["SHOW_HIDDEN"] = "N";
if($arParams["SET_TITLE"]!="N")
	$arParams["SET_TITLE"] = "Y";

$obSubscription = new CSubscription;
$arResult["ERRORS"] = array();
$bVarsFromForm = false;

if(is_object($USER) && $USER->GetID() > 0)
{
	$USER_ID = $USER->GetID();
}
else
{
	ShowError(GetMessage("CC_BSS_NOT_AUTHORIZED"));
	return;
}

if($USER_ID && $_SERVER["REQUEST_METHOD"] == "POST" && array_key_exists("Update", $_POST) && check_bitrix_sessid())
{
	//Find out what rubrics was chosen by the user
	$arNewRubrics = array();
	if(is_array($_POST["RUB_ID"]))
	{
		foreach($_POST["RUB_ID"] as $rub_id)
		{
			$rub_id = intval($rub_id);
			if($rub_id > 0)
				$arNewRubrics[$rub_id] = $rub_id;
		}
	}

	//Get his subscription
	$rsSubscription = $obSubscription->GetList(array(), array("USER_ID" => $USER_ID));
	$arSubscription = $rsSubscription->Fetch();

	//And when hidden rubrics and rubrics from another site
	//not displayed we'll save their subscription (if exists)
	if(is_array($arSubscription))
	{
		$rsRubrics = CSubscription::GetRubricList($arSubscription["ID"]);
		while($arRubric = $rsRubrics->Fetch())
		{
			if($arRubric["LID"] != SITE_ID)
			{
				$arNewRubrics[$arRubric["ID"]] = $arRubric["ID"];
			}
			else
			{
				if($arParams["SHOW_HIDDEN"] == "N" && $arRubric["VISIBLE"] == "N")
					$arNewRubrics[$arRubric["ID"]] = $arRubric["ID"];
			}
		}
	}

	//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 //Add or change
	{
		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"];
	unset($_SESSION["subscribe.simple.message"]);
}
else
{
	$arResult["MESSAGE"] = "";
}

if($arParams["SET_TITLE"]=="Y")
	$APPLICATION->SetTitle(GetMessage("CC_BSS_TITLE"), array('COMPONENT_NAME' => $this->GetName()));

$arResult["FORM_ACTION"] = $APPLICATION->GetCurPage();

$arResult["FORMAT"] = false;
$arResult["RUB_ID"] = array();
if($bVarsFromForm)
{
	$arResult["FORMAT"] = $_POST["FORMAT"] == "html"? "html": "text";
	$arResult["RUB_ID"] = $arNewRubrics;
}
elseif($USER_ID)
{
	$rsSubscription = $obSubscription->GetList(array(), array("USER_ID" => $USER_ID));
	$arSubscription = $rsSubscription->Fetch();
	if($arSubscription)
	{
		$arResult["FORMAT"] = $arSubscription["FORMAT"];
		$rsRubrics = CSubscription::GetRubricList($arSubscription["ID"]);
		while($arRubric = $rsRubrics->Fetch())
			$arResult["RUB_ID"][$arRubric["ID"]] = $arRubric["ID"];
	}
}

$obCache = new CPHPCache;
$strCacheID = LANG.$arParams["SHOW_HIDDEN"].$this->GetRelativePath();
if($obCache->StartDataCache($arParams["CACHE_TIME"], $strCacheID, "/".SITE_ID.$this->GetRelativePath()))
{
	$arFilter = array(
		"ACTIVE" => "Y",
		"LID" => SITE_ID,
	);
	if($arParams["SHOW_HIDDEN"] == "N")
		$arFilter["VISIBLE"] = "Y";

	$rsRubrics = CRubric::GetList(array("SORT"=>"ASC", "NAME"=>"ASC"), $arFilter);
	$arRubrics = array();
	while($arRubric = $rsRubrics->GetNext())
	{
		$arRubrics[] = $arRubric;
	}
	$obCache->EndDataCache($arRubrics);
}
else
{
	$arRubrics = $obCache->GetVars();
}

$arResult["RUBRICS"] = array();
foreach($arRubrics as $arRubric)
{
	$arResult["RUBRICS"][] = array(
		"ID" => $arRubric["ID"],
		"NAME" => $arRubric["NAME"],
		"DESCRIPTION" => $arRubric["DESCRIPTION"],
		"CHECKED" => array_key_exists($arRubric["ID"], $arResult["RUB_ID"]),
	);
}

$this->IncludeComponentTemplate();
?>

Anon7 - 2022
AnonSec Team