AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.145.104.137
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/modules/catalog/general/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/modules/catalog/general/extra.php
<?
use Bitrix\Main\Localization\Loc;
use Bitrix\Catalog;

Loc::loadMessages(__FILE__);

class CAllExtra
{
	protected static $arExtraCache = array();

	public static function ClearCache()
	{
		self::$arExtraCache = array();
	}

	public static function GetByID($ID)
	{
		global $DB;

		$ID = (int)$ID;
		if ($ID <= 0)
			return false;

		if (isset(self::$arExtraCache[$ID]))
		{
			return self::$arExtraCache[$ID];
		}
		else
		{
			$strSql = "SELECT ID, NAME, PERCENTAGE FROM b_catalog_extra WHERE ID = ".$ID;
			$db_res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
			$res = $db_res->Fetch();
			if (!empty($res))
				return $res;
		}
		return false;
	}

	public static function SelectBox($sFieldName, $sValue, $sDefaultValue = "", $JavaChangeFunc = "", $sAdditionalParams = "")
	{
		if (empty(self::$arExtraCache))
		{
			self::$arExtraCache = Catalog\ExtraTable::getExtraList();
		}
		$s = '<select name="'.$sFieldName.'"';
		if (!empty($JavaChangeFunc))
			$s .= ' onchange="'.$JavaChangeFunc.'"';
		if (!empty($sAdditionalParams))
			$s .= ' '.$sAdditionalParams.' ';
		$s .= '>';
		$sValue = intval($sValue);
		$boolFound = isset(self::$arExtraCache[$sValue]);
		if (!empty($sDefaultValue))
			$s .= '<option value="0"'.($boolFound ? '' : ' selected').'>'.htmlspecialcharsex($sDefaultValue).'</option>';

		foreach (self::$arExtraCache as &$arExtra)
		{
			$s .= '<option value="'.$arExtra['ID'].'"'.($arExtra['ID'] == $sValue ? ' selected' : '').'>'.htmlspecialcharsex($arExtra['NAME']).' ('.htmlspecialcharsex($arExtra['PERCENTAGE']).'%)</option>';
		}
		if (isset($arExtra))
			unset($arExtra);
		return $s.'</select>';
	}

	public static function Update($ID, $arFields)
	{
		global $DB;

		$ID = (int)$ID;
		if ($ID <= 0)
			return false;
		if (!static::CheckFields('UPDATE', $arFields, $ID))
			return false;

		$strUpdate = $DB->PrepareUpdate("b_catalog_extra", $arFields);
		if (!empty($strUpdate))
		{
			$strSql = "UPDATE b_catalog_extra SET ".$strUpdate." WHERE ID = ".$ID;
			$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);

			if (isset($arFields['RECALCULATE']) && 'Y' == $arFields['RECALCULATE'])
			{
				CPrice::ReCalculate('EXTRA', $ID, $arFields['PERCENTAGE']);
			}
			static::ClearCache();
			Catalog\ExtraTable::cleanCache();
			Catalog\Model\Price::clearSettings();
		}

		return true;
	}

	public static function Delete($ID)
	{
		global $DB;
		$ID = (int)$ID;
		if ($ID <= 0)
			return false;
		$DB->Query("UPDATE b_catalog_price SET EXTRA_ID = NULL WHERE EXTRA_ID = ".$ID);
		static::ClearCache();
		Catalog\ExtraTable::cleanCache();
		Catalog\Model\Price::clearSettings();

		return $DB->Query("DELETE FROM b_catalog_extra WHERE ID = ".$ID, true);
	}

	public static function CheckFields($strAction, &$arFields, $ID = 0)
	{
		global $APPLICATION;

		$arMsg = array();
		$boolResult = true;

		$strAction = mb_strtoupper($strAction);

		$ID = (int)$ID;
		if ('UPDATE' == $strAction && 0 >= $ID)
		{
			$arMsg[] = array('id' => 'ID', 'text' => Loc::getMessage('CAT_EXTRA_ERR_UPDATE_NOT_ID'));
			$boolResult = false;
		}
		if (array_key_exists('ID', $arFields))
		{
			unset($arFields['ID']);
		}

		if ('ADD' == $strAction)
		{
			if (!array_key_exists('NAME', $arFields))
			{
				$arMsg[] = array('id' => 'NAME', 'text' => Loc::getMessage('CAT_EXTRA_ERROR_NONAME'));
				$boolResult = false;
			}
			if (!array_key_exists('PERCENTAGE', $arFields))
			{
				$arMsg[] = array('id' => 'PERCENTAGE', 'text' => Loc::getMessage('CAT_EXTRA_ERROR_NOPERCENTAGE'));
				$boolResult = false;
			}
		}

		if ($boolResult)
		{
			if (array_key_exists('NAME', $arFields))
			{
				$arFields["NAME"] = trim($arFields["NAME"]);
				if ('' == $arFields["NAME"])
				{
					$arMsg[] = array('id' => 'NAME', 'text' => Loc::getMessage('CAT_EXTRA_ERROR_NONAME'));
					$boolResult = false;
				}
			}
			if (array_key_exists('PERCENTAGE', $arFields))
			{
				$arFields["PERCENTAGE"] = trim($arFields["PERCENTAGE"]);
				if ('' == $arFields["PERCENTAGE"])
				{
					$arMsg[] = array('id' => 'PERCENTAGE', 'text' => Loc::getMessage('CAT_EXTRA_ERROR_NOPERCENTAGE'));
					$boolResult = false;
				}
				else
				{
					$arFields["PERCENTAGE"] = doubleval($arFields["PERCENTAGE"]);
				}
			}
		}

		if (!$boolResult)
		{
			$obError = new CAdminException($arMsg);
			$APPLICATION->ResetException();
			$APPLICATION->ThrowException($obError);
		}
		return $boolResult;
	}

	/**
	 * @deprecated deprecated since catalog 12.5.6
	 *
	 * @param array $arFields
	 * @param int $intID
	 * @return false
	 */
	public static function PrepareInsert(&$arFields, &$intID)
	{
		return false;
	}
}

Anon7 - 2022
AnonSec Team