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/rospirotorg.ru/bitrix/modules/sale/admin/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sale/admin/delivery_ajax.php
<?php
/**
 * Bitrix Framework
 * @global CMain $APPLICATION
 */

use Bitrix\Main\Application;
use Bitrix\Main\Localization\Loc;
use Bitrix\Sale\Delivery\Restrictions;

const NO_KEEP_STATISTIC = true;
const NO_AGENT_STATISTIC = true;
const NO_AGENT_CHECK = true;
const NOT_CHECK_PERMISSIONS = true;

if (isset($_REQUEST['publicMode']) && $_REQUEST['publicMode'] === 'Y')
{
	define("PUBLIC_MODE", true);
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

if (isset($_REQUEST['publicMode']) && $_REQUEST['publicMode'] === 'Y')
{
	define('SELF_FOLDER_URL', '/shop/settings/');
}

$instance = Application::getInstance();
$context = $instance->getContext();
$request = $context->getRequest();

$lang = isset($_REQUEST['lang']) ? trim($_REQUEST['lang']) : "ru";
$context->setLanguage($lang);

$arResult = array("ERROR" => "");

if (!\Bitrix\Main\Loader::includeModule('sale'))
{
	$arResult["ERROR"] = "Error! Can't include module \"Sale\"";
}

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/lib/delivery/inputs.php");

$saleModulePermissions = $APPLICATION->GetGroupRight("sale");

if($arResult["ERROR"] == '' && $saleModulePermissions >= "W" && check_bitrix_sessid())
{
	$action = trim((string)$request->get('action'));

	switch ($action)
	{
		case "get_group_dialog_content":
			$selectedGroupId = isset($_REQUEST['selectedGroupId']) ? trim($_REQUEST['selectedGroupId']): '';
			die(
				"<table><tr><td>".
					\Bitrix\Sale\Delivery\Helper::getGroupChooseControl(
						$selectedGroupId,
						"DELIVERY_GROUP[]",
						' size="10" style="width: 300px;"'
					).
				"</td></tr></table>"
			);
			break;

		case "get_restriction_params_html":
			Restrictions\Manager::getClassesList();
			$className = trim((string)$request->get('className'));
			$params = $request->get('params');
			if (!is_array($params))
			{
				$params = [];
			}
			$sort = (int)($request->get('sort') ?? 100);
			$deliveryId = (int)$request->get('deliveryId');

			if (!($className && class_exists($className) && is_subclass_of($className, '\Bitrix\Sale\Services\Base\Restriction')))
			{
				throw new \Bitrix\Main\ArgumentNullException('className');
			}

			/** @var \Bitrix\Sale\Delivery\Restrictions\Base $className*/
			$paramsStructure = $className::getParamsStructure($deliveryId);
			$params = htmlspecialcharsback($params);
			$params = $className::prepareParamsValues($params, $deliveryId);

			$paramsField = '<table width="100%">';

			foreach($paramsStructure as $name => $param)
			{
				$param['LABEL'] = (string)($param['LABEL'] ?? '');
				$paramsField .= '<tr>'
					. '<td valign="top" style="padding-right:20px;">'
					.($param['LABEL'] !== '' ? $param['LABEL'] . ': ' : '')
					. '</td>'
					. '<td>'
					. \Bitrix\Sale\Internals\Input\Manager::getEditHtml(
						'RESTRICTION[' . $name . ']',
						$param,
						$params[$name] ?? null
					)
					. '</td>'
					. '</tr>'
				;
			}

			$paramsField .= '<tr>'.
				'<td>'.Loc::getMessage("SALE_DA_SORT") .':</td>'.
				'<td><input type="text" name="SORT" value="'.$sort.'"></td>'.
				'</tr>';

			$description = (string)$className::getClassDescription();
			if ($description !== '')
			{
				$paramsField .=
					'<tr>'
					. '<td>'
					. Loc::getMessage("SALE_DA_DESCR")
					. ':</td>'
					. '<td><div class="adm-sale-delivery-restriction-descr">'
					. $description
					. '</div></td>'
					. '</tr>'
				;
			}

			$arResult["RESTRICTION_HTML"] = $paramsField."</table>";
			break;

		case "save_restriction":
			Restrictions\Manager::getClassesList();
			$className = trim((string)$request->get('className'));
			$params = $request->get('params');
			if (!is_array($params))
			{
				$params = [];
			}
			$sort = (int)($request->get('sort') ?? 100);
			$deliveryId = (int)$request->get('deliveryId');
			$restrictionId = (int)$request->get('restrictionId');

			if (!($className && class_exists($className) && is_subclass_of($className, '\Bitrix\Sale\Services\Base\Restriction')))
			{
				throw new \Bitrix\Main\ArgumentNullException('className');
			}

			if(!$deliveryId)
			{
				throw new \Bitrix\Main\ArgumentNullException('deliveryId');
			}

			/** @var \Bitrix\Sale\Delivery\Restrictions\Base $className*/
			foreach($className::getParamsStructure() as $key => $rParams)
			{
				$errors = \Bitrix\Sale\Internals\Input\Manager::getError($rParams, $params[$key]);

				if (!empty($errors))
				{
					$arResult['ERROR'] = 'Field: "' . $rParams['LABEL'] . '" ' . implode('<br>', $errors) . "<br>\n";
				}
			}

			$fields = array(
				"SERVICE_ID" => $deliveryId,
				"SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT,
				"SORT" => $sort,
				"PARAMS" => $params
			);

			$res = $className::save($fields, $restrictionId);

			if(!$res->isSuccess())
				$arResult["ERROR"] .= implode(".",$res->getErrorMessages());

			$arResult["HTML"] = getRestrictionHtml($deliveryId);

			break;

		case "delete_restriction":
			Restrictions\Manager::getClassesList();
			$deliveryId = (int)$request->get('deliveryId');
			$restrictionId = (int)$request->get('restrictionId');

			if(!$restrictionId)
				throw new \Bitrix\Main\ArgumentNullException('restrictionId');

			$dbRes =  \Bitrix\Sale\Internals\ServiceRestrictionTable::getById($restrictionId);
			if($fields = $dbRes->fetch())
			{
				$res = $fields["CLASS_NAME"]::delete($restrictionId, $deliveryId);

				if(!$res->isSuccess())
					$arResult["ERROR"] .= implode(".",$res->getErrorMessages());
			}
			else
			{
				$arResult["ERROR"] .= "Can't find restriction with id: ".$restrictionId;
			}

			$arResult["HTML"] = getRestrictionHtml($deliveryId);

			break;

		default:
			$arResult["ERROR"] = "Error! Wrong action!";
			break;
	}
}
else
{
	if($arResult["ERROR"] == '')
		$arResult["ERROR"] = "Error! Access denied";
}

if($arResult["ERROR"] <> '')
	$arResult["RESULT"] = "ERROR";
else
	$arResult["RESULT"] = "OK";

$APPLICATION->RestartBuffer();
header('Content-Type: application/json;  charset=UTF-8');
try
{
	$body = \Bitrix\Main\Web\Json::encode($arResult);
}
catch (\Bitrix\Main\ArgumentException $e)
{
	$body = json_encode([
		'RESULT' => 'ERROR',
		'ERROR' => $e->getMessage(),
	]);
}
\CMain::FinalActions($body);

function getRestrictionHtml($deliveryId)
{
	if(intval($deliveryId) <= 0)
		throw new \Bitrix\Main\ArgumentNullException("deliveryId");

	$_REQUEST['table_id'] = 'table_delivery_restrictions';
	$_REQUEST['admin_history'] = 'Y';
	$_GET['ID'] = $deliveryId;

	ob_start();
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/admin/delivery_restrictions_list.php");
	$restrictionsHtml = ob_get_contents();
	ob_end_clean();

	return $restrictionsHtml;
}

Youez - 2016 - github.com/yon3zu
LinuXploit