Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/currency/admin/ |
Current File : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/currency/admin/currency_edit.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/currency/include.php"); $CURRENCY_RIGHT = $APPLICATION->GetGroupRight("currency"); if ($CURRENCY_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); include(GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/currency/lang/", "/currencies.php")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/currency/prolog.php"); ClearVars("f_"); $message = null; $bVarsFromForm = false; $ID = htmlspecialcharsEx(trim($ID)); $ID = (strlen($ID) <= 0 ? false : $ID); $db_result_lang = CLangAdmin::GetList($by = "sort", $order = "asc"); $iCount = 0; while ($db_result_lang_array = $db_result_lang->Fetch()) { $arLangsLID[$iCount] = $db_result_lang_array["LID"]; $arLangNamesLID[$iCount] = htmlspecialchars($db_result_lang_array["NAME"]); $iCount++; } $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("currency_curr"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("currency_curr_settings")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); function CheckFields(&$arFields, $ID = false) { $arMsg = Array(); if ($ID === false && (!is_set($arFields, "CURRENCY") || !preg_match("~^[a-z]{1,3}$~i", $arFields["CURRENCY"]) )) $arMsg[] = array("id"=>"CURRENCY", "text"=> GetMessage("currency_error_currency")); elseif(is_set($arFields, "CURRENCY") && $ID !==false) unset($arFields["CURRENCY"]); if (is_set($arFields, "CURRENCY") && CCurrency::GetByID($arFields["CURRENCY"])) { $str = GetMessage("currency_err3_1")." ".htmlspecialchars($arFields["CURRENCY"])." ".GetMessage("currency_err3_2"); $arMsg[] = array("id"=>"CURRENCY", "text"=> $str); } if ((is_set($arFields, "AMOUNT") || $ID === false) && strlen($arFields["AMOUNT"]) <= 0) $arMsg[] = array("id"=>"AMOUNT", "text"=> GetMessage("currency_error_amount")); else $arFields["AMOUNT"] = DoubleVal($arFields["AMOUNT"]); if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } if ($_SERVER["REQUEST_METHOD"] == "POST" && $CURRENCY_RIGHT=="W" && strlen($Update)>0 && check_bitrix_sessid()) { $SORT = intval($SORT); $arFields = Array( "CURRENCY" => $CURRENCY, "AMOUNT" => $AMOUNT, "AMOUNT_CNT" => intval($AMOUNT_CNT), "SORT" => ($SORT < 0 ? 100 : $SORT), ); if (CheckFields($arFields, $ID)) { $arMsg = Array(); for ($i=0; $i<$iCount; $i++) { if (strlen(${"FORMAT_STRING_".$arLangsLID[$i]})<=0) { $arMsg[] = array("id"=>"FORMAT_STRING_".$arLangsLID[$i], "text"=> GetMessage("currency_format_string")); continue; } } if(!empty($arMsg)) { $bVarsFromForm = true; $e = new CAdminException($arMsg); $APPLICATION->ThrowException($e); $e = $APPLICATION->GetException(); $message = new CAdminMessage(GetMessage("currency_error"), $e); } else { if (strlen($ID) > 0) CCurrency::Update($ID, $arFields+ Array("CURRENCY"=>$ID)); else $ID = CCurrency::Add($arFields); for ($i=0; $i<$iCount; $i++) { unset($arFields); $arFields["FORMAT_STRING"] = Trim(${"FORMAT_STRING_".$arLangsLID[$i]}); $arFields["FULL_NAME"] = Trim(${"FULL_NAME_".$arLangsLID[$i]}); $arFields["DEC_POINT"] = ${"DEC_POINT_".$arLangsLID[$i]}; $arFields["THOUSANDS_SEP"] = ${"THOUSANDS_SEP_".$arLangsLID[$i]}; $arFields["THOUSANDS_VARIANT"] = ${"THOUSANDS_VARIANT_".$arLangsLID[$i]}; $arFields["DECIMALS"] = IntVal(${"DECIMALS_".$arLangsLID[$i]}); $arFields["CURRENCY"] = $ID /*$arFields["CURRENCY"]*/; $arFields["LID"] = $arLangsLID[$i]; if(strlen($arFields["THOUSANDS_VARIANT"]) > 0) $arFields["THOUSANDS_SEP"] = false; else $arFields["THOUSANDS_VARIANT"] = false; if (strlen($ID) > 0) { $db_result_lang = CCurrencyLang::GetByID($ID, $arLangsLID[$i]); if ($db_result_lang) CCurrencyLang::Update($ID, $arLangsLID[$i], $arFields); else CCurrencyLang::Add($arFields); } else { CCurrencyLang::Add($arFields); } } if(strlen($apply)<=0) LocalRedirect("/bitrix/admin/currencies.php?lang=". LANG); LocalRedirect("/bitrix/admin/currency_edit.php?ID=".$ID."&lang=".LANG); } } else { if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("currency_error"), $e); $bVarsFromForm = true; } } if (strlen($ID) > 0) $APPLICATION->SetTitle(GetMessage("CURRENCY_EDIT_TITLE")); else $APPLICATION->SetTitle(GetMessage("CURRENCY_NEW_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aContext = array( array( "ICON" => "btn_list", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_LIST"), "LINK"=>"currencies.php?lang=".LANG, "TITLE"=>GetMessage("MAIN_ADMIN_MENU_LIST") ), ); if (strlen($ID) > 0) { $aContext[] = array( "ICON" => "btn_new", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_CREATE"), "LINK"=>"currency_edit.php?lang=".LANG, "TITLE"=>GetMessage("MAIN_ADMIN_MENU_CREATE") ); if ($CURRENCY_RIGHT=="W") { $aContext[] = array( "ICON" => "btn_delete", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_DELETE"), "LINK" => "javascript:if(confirm('".GetMessage("CONFIRM_DEL_MESSAGE")."'))window.location='currencies.php?action=delete&ID[]=".$ID."&lang=".LANG."&".bitrix_sessid_get()."';", ); } } $context = new CAdminContextMenu($aContext); $context->Show(); //Defaults $f_SORT = "10"; $f_AMOUNT_CNT = "1"; if (strlen($ID) > 0 && !$bVarsFromForm) { $result = CCurrency::GetByID($ID); $f_AMOUNT_CNT = $result["AMOUNT_CNT"]; $f_AMOUNT = number_format($result["AMOUNT"], 4); $f_SORT = $result["SORT"] ; $res = CCurrencyLang::GetList($by, $order, $ID); while ($ar = $res->GetNext()) { ${"l_FULL_NAME_".$ar["LID"]} = $ar["FULL_NAME"]; ${"l_FORMAT_STRING_".$ar["LID"]} = $ar["FORMAT_STRING"]; ${"l_DEC_POINT_".$ar["LID"]} = $ar["DEC_POINT"]; ${"l_THOUSANDS_SEP_".$ar["LID"]} = $ar["THOUSANDS_SEP"]; ${"l_THOUSANDS_VARIANT_".$ar["LID"]} = $ar["THOUSANDS_VARIANT"]; ${"l_DECIMALS_".$ar["LID"]} = $ar["DECIMALS"]; } } if($bVarsFromForm) { $DB->InitTableVarsForEdit("b_catalog_currency", "", "f_"); for ($i=0; $i<$iCount; $i++) { ${"l_FULL_NAME_".$arLangsLID[$i]} = ${"FULL_NAME_".$arLangsLID[$i]}; ${"l_FORMAT_STRING_".$arLangsLID[$i]} = ${"FORMAT_STRING_".$arLangsLID[$i]}; ${"l_DEC_POINT_".$arLangsLID[$i]} = ${"DEC_POINT_".$arLangsLID[$i]}; ${"l_THOUSANDS_SEP_".$arLangsLID[$i]} = ${"THOUSANDS_SEP_".$arLangsLID[$i]}; ${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} = ${"THOUSANDS_VARIANT_".$arLangsLID[$i]}; ${"l_DECIMALS_".$arLangsLID[$i]} = ${"DECIMALS_".$arLangsLID[$i]}; } } if($message) echo $message->Show(); ?> <? $arTemplates = Array( Array("TEXT" => "$1.234,10", "FORMAT" => "$#", "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "D", "DECIMALS" => "2", ), Array("TEXT" => "$1 234,10", "FORMAT" => "$#", "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "S", "DECIMALS" => "2", ), Array("TEXT" => GetMessage("currency_euro")."2.345,20", "FORMAT" => "€#", "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "D", "DECIMALS" => "2", ), Array("TEXT" => GetMessage("currency_euro")."2 345,20", "FORMAT" => "€#", "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "S", "DECIMALS" => "2", ), ); if ($lang=="ru") { $arTemplates[] = Array("TEXT" => "3.456,70 ".GetMessage("CURRENCY_RUBLE"), "FORMAT" => "# ".GetMessage("CURRENCY_RUBLE"), "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "D", "DECIMALS" => "2", ); $arTemplates[] = Array("TEXT" => "3 456,70 ".GetMessage("CURRENCY_RUBLE"), "FORMAT" => "# ".GetMessage("CURRENCY_RUBLE"), "DEC_POINT" => ",", "THOUSANDS_VARIANT" => "S", "DECIMALS" => "2", ); } ?> <script language="JavaScript"> <!-- function setTemplate(lang) { var arFormat = new Array(); var arPoint = new Array(); var arThousand = new Array(); var arDecimals = new Array(); <? foreach ($arTemplates as $key => $ar) { echo "arFormat[".$key."]='".$ar["FORMAT"]."'; "; echo "arPoint[".$key."]='".$ar["DEC_POINT"]."'; "; echo "arThousand[".$key."]='".$ar["THOUSANDS_VARIANT"]."'; "; echo "arDecimals[".$key."]='".$ar["DECIMALS"]."'; "; } ?> var sIndex = document.forms['form1'].elements['format_' + lang].selectedIndex; if (sIndex > 0) { document.forms['form1'].elements['FORMAT_STRING_' + lang].value = arFormat[sIndex-1]; document.forms['form1'].elements['DEC_POINT_' + lang].value = arPoint[sIndex-1]; document.forms['form1'].elements['THOUSANDS_VARIANT_' + lang].value = arThousand[sIndex-1]; document.forms['form1'].elements['DECIMALS_' + lang].value = arDecimals[sIndex-1]; } } function setThousandsVariant(lang) { var value = document.forms['form1'].elements['THOUSANDS_VARIANT_' + lang].value; if(value.length > 0) document.forms['form1'].elements['THOUSANDS_SEP_' + lang].disabled = true; else document.forms['form1'].elements['THOUSANDS_SEP_' + lang].disabled = false; /*if (sIndex > 0) { document.forms['form1'].elements['FORMAT_STRING_' + lang].value = arFormat[sIndex-1]; document.forms['form1'].elements['DEC_POINT_' + lang].value = arPoint[sIndex-1]; document.forms['form1'].elements['THOUSANDS_SEP_' + lang].value = arThousand[sIndex-1]; document.forms['form1'].elements['DECIMALS_' + lang].value = arDecimals[sIndex-1]; } */ } //--> </script> <form method="post" action="<?$APPLICATION->GetCurPage()?>" name="form1"> <?=bitrix_sessid_post()?> <?echo GetFilterHiddens("filter_");?> <input type="hidden" name="ID" value="<?echo $ID?>"> <input type="hidden" name="Update" value="Y"> <input type="hidden" name="from" value="<?echo htmlspecialchars($from)?>"> <?if(strlen($return_url)>0):?><input type="hidden" name="return_url" value="<?=htmlspecialchars($return_url)?>"><?endif?> <?$tabControl->Begin();?> <?$tabControl->BeginNextTab();?> <tr> <td width="50%"><span class="required">*</span><?echo GetMessage("currency_curr")?>:</td> <td width="50%"> <?if (!$ID):?> <input type="text" value="<?echo $f_CURRENCY?>" size="3" name="CURRENCY" maxlength="3"> <?else:?> <?=$ID?> <?endif?> </td> </tr> <tr> <td><?echo GetMessage("currency_rate_cnt")?>:</td> <td> <input type="text" class="typeinput" size="10" name="AMOUNT_CNT" value="<?=$f_AMOUNT_CNT?>"> </td> </tr> <tr> <td><span class="required">*</span><?echo GetMessage("currency_rate")?>:</td> <td> <input type="text" size="10" name="AMOUNT" value="<?=$f_AMOUNT?>" maxlength="10"> </td> </tr> <tr> <td><?echo GetMessage("currency_sort_ex")?>:</td> <td> <input type="text" class="typeinput" size="10" name="SORT" value="<?echo intval($f_SORT)?>" maxlength="10"> </td> </tr> <?for($i=0;$i<$iCount;$i++):?> <tr class="heading"><td colspan="2"><?=$arLangNamesLID[$i]?></td></td> <tr> <td><?echo GetMessage("CURRENCY_FULL_NAME")?>:</td> <td><input class="typeinput" title="<?echo GetMessage("CURRENCY_FULL_NAME_DESC")?>" type="text" maxlength="50" size="15" name="FULL_NAME_<?echo $arLangsLID[$i]?>" value="<?=${"l_FULL_NAME_".$arLangsLID[$i]}?>"></td> </tr> <tr> <td><?echo GetMessage("CURRENCY_FORMAT_TEMPLATE")?>:</td> <td> <select name="format_<?echo $arLangsLID[$i]?>" OnChange="setTemplate('<?echo $arLangsLID[$i]?>')"> <option value="">-<?echo GetMessage("CURRENCY_SELECT_TEMPLATE")?>-</option> <?foreach ($arTemplates as $key => $ar):?> <option value="<?=$key?>"><?=$ar["TEXT"]?></option> <?endforeach?> </select> </td> </tr> <tr> <td><span class="required">*</span><?echo GetMessage("CURRENCY_FORMAT_DESC")?>:</td> <td><input class="typeinput" title="<?echo GetMessage("CURRENCY_FORMAT_DESC")?>" type="text" maxlength="50" size="10" name="FORMAT_STRING_<?echo $arLangsLID[$i]?>" value="<?=htmlspecialchars(${"l_FORMAT_STRING_".$arLangsLID[$i]})?>"></td> </tr> <tr> <td><?echo GetMessage("CURRENCY_DEC_POINT_DESC")?>:</td> <td><input class="typeinput" title="<?echo GetMessage("CURRENCY_DEC_POINT_DESC")?>" type="text" maxlength="5" size="5" name="DEC_POINT_<?echo $arLangsLID[$i]?>" value="<?=${"l_DEC_POINT_".$arLangsLID[$i]}?>"></td> </tr> <tr> <td><?echo GetMessage("THOU_SEP_DESC")?>:</td> <td> <select name="THOUSANDS_VARIANT_<?echo $arLangsLID[$i]?>" onChange="setThousandsVariant('<?echo $arLangsLID[$i]?>')"> <option value="N"<?if(${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} == "N") echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_N")?></option> <option value="D"<?if(${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} == "D") echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_D")?></option> <option value="C"<?if(${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} == "C") echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_C")?></option> <option value="S"<?if(${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} == "S") echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_S")?></option> <option value="B"<?if(${"l_THOUSANDS_VARIANT_".$arLangsLID[$i]} == "B") echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_B")?></option> <option value=""<?if(strlen(${"l_THOUSANDS_SEP_".$arLangsLID[$i]}) >0) echo " selected"?>><?=GetMessage("CURRENCY_THOUSANDS_VARIANT_O")?></option> </select> <input class="typeinput" title="<?echo GetMessage("THOU_SEP_DESC")?>" type="text" maxlength="5" size="5" name="THOUSANDS_SEP_<?echo $arLangsLID[$i]?>" value="<?=${"l_THOUSANDS_SEP_".$arLangsLID[$i]}?>"> <script> <!-- setThousandsVariant('<?=$arLangsLID[$i]?>'); //--> </script> </td> </tr> <tr> <td><?echo GetMessage("DECIMALS_DESC")?>:</td> <td><input class="typeinput" title="<?echo GetMessage("DECIMALS_DESC")?>" type="text" maxlength="5" size="5" name="DECIMALS_<?echo $arLangsLID[$i]?>" value="<?=${"l_DECIMALS_".$arLangsLID[$i]}?>"></td> </tr> <?endfor;?> <?$tabControl->EndTab();?> <?$tabControl->Buttons(Array("disabled" => $CURRENCY_RIGHT<"W", "back_url" =>"currencies.php?lang=".LANG));?> <?$tabControl->End();?> </form> <?$tabControl->ShowWarnings("form1", $message);?> <?echo BeginNote();?> <?echo GetMessage("CURRENCY_BASE_CURRENCY")?><br /> <span class="required">*</span> - <?echo GetMessage("REQUIRED_FIELDS")?><br /> <?echo EndNote();?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>