403Webshell
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/cvetdv.ru/bitrix/components/bitrix/sale.personal.profile.list/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/components/bitrix/sale.personal.profile.list/class.php
<?php

/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage sale
 * @copyright 2001-2016 Bitrix
 */

use Bitrix\Main,
	Bitrix\Main\Localization\Loc,
	Bitrix\Main\Loader;

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

class PersonalProfileList extends CBitrixComponent
{
	const E_SALE_MODULE_NOT_INSTALLED 		= 10000;
	const E_NOT_AUTHORIZED					= 10001;

	/** @var  Main\ErrorCollection $errorCollection*/
	protected $errorCollection;

	/**
	 * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
	 * @param mixed[] $params List of unchecked parameters
	 * @return mixed[] Checked and valid parameters
	 */
	public function onPrepareComponentParams($params)
	{
		$this->errorCollection = new Main\ErrorCollection();

		$params['PATH_TO_DETAIL'] = trim((string)($params['PATH_TO_DETAIL'] ?? ''));
		if ($params['PATH_TO_DETAIL'] === '')
		{
			$params['PATH_TO_DETAIL'] = htmlspecialcharsbx(Main\Context::getCurrent()->getRequest()->getRequestedPage().'?ID=#ID#');
		}
		$params['PATH_TO_DELETE'] = trim((string)($params['PATH_TO_DELETE'] ?? ''));

		$params['PER_PAGE'] = (int)($params['PER_PAGE'] ?? 0);
		if ($params['PER_PAGE'] <= 0)
		{
			$params['PER_PAGE'] = 20;
		}

		$params['SET_TITLE'] = (string)($params['SET_TITLE'] ?? 'Y');

		$params['AUTH_FORM_IN_TEMPLATE'] = (string)($params['AUTH_FORM_IN_TEMPLATE'] ?? '');

		return $params;
	}

