%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/catalog/admin/ |
Current File : //home/bitrix/www/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;