• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/gadget.php
  • Класс: BXGadget
  • Вызов: BXGadget::SavePositions
static function SavePositions($arParams, $positions)
{
	$allOptions = static::readSettings($arParams);

	$arUserOptions = ($arParams["MULTIPLE"] == "Y" ? $allOptions[$arParams["DESKTOP_PAGE"]] : $allOptions);

	$arNewUserOptions = ["GADGETS" => []];

	if (isset($arUserOptions["COLS"]))
	{
		$arNewUserOptions["COLS"] = $arUserOptions["COLS"];
	}
	if (isset($arUserOptions["arCOLUMN_WIDTH"]))
	{
		$arNewUserOptions["arCOLUMN_WIDTH"] = $arUserOptions["arCOLUMN_WIDTH"];
	}
	if (isset($arUserOptions["NAME"]))
	{
		$arNewUserOptions["NAME"] = $arUserOptions["NAME"];
	}

	foreach ($positions as $col => $items)
	{
		foreach ($items as $row => $gdId)
		{
			if(mb_substr($gdId, -2, 2) == "*H")
			{
				$gdId = mb_substr($gdId, 0, -2);
				$hidden = true;
			}
			else
			{
				$hidden = false;
			}

			$arNewUserOptions["GADGETS"][$gdId] = $arUserOptions["GADGETS"][$gdId] ?? [];
			$arNewUserOptions["GADGETS"][$gdId]["COLUMN"] = $col;
			$arNewUserOptions["GADGETS"][$gdId]["ROW"] = $row;
			$arNewUserOptions["GADGETS"][$gdId]["HIDE"] = ($hidden? "Y" : "N");
		}
	}

	if ($arParams["MULTIPLE"] == "Y")
	{
		$allOptions[$arParams["DESKTOP_PAGE"]] = $arNewUserOptions;
	}
	else
	{
		$allOptions = $arNewUserOptions;
	}

	static::writeSettings($allOptions, $arParams);
}