	public function executeComponent()
	{
		global $APPLICATION, $USER;

		Loc::loadMessages(__FILE__);

		$this->setFrameMode(false);

		$this->checkRequiredModules();

		$this->arResult['ERRORS'] = array();
		if (!$USER->IsAuthorized())
		{
			if(!$this->arParams['AUTH_FORM_IN_TEMPLATE'])
			{
				$this->arResult['USER_IS_NOT_AUTHORIZED'] = 'Y';
				$APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED"), false, false, 'N', false);
			}
			else
			{
				$this->arResult['ERRORS'][self::E_NOT_AUTHORIZED] = GetMessage("SALE_ACCESS_DENIED");
			}
		}

		if($this->arParams["SET_TITLE"] == 'Y')
			$APPLICATION->SetTitle(GetMessage("SPPL_DEFAULT_TITLE"));

		$request = Main\Context::getCurrent()->getRequest();

		$errorMessage = "";
		$deleteElementId = (int)($request->get("del_id"));
		if ($deleteElementId > 0 && check_bitrix_sessid())
		{
			$dbUserProps = CSaleOrderUserProps::GetList(
				array(),
				array(
					"ID" => $deleteElementId,
					"USER_ID" => (int)($USER->GetID())
				)
			);
			if ($arUserProps = $dbUserProps->Fetch())
			{
				if (!CSaleOrderUserProps::Delete($arUserProps["ID"]))
				{
					$errorMessage = GetMessage("SALE_DEL_PROFILE");
				}
			}
			else
			{
				$errorMessage = GetMessage("SALE_NO_PROFILE");
			}
			if($errorMessage <> '')
				LocalRedirect($APPLICATION->GetCurPageParam("del_id=".$deleteElementId, Array("del_id", "sessid")));
			else
				LocalRedirect($APPLICATION->GetCurPageParam("success_del_id=".$deleteElementId, Array("del_id", "sessid")));
		}

		if ($deleteElementId > 0)
		{
			$errorMessage = GetMessage("SALE_DEL_PROFILE", ["#ID#" => $deleteElementId]);
		}
		else
		{
			$successDeleteElementId = (int)$request->get('success_del_id');
			if ($successDeleteElementId > 0)
			{
				$errorMessage = GetMessage("SALE_DEL_PROFILE_SUC", ["#ID#" => $successDeleteElementId]);
			}
		}

		if($errorMessage <> '')
		{
			$this->arResult["ERROR_MESSAGE"] = $errorMessage;
			$this->arResult['ERRORS'][] = $errorMessage;
		}

		$by = (string)($request->get("by"));
		if ($by === '')
		{
			$by = "DATE_UPDATE";
		}
		$order = (string)($request->get("order"));
		if ($order === '')
		{
			$order = "DESC";
		}

		$this->arResult['PROFILES'] = [];
		$personTypeList = $this->getPersonTypes();
		if (!empty($personTypeList))
		{
			$dbUserProps = CSaleOrderUserProps::GetList(
				[$by => $order],
				[
					"USER_ID" => (int)($GLOBALS["USER"]->GetID()),
					"@PERSON_TYPE_ID" => array_keys($personTypeList),
				]
			);
			$dbUserProps->NavStart($this->arParams["PER_PAGE"]);
			$this->arResult["NAV_STRING"] = $dbUserProps->GetPageNavString(GetMessage("SPPL_PAGES"));
			while ($arUserProps = $dbUserProps->GetNext())
			{
				$arResultTmp = $arUserProps;
				$arResultTmp["PERSON_TYPE"] = $personTypeList[$arUserProps["PERSON_TYPE_ID"]];
				$arResultTmp["PERSON_TYPE"]["NAME"] = htmlspecialcharsEx($arResultTmp["PERSON_TYPE"]["NAME"]);

				$arResultTmp["URL_TO_DETAIL"] = CComponentEngine::MakePathFromTemplate($this->arParams["PATH_TO_DETAIL"],
					["ID" => $arUserProps["ID"]]);
				if (empty($this->arParams['PATH_TO_DELETE']))
				{
					$arResultTmp["URL_TO_DETELE"] = htmlspecialcharsbx($APPLICATION->GetCurPage()
						. "?del_id="
						. $arUserProps["ID"]
						. "&"
						. bitrix_sessid_get());
				}
				else
				{
					$arResultTmp["URL_TO_DETELE"] = CComponentEngine::MakePathFromTemplate($this->arParams["PATH_TO_DELETE"],
							["ID" => $arUserProps["ID"]]) . "&" . bitrix_sessid_get();
				}
				$this->arResult["PROFILES"][] = $arResultTmp;
			}
		}

		if ($request->get('SECTION'))
		{
			$this->arResult["URL"] = htmlspecialcharsbx($request->getRequestedPage()."?SECTION=".$request->get('SECTION')."&");
		}
		else
		{
			$this->arResult["URL"] = htmlspecialcharsbx($request->getRequestedPage()."?");
		}

		$this->includeComponentTemplate();
	}


	/**
	 * Function checks if required modules installed. If not, throws an exception
	 * @throws Main\SystemException
	 * @return void
	 */
	protected function checkRequiredModules()
	{
		if (!Loader::includeModule('sale'))
		{
			throw new Main\SystemException(Loc::getMessage("SALE_MODULE_NOT_INSTALL"), self::E_SALE_MODULE_NOT_INSTALLED);
		}
	}

	protected function getPersonTypes(): array
	{
		$result = [];

		$iterator = Bitrix\Sale\PersonType::getList([
			'filter' => [
				'=PERSON_TYPE_SITE.SITE_ID' => SITE_ID,
			],
			'order' => [
				"SORT" => "ASC",
				"ID"=>"ASC",
			],
		]);
		while ($row = $iterator->fetch())
		{
			$result[$row['ID']] = $row;
		}
		unset($row, $iterator);

		return $result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit