Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/ram.calc/tools/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/ram.calc/tools/calc.php

<?
define("NOT_CHECK_PERMISSIONS", true);
define("NO_KEEP_STATISTIC", true);

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

$module_id = "ram.calc";

IncludeModuleLangFile(__FILE__);

$ACTION = htmlspecialcharsbx($_REQUEST["ACTION"]);

\Bitrix\Main\Loader::includeModule($module_id);

$arData = $_REQUEST["DATA"];
parse_str($arData["FORM"], $arData["FORM"]);

function decodeArray($array, $inCharset = "utf-8", $outCharset = "windows-1251")
{
    foreach ($array as $key => $value)
    {
        if (is_array($value)) $array[$key] = decodeArray($value);
        else $array[$key] = iconv($inCharset, $outCharset, $value);
    }

    return $array;
}

if (LANG_CHARSET === "windows-1251")
{
	$arData = decodeArray($arData, "utf-8", "windows-1251");
}

switch ($ACTION)
{
	case "DELETE_PROPERTY_DATA_IMAGE":
	{
		if (intval($arData["ID"]) > 0) CFile::Delete(intval($arData["ID"]));
		
		break;
	}
	case "UPLOAD_PROPERTY_DATA_IMAGE":
	{
		$arFile = $_FILES["file"];
		$arFile["MODULE_ID"] = "ram.calc";
		
		if (!CFile::CheckImageFile($arFile))
		{
			if ($fileID = CFile::SaveFile($arFile, "ram.calc")) echo($fileID);
			else echo("error");
		}
		else echo("error");
		
		break;
	}
	case "UPDATE_ADMIN_FIELD_IBLOCK_EXAMPLE":
	{
		$arField["VALUE"] = intval($arData["SERVICE"]["PROPERTIES"]["SOURCE_IBLOCK_EXAMPLE"]);
		
		if ($arField["VALUE"])
		{
			$arElementName = \CRamCalc::IblockElementField(Array("ID" => $arField["VALUE"], "SELECT" => "NAME"));
		
			echo("[".$arField["VALUE"]."] ".$arElementName);
		}
		
		break;
	}
	case "UPDATE_ADMIN_FIELD":
	{
		if (isset($arData["ADD_VALUE"])) $arData["ADD_VALUE"] = true;
		else $arData["ADD_VALUE"] = false;
		
		if ($arData["ID"] === "PROPERTY_DATA")
		{
			if (!empty($arData["PROPERTY"]["DATA"]["VALUES"]))
			{
				foreach ($arData["PROPERTY"]["DATA"]["VALUES"] as $k => $v)
				{
					if (!is_array($v)) unset($arData["PROPERTY"]["DATA"]["VALUES"][$k]);
				}
			}
			
			\CRamCalc::AdminPropertyData(Array("INDEX" => intval($arData["INDEX"]), "ADD_VALUE" => $arData["ADD_VALUE"], "PROPERTY" => $arData["PROPERTY"]));
		}
		else if ($arData["ID"] === "PROPERTY_ITEM")
		{
			$arIblocks = \CRamCalc::IblockList();
		
			$arHighloads = \CRamCalc::HighloadList();
			
			\CRamCalc::AdminProperty
			(
				Array
				(
					"INDEX" => intval($arData["INDEX"]),
					"PROPERTY" => $arData["PROPERTY"],
					"SERVICE" => $arData["SERVICE"],
					"IBLOCKS" => $arIblocks,
					"HIGHLOADS" => $arHighloads,
				)
			);
		}
		else
		{
			\CRamCalc::AdminFieldUpdate($arData);
		}
		
		break;
	}
	case "ADD_PROPERTY":
	{
		$arIblocks = \CRamCalc::IblockList();
		
		$arHighloads = \CRamCalc::HighloadList();
		
		\CRamCalc::AdminProperty
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
				"PROPERTY" => Array("PROPERTIES" => Array("CODE" => intval($arData["CODE"]))),
				"SERVICE" => $arData["SERVICE"],
				"IBLOCKS" => $arIblocks,
				"HIGHLOADS" => $arHighloads,
			)
		);
		
		break;
	}
	case "COPY_PROPERTY":
	{
		$arIblocks = \CRamCalc::IblockList();
		
		$arHighloads = \CRamCalc::HighloadList();
		
		unset($arData["PROPERTY"]["ID"]);
		unset($arData["PROPERTY"]["PROPERTIES"]["SORT"]);
		
		$arData["PROPERTY"]["PROPERTIES"]["NAME"] .= " ".GetMessage("RAM_CALC_COPY");
		$arData["PROPERTY"]["PROPERTIES"]["CODE"] = intval($arData["CODE"]);
		
		\CRamCalc::AdminProperty
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
				"PROPERTY" => $arData["PROPERTY"],
				"SERVICE" => $arData["SERVICE"],
				"IBLOCKS" => $arIblocks,
				"HIGHLOADS" => $arHighloads,
			)
		);
		
		break;
	}
	case "COPY_CALCULATION":
	{
		$arData["CALCULATION"]["NAME"] .= " ".GetMessage("RAM_CALC_COPY");
		$arData["CALCULATION"]["COPY"] = true;
		$arData["CALCULATION"]["CODE"] = intval($arData["CODE"]);
		
		\CRamCalc::AdminCalculation
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
				"CALCULATION" => $arData["CALCULATION"],
			)
		);
		
		break;
	}
	case "ADD_CALCULATION":
	{
		\CRamCalc::AdminCalculation
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
				"CALCULATION" => Array("CODE" => intval($arData["CODE"])),
			)
		);
		
		break;
	}
	case "COPY_CONDITION":
	{
		$arData["CONDITION"]["NAME"] .= " ".GetMessage("RAM_CALC_COPY");
		$arData["CONDITION"]["COPY"] = true;
		
		\CRamCalc::AdminCondition
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
				"CONDITION" => $arData["CONDITION"],
			)
		);
		
		break;
	}
	case "ADD_CONDITION":
	{
		\CRamCalc::AdminCondition
		(
			Array
			(
				"INDEX" => intval($arData["INDEX"]),
			)
		);
		
		break;
	}
}
?>