Your IP : 18.218.150.40


Current Path : /home/bitrix/ext_www/dev.klimatlend.ua/bitrix/modules/catalog/admin/
Upload File :
Current File : /home/bitrix/ext_www/dev.klimatlend.ua/bitrix/modules/catalog/admin/1c_admin.php

<?
/** @global CUser $USER */
/** @global CMain $APPLICATION */
use Bitrix\Main,
	Bitrix\Main\Loader,
	Bitrix\Main\Localization\Loc;

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$module_id = "catalog";

if ($USER->CanDoOperation('catalog_read')) :

	if ($ex = $APPLICATION->GetException())
	{
		require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
		ShowError($ex->GetString());
		require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
		die();
	}

	Loc::loadMessages(__FILE__);

	if (Loader::includeModule('iblock')):

		$arIBlockType = array(
			"-" => Loc::getMessage("CAT_1C_CREATE"),
		);
		$rsIBlockType = CIBlockType::GetList(array("sort"=>"asc"), array("ACTIVE"=>"Y"));
		while ($arr=$rsIBlockType->Fetch())
		{
			if($ar=CIBlockType::GetByIDLang($arr["ID"], LANGUAGE_ID))
				$arIBlockType[$arr["ID"]] = "[".$arr["ID"]."] ".$ar["NAME"];
			unset($ar);
		}
		unset($arr, $rsIBlockType);

		$rsSite = CSite::GetList($by="sort", $order="asc", $arFilter=array("ACTIVE" => "Y"));
		$arSites = array(
			"-" => Loc::getMessage("CAT_1C_CURRENT"),
		);
		while ($arSite = $rsSite->GetNext())
			$arSites[$arSite["LID"]] = $arSite["NAME"];
		unset($arSite, $rsSite);

		$arUGroupsEx = Array();
		$dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc");
		while($arUGroups = $dbUGroups -> Fetch())
		{
			$arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"];
		}

		$arAction = array(
			"N" => Loc::getMessage("CAT_1C_NONE"),
			"A" => Loc::getMessage("CAT_1C_DEACTIVATE"),
			"D" => Loc::getMessage("CAT_1C_DELETE"),
		);

		$arBaseOptions = array(
			array("1C_IBLOCK_TYPE", Loc::getMessage("CAT_1C_IBLOCK_TYPE"), "-", array("list", $arIBlockType)),
			array("1C_SITE_LIST", Loc::getMessage("CAT_1C_SITE_LIST"), "-", array("list", $arSites)),
			array("1C_GROUP_PERMISSIONS", Loc::getMessage("CAT_1C_GROUP_PERMISSIONS"), "1", array("mlist", 5, $arUGroupsEx)),
			array("1C_USE_OFFERS", Loc::getMessage("CAT_1C_USE_OFFERS_2"), "N", array("checkbox")),
			array("1C_TRANSLIT_ON_ADD", Loc::getMessage("CAT_1C_TRANSLIT_ON_ADD_2"), "Y", array("checkbox")),
			array("1C_TRANSLIT_ON_UPDATE", Loc::getMessage("CAT_1C_TRANSLIT_ON_UPDATE_2"), "Y", array("checkbox")),
			array("1C_TRANSLIT_REPLACE_CHAR", Loc::getMessage("CAT_1C_TRANSLIT_REPLACE_CHAR"), "_", array("text", 1)),
		);

		$arExtOptions = array(
			array("1C_INTERVAL", Loc::getMessage("CAT_1C_INTERVAL"), "30", array("text", 20)),
			array("1C_FILE_SIZE_LIMIT", Loc::getMessage("CAT_1C_FILE_SIZE_LIMIT"), 200*1024, array("text", 20)),
			array("1C_USE_ZIP", Loc::getMessage("CAT_1C_USE_ZIP"), "Y", array("checkbox")),
			array("1C_USE_CRC", Loc::getMessage("CAT_1C_USE_CRC"), "Y", array("checkbox")),
			array("1C_ELEMENT_ACTION", Loc::getMessage("CAT_1C_ELEMENT_ACTION_2"), "D", array("list", $arAction)),
			array("1C_SECTION_ACTION", Loc::getMessage("CAT_1C_SECTION_ACTION_2"), "D", array("list", $arAction)),
			array("1C_FORCE_OFFERS", Loc::getMessage("CAT_1C_FORCE_OFFERS_2"), "N", array("checkbox")),
			array("1C_USE_IBLOCK_TYPE_ID", Loc::getMessage("CAT_1C_USE_IBLOCK_TYPE_ID"), "N", array("checkbox")),
			array("1C_SKIP_ROOT_SECTION", Loc::getMessage("CAT_1C_SKIP_ROOT_SECTION_2"), "N", array("checkbox")),
			array("1C_DISABLE_CHANGE_PRICE_NAME", Loc::getMessage("CAT_1C_DISABLE_CHANGE_PRICE_NAME"), "N", array("checkbox")),
			array("1C_USE_IBLOCK_PICTURE_SETTINGS", Loc::getMessage("CAT_1C_USE_IBLOCK_PICTURE_SETTINGS"), "N", array("checkbox")),
			array("1C_GENERATE_PREVIEW", Loc::getMessage("CAT_1C_GENERATE_PREVIEW"), "Y", array("checkbox")),
			array("1C_PREVIEW_WIDTH", Loc::getMessage("CAT_1C_PREVIEW_WIDTH"), 100, array("text", 20)),
			array("1C_PREVIEW_HEIGHT", Loc::getMessage("CAT_1C_PREVIEW_HEIGHT"), 100, array("text", 20)),
			array("1C_DETAIL_RESIZE", Loc::getMessage("CAT_1C_DETAIL_RESIZE"), "Y", array("checkbox")),
			array("1C_DETAIL_WIDTH", Loc::getMessage("CAT_1C_DETAIL_WIDTH"), 300, array("text", 20)),
			array("1C_DETAIL_HEIGHT", Loc::getMessage("CAT_1C_DETAIL_HEIGHT"), 300, array("text", 20)),
		);

		$arOptionsDeps = array(
			"catalog_1C_USE_IBLOCK_PICTURE_SETTINGS" => array(
				"catalog_1C_GENERATE_PREVIEW",
				"catalog_1C_PREVIEW_WIDTH",
				"catalog_1C_PREVIEW_HEIGHT",
				"catalog_1C_DETAIL_RESIZE",
				"catalog_1C_DETAIL_WIDTH",
				"catalog_1C_DETAIL_HEIGHT",
			),
		);

		if ($_SERVER['REQUEST_METHOD'] == "POST" && strlen($Update)>0 && $USER->CanDoOperation('edit_php') && check_bitrix_sessid())
		{
			$arDisableOptions = array();
			foreach ($arOptionsDeps as $option => $subOptions)
			{
				if (isset($_REQUEST[$option]) && (string)$_REQUEST[$option] == 'Y')
				{
					$arDisableOptions = (
						empty($arDisableOptions) ?
						array_fill_keys($subOptions, true) :
						array_merge($arDisableOptions, array_fill_keys($subOptions, true))
					);
				}
			}

			foreach ($arBaseOptions as $Option)
			{
				$name = $Option[0];
				$reqName = 'catalog_'.$name;
				if (isset($_REQUEST[$reqName]) && !isset($arDisableOptions[$reqName]))
				{
					$val = $_REQUEST[$reqName];
					if ($Option[3][0] == "checkbox" && $val != "Y")
						$val = "N";
					if ($Option[3][0] == "mlist" && is_array($val))
						$val = implode(",", $val);
					Main\Config\Option::set('catalog', $name, $val, '');
				}
			}

			foreach ($arExtOptions as $Option)
			{
				$name = $Option[0];
				$reqName = 'catalog_'.$name;
				if (isset($_REQUEST[$reqName]) && !isset($arDisableOptions[$reqName]))
				{
					$val = $_REQUEST[$reqName];
					if ($Option[3][0] == "checkbox" && $val != "Y")
						$val = "N";
					if ($Option[3][0] == "mlist")
						$val = implode(",", $val);
					Main\Config\Option::set('catalog', $name, $val, '');
				}
			}

			return;
		}

		$showExtOptions = false;
		foreach($arExtOptions as $Option)
		{
			$val = (string)Main\Config\Option::get('catalog', $Option[0], $Option[2]);
			if ($val != $Option[2])
				$showExtOptions = true;
		}

		foreach($arBaseOptions as $Option)
		{
			$val = (string)Main\Config\Option::get('catalog', $Option[0], $Option[2]);
			$type = $Option[3];
			$strOptionName = htmlspecialcharsbx("catalog_".$Option[0]);
			?>
		<tr>
			<td <? echo ('textarea' == $type[0] || 'mlist' == $type[0] ? 'valign="top"' : ''); ?> width="40%"><?	if($type[0]=="checkbox")
							echo '<label for="'.$strOptionName.'">'.$Option[1].'</label>';
						else
							echo $Option[1];?>:</td>
			<td width="60%">
					<?if($type[0]=="checkbox"):?>
						<input type="hidden" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>_N" value="N">
						<input type="checkbox" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>" value="Y"<?if($val=="Y")echo" checked";?> onclick="Check(this.id);">
					<?elseif($type[0]=="text"):?>
						<input type="text" size="<?echo $type[1]?>" maxlength="255" value="<?echo htmlspecialcharsbx($val)?>" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>">
					<?elseif($type[0]=="textarea"):?>
						<textarea rows="<?echo $type[1]?>" cols="<?echo $type[2]?>" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>"><?echo htmlspecialcharsbx($val)?></textarea>
					<?elseif($type[0]=="list"):?>
						<select name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>">
						<?foreach($type[1] as $key=>$value):?>
							<option value="<?echo htmlspecialcharsbx($key)?>" <?if($val==$key) echo "selected"?>><?echo htmlspecialcharsbx($value)?></option>
						<?endforeach?>
						</select>
					<?elseif($type[0]=="mlist"):
						$val = explode(",", $val)?>
						<select multiple name="<?echo $strOptionName; ?>[]" size="<?echo $type[1]?>" id="<?echo $strOptionName; ?>">
						<?foreach($type[2] as $key=>$value):?>
							<option value="<?echo htmlspecialcharsbx($key)?>" <?if(in_array($key, $val)) echo "selected"?>><?echo htmlspecialcharsbx($value)?></option>
						<?endforeach?>
						</select>
					<?endif?>
			</td>
		</tr>
		<?
		}
		?>
		<tr class="heading">
			<td id="td_extended_options" colspan="2">
				<?if ($showExtOptions):?>
					<?echo Loc::getMessage("CAT_1C_EXTENDED_SETTINGS")?>
				<?else:?>
					<a class="bx-action-href" href="javascript:showExtOptions()"><?echo Loc::getMessage("CAT_1C_EXTENDED_SETTINGS")?></a>
				<?endif;?>
			</td>
		</tr>
		<?
		foreach($arExtOptions as $Option)
		{
			$val = (string)Main\Config\Option::get('catalog', $Option[0], $Option[2]);
			$type = $Option[3];
			$strOptionName = htmlspecialcharsbx("catalog_".$Option[0]);
			?>
		<tr id="tr_<?echo htmlspecialcharsbx($Option[0])?>" <?if (!$showExtOptions) echo 'style="display:none"'?>>
			<td <? echo ('textarea' == $type[0] || 'mlist' == $type[0] ? 'valign="top"' : ''); ?> width="40%"><?	if($type[0]=="checkbox")
							echo '<label for="'.$strOptionName.'">'.$Option[1].'</label>';
						else
							echo $Option[1];?>:</td>
			<td width="60%">
					<?if($type[0]=="checkbox"):?>
						<input type="hidden" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>_N" value="N">
						<input type="checkbox" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>" value="Y"<?if($val=="Y")echo" checked";?> onclick="Check(this.id);">
					<?elseif($type[0]=="text"):?>
						<input type="text" size="<?echo $type[1]?>" maxlength="255" value="<?echo htmlspecialcharsbx($val)?>" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>">
					<?elseif($type[0]=="textarea"):?>
						<textarea rows="<?echo $type[1]?>" cols="<?echo $type[2]?>" name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>"><?echo htmlspecialcharsbx($val)?></textarea>
					<?elseif($type[0]=="list"):?>
						<select name="<?echo $strOptionName; ?>" id="<?echo $strOptionName; ?>">
						<?foreach($type[1] as $key=>$value):?>
							<option value="<?echo htmlspecialcharsbx($key)?>" <?if($val==$key) echo "selected"?>><?echo htmlspecialcharsbx($value)?></option>
						<?endforeach?>
						</select>
					<?elseif($type[0]=="mlist"):
						$val = explode(",", $val)?>
						<select multiple name="<?echo $strOptionName; ?>[]" size="<?echo $type[1]?>" id="<?echo $strOptionName; ?>">
						<?foreach($type[2] as $key=>$value):?>
							<option value="<?echo htmlspecialcharsbx($key)?>" <?if(in_array($key, $val)) echo "selected"?>><?echo htmlspecialcharsbx($value)?></option>
						<?endforeach?>
						</select>
					<?endif?>
			</td>
		</tr>
		<?
		}
		if (!$USER->CanDoOperation('edit_php'))
		{
			?><tr><td colspan="2"><?
				echo BeginNote();
				echo GetMessage('CAT_1C_SETTINGS_SAVE_DENIED');
				echo EndNote();
			?></td></tr><?
		}
		?>
	<script type="text/javascript">
	var controls = <?echo CUtil::PhpToJSObject($arOptionsDeps)?>;
	function Check(checkbox)
	{
		var i, mainCheckbox;
		if (!!controls[checkbox] && BX.type.isArray(controls[checkbox]))
		{
			mainCheckbox = BX(checkbox);
			if (!!mainCheckbox)
			{
				for (i = 0;i < controls[checkbox].length; i++)
				{
					if (!!BX(controls[checkbox][i]))
					{
						BX(controls[checkbox][i]).disabled = mainCheckbox.checked;
					}
				}
			}
		}
	}
	var bExtOptions = <?echo $showExtOptions? 'true': 'false'?>;
	function showExtOptions()
	{
		if (bExtOptions)
		{
		<?foreach($arExtOptions as $Option):?>
			BX('<?echo CUtil::JSEscape('tr_'.$Option[0])?>').style.display = 'none';
		<?endforeach;?>
		}
		else
		{
		<?foreach($arExtOptions as $Option):?>
			BX('<?echo CUtil::JSEscape('tr_'.$Option[0])?>').style.display = 'table-row';
		<?endforeach;?>
		}
		bExtOptions = !bExtOptions;
		BX.onCustomEvent('onAdminTabsChange');
	}
	BX.ready(function(){
		<?foreach($arOptionsDeps as $key => $value):?>
			Check('<?echo CUtil::JSEscape($key)?>');
		<?endforeach;?>
	});
	</script>
		<?

	else:
		CAdminMessage::ShowMessage(Loc::getMessage("CAT_NO_IBLOCK_MOD"));
	endif;

endif;