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/ilovecveti.ru/bitrix/modules/sale/lib/rest/synchronization/loader/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/sale/lib/rest/synchronization/loader/product.php
<?php


namespace Bitrix\Sale\Rest\Synchronization\Loader;

use Bitrix\Main\ArgumentException;
use Bitrix\Main\Entity\DataManager;
use Bitrix\Main\Loader;
use Bitrix\Sale\Registry;

class Product extends Entity
{
	public function getFieldsByExternalId($code)
	{
		$result = array();

		Loader::includeModule('iblock');
		Loader::includeModule('catalog');

		$iblockIds = [];
		$row = \Bitrix\Catalog\CatalogIblockTable::getList([
			'select' => ['IBLOCK_ID'],
			'filter' => ['=IBLOCK.ACTIVE'=>'Y']
		]);
		while ($res = $row->fetch())
			$iblockIds[] = $res['IBLOCK_ID'];

		//TODO: необходимо переделать на вызов метода каталога, который на вход полчучает произвольный product_xml_id и возвращает продукт каталога.
		if (empty($iblockIds))
		{
				// nothing here
		}
		else
		{
			$r = \CIBlockElement::GetList(array(),
				array("=XML_ID" => $code, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", "IBLOCK_ID"=>$iblockIds),
				false,
				false,
				array("ID", "IBLOCK_ID", "XML_ID", "NAME", "DETAIL_PAGE_URL")
			);
			if($ar = $r->GetNext())
			{
				$result = $ar;
				$product = \CCatalogProduct::GetByID($ar["ID"]);

				$result["WEIGHT"] = $product["WEIGHT"];
				$result["CATALOG_GROUP_NAME"] = $product["CATALOG_GROUP_NAME"];

				$productIBlock = static::getIBlockProduct($ar["IBLOCK_ID"]);
				$result["IBLOCK_XML_ID"] = $productIBlock[$ar["IBLOCK_ID"]]["XML_ID"];
			}
		}

		return $result;
	}

	public function getCodeAfterDelimiter($code)
	{
		$result = '';

		if(mb_strpos($code, '#') !== false)
		{
			$code = explode('#', $code);
			$result = $code[1];
		}
		return $result;
	}

	private static function getIBlockProduct($iblockId)
	{
		static $iblock_fields = null;

		if($iblock_fields[$iblockId] == null)
		{
			$r = \CIBlock::GetList(array(), array("ID" => $iblockId));
			if ($ar = $r->Fetch())
				$iblock_fields[$iblockId] = $ar;
		}
		return $iblock_fields;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit