• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/discount/discountmanager.php
  • Класс: BitrixCatalogDiscountDiscountManager
  • Вызов: DiscountManager::getEditUrl
static function getEditUrl(array $discount): string
{
	if (empty(self::$editUrlTemplate))
	{
		self::$editUrlTemplate = [
			CatalogDiscountTable::TYPE_DISCOUNT => '/bitrix/admin/cat_discount_edit.php?lang='.LANGUAGE_ID.'&ID=',
			CatalogDiscountTable::TYPE_DISCOUNT_SAVE => '/bitrix/admin/cat_discsave_edit.php?lang='.LANGUAGE_ID.'&ID='
		];
	}
	$result = '';
	if (empty($discount['ID']) || (int)$discount['ID'] <= 0)
		return $result;

	$id = (int)$discount['ID'];
	$type = -1;
	if (isset($discount['TYPE']))
		$type = (int)$discount['TYPE'];

	if ($type != CatalogDiscountTable::TYPE_DISCOUNT && $type != CatalogDiscountTable::TYPE_DISCOUNT_SAVE)
	{
		if (isset(self::$typeCache[$id]))
		{
			$type = self::$typeCache[$id];
		}
		else
		{
			$discountIterator = CatalogDiscountTable::getList([
				'select' => ['ID', 'TYPE'],
				'filter' => ['=ID' => $id]
			]);
			$data = $discountIterator->fetch();
			if (!empty($data))
			{
				$type = (int)$data['TYPE'];
				self::$typeCache[$id] = $type;
			}
			unset($data, $discountIterator);
		}
	}
	if (isset(self::$editUrlTemplate[$type]))
		$result = self::$editUrlTemplate[$type].$id;
	unset($type, $id);
	return $result;
}