function CheckFields($ACTION, &$arFields) { if ((is_set($arFields, "SMILE_TYPE") || $ACTION == "ADD") && $arFields["SMILE_TYPE"] != "I" && $arFields["SMILE_TYPE"] != "S") { return False; } if ((is_set($arFields, "IMAGE") || $ACTION == "ADD") && strlen($arFields["IMAGE"]) <= 0) { return False; } if ((is_set($arFields, "SORT") || $ACTION == "ADD") && IntVal($arFields["SORT"]) <= 0) { $arFields["SORT"] = 150; } if (is_set($arFields, "LANG") || $ACTION == "ADD") { for ($i = 0; $i < count($arFields["LANG"]); $i++) { if (!is_set($arFields["LANG"][$i], "LID") || strlen($arFields["LANG"][$i]["LID"]) <= 0) { return false; } if (!is_set($arFields["LANG"][$i], "NAME") || strlen($arFields["LANG"][$i]["NAME"]) <= 0) { return false; } } $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $bFound = False; for ($i = 0; $i < count($arFields["LANG"]); $i++) { if ($arFields["LANG"][$i]["LID"] == $arLang["LID"]) { $bFound = True; } } if (!$bFound) { return false; } } } return True; }
protected function setLangIds() { $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($lang = $db_lang->Fetch()) { $this->lang_ids[] = $lang["LID"]; } }
function CheckFields($ACTION, &$arFields) { global $DB; if (is_set($arFields, "SORT") && IntVal($arFields["SORT"]) <= 0) { $arFields["SORT"] = 100; } if (is_set($arFields, "LOCATION_ID") && (!is_array($arFields["LOCATION_ID"]) || count($arFields["LOCATION_ID"]) <= 0)) { return false; } if (is_set($arFields, "LANG")) { $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $bFound = False; $coountarFieldLang = count($arFields["LANG"]); for ($i = 0; $i < $coountarFieldLang; $i++) { if ($arFields["LANG"][$i]["LID"] == $arLang["LID"] && strlen($arFields["LANG"][$i]["NAME"]) > 0) { $bFound = True; } } if (!$bFound) { return false; } } } return True; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { $aMsg = array(); if (is_set($arFields, "LANG") || $ACTION == "ADD") { if (!is_array($arFields["LANG"])) { $arFields["LANG"] = array(); } $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc"); while ($arLang = $db_lang->Fetch()) { $bFound = False; foreach ($arFields["LANG"] as $key => $res) { if (is_array($res) && $res["LID"] == $arLang["LID"]) { $arFields["LANG"][$key]["NAME"] = trim($res["NAME"]); if (strLen($arFields["LANG"][$key]["NAME"]) > 0) { $bFound = True; break; } } } if (!$bFound) { $aMsg[] = array("id" => 'POINTS[NAME][LID][' . $arLang["LID"] . ']', "text" => str_replace("#LANG#", $arLang["NAME"] . " [" . $arLang["LID"] . "]", GetMessage("FORUM_PE_ERROR_NONAME"))); } } } if (is_set($arFields, "MIN_POINTS") || $ACTION == "ADD") { $arFields["MIN_POINTS"] = trim($arFields["MIN_POINTS"]); if (strLen($arFields["MIN_POINTS"]) <= 0) { $aMsg[] = array("id" => 'POINTS[MIN_POINTS]', "text" => GetMessage("FORUM_PE_ERROR_MIN_POINTS_EMPTY")); } elseif (preg_match("/[^0-9]/", $arFields["MIN_POINTS"])) { $aMsg[] = array("id" => 'POINTS[MIN_POINTS]', "text" => GetMessage("FORUM_PE_ERROR_MIN_POINTS_BAD")); } else { $arFields["MIN_POINTS"] = intVal($arFields["MIN_POINTS"]); $db_res = CForumPoints::GetList(array(), array("MIN_POINTS" => $arFields["MIN_POINTS"])); if ($db_res && ($res = $db_res->GetNext())) { if ($ACTION == "ADD" || $ID == 0 || $ID != $res["ID"]) { $aMsg[] = array("id" => 'POINTS[MIN_POINTS]', "text" => GetMessage("FORUM_PE_ERROR_MIN_POINTS_EXIST")); } } } } $arFields["VOTES"] = intval($arFields["VOTES"]); if (!empty($aMsg)) { $e = new CAdminException(array_reverse($aMsg)); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; }
public static function CheckFields($ACTION, &$arFields, $ID = "") { global $DB, $APPLICATION; if ((is_set($arFields, "SORT") || $ACTION == "ADD") && IntVal($arFields["SORT"]) <= 0) { $arFields["SORT"] = 100; } if ((is_set($arFields, "ID") || $ACTION == "ADD") && strlen($arFields["ID"]) <= 0) { return false; } if (is_set($arFields, "ID") && strlen($ID) > 0 && $ID != $arFields["ID"]) { return false; } if (is_set($arFields, "ID") && !preg_match("#[A-Za-z]#i", $arFields["ID"]) || strlen($ID) > 0 && !preg_match("#[A-Za-z]#i", $ID)) { $APPLICATION->ThrowException(GetMessage("SKGS_ID_NOT_SYMBOL"), "ID"); return false; } if ($ACTION == "ADD") { $arFields["ID"] = $DB->ForSql($arFields["ID"], 1); $db_res = $DB->Query("SELECT ID FROM b_sale_status WHERE ID = '" . $arFields["ID"] . "'"); if ($db_res->Fetch()) { $APPLICATION->ThrowException(GetMessage("SKGS_SALE_STATUS_ALREADY_EXISTS"), "ID"); return false; } } if (is_set($arFields, "LANG")) { $b = 'sort'; $o = 'asc'; $db_lang = CLangAdmin::GetList($b, $o, array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $bFound = false; foreach ($arFields["LANG"] as &$arOneLang) { if ($arOneLang["LID"] == $arLang["LID"] && '' != $arOneLang["NAME"]) { $bFound = true; break; } } if (isset($arOneLang)) { unset($arOneLang); } if (!$bFound) { return false; } } } return true; }
public static function CheckFields($ACTION, &$arFields, $ID = "") { global $DB; if ((is_set($arFields, "SORT") || $ACTION=="ADD") && IntVal($arFields["SORT"])<= 0) $arFields["SORT"] = 100; if ((is_set($arFields, "ID") || $ACTION=="ADD") && strlen($arFields["ID"])<=0) return false; if (is_set($arFields, "ID") && strlen($ID)>0 && $ID!=$arFields["ID"]) return false; if((is_set($arFields, "ID") && !preg_match("#[A-Za-z]#i", $arFields["ID"])) || (strlen($ID)>0 && !preg_match("#[A-Za-z]#i", $ID))) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGS_ID_NOT_SYMBOL"), "ERROR_ID_NOT_SYMBOL"); return false; } if ($ACTION=="ADD") { $arFields["ID"] = $DB->ForSql($arFields["ID"], 1); $db_res = $DB->Query("SELECT ID FROM b_sale_status WHERE ID = '".$arFields["ID"]."' "); if ($db_res->Fetch()) return false; } if (is_set($arFields, "LANG")) { $db_lang = CLangAdmin::GetList(($b="sort"), ($o="asc"), array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $bFound = false; foreach ($arFields["LANG"] as &$arOneLang) { if ($arOneLang["LID"] == $arLang["LID"] && '' != $arOneLang["NAME"]) { $bFound = true; break; } } if (isset($arOneLang)) unset($arOneLang); if (!$bFound) return false; } } return true; }
function CheckFields($ACTION, &$arFields, $ID = "") { global $DB; if ((is_set($arFields, "SORT") || $ACTION == "ADD") && IntVal($arFields["SORT"]) <= "Y") { $arFields["SORT"] = 100; } if ((is_set($arFields, "ID") || $ACTION == "ADD") && strlen($arFields["ID"]) <= 0) { return false; } if (is_set($arFields, "ID") && strlen($ID) > 0 && $ID != $arFields["ID"]) { return false; } if (is_set($arFields, "ID") && !preg_match("#[A-Za-z]#i", $arFields["ID"]) || strlen($ID) > 0 && !preg_match("#[A-Za-z]#i", $ID)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGS_ID_NOT_SYMBOL"), "ERROR_ID_NOT_SYMBOL"); return false; } if ($ACTION == "ADD") { $arFields["ID"] = $DB->ForSql($arFields["ID"], 1); $db_res = $DB->Query("SELECT ID FROM b_sale_status WHERE ID = '" . $arFields["ID"] . "' "); if ($db_res->Fetch()) { return false; } } if (is_set($arFields, "LANG")) { $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $bFound = False; for ($i = 0; $i < count($arFields["LANG"]); $i++) { if ($arFields["LANG"][$i]["LID"] == $arLang["LID"] && strlen($arFields["LANG"][$i]["NAME"]) > 0) { $bFound = True; } } if (!$bFound) { return false; } } } return True; }
/** * <p>Метод изменяет параметры города с кодом ID на значения из массива arFields. Метод динамичный.</p> * * * @param int $ID Код города. * * @param array $arFields Массив с параметрами города должен содержать ключи: <ul> <li> <b>NAME</b> - * название города (не зависящее от языка);</li> <li> <b>SHORT_NAME</b> - * сокращенное название города - абревиатура (не зависящее от * языка);</li> <li> <b><код языка></b> - ключем является код языка, а * значением ассоциативный массив вида <pre class="syntax"> array("LID" => "код * языка", "NAME" => "название города на этом языке", "SHORT_NAME" => * "сокращенное название города (аббревиатура) на этом языке")</pre> Эта * пара ключ-значение должна присутствовать для каждого языка * системы.</li> </ul> * * @return int <p>Возвращается код измененного города или <i>false</i> у случае * ошибки.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__updatecity.3fe4165d.php * @author Bitrix */ public static function UpdateCity($ID, $arFields) { global $DB; $ID = intval($ID); if ($ID <= 0 || !CSaleLocation::CityCheckFields("UPDATE", $arFields)) { return false; } foreach (GetModuleEvents("sale", "OnBeforeCityUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } if (self::isLocationProMigrated()) { try { $locId = self::getLocationIdByCityId($ID); if (!$locId) { return false; } $res = Location\LocationTable::update($locId, self::refineFieldsForSaveCRC($item['ID'], $arFields), array('REBALANCE' => false)); if ($res->isSuccess()) { return $ID; } return false; } catch (Exception $e) { return false; } } else { $strUpdate = $DB->PrepareUpdate("b_sale_location_city", $arFields); $strSql = "UPDATE b_sale_location_city SET " . $strUpdate . " WHERE ID = " . $ID . ""; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { if ($arCntLang = CSaleLocation::GetCityLangByID($ID, $arLang["LID"])) { $strUpdate = $DB->PrepareUpdate("b_sale_location_city_lang", $arFields[$arLang["LID"]]); $strSql = "UPDATE b_sale_location_city_lang SET " . $strUpdate . " WHERE ID = " . $arCntLang["ID"] . ""; } else { $arInsert = $DB->PrepareInsert("b_sale_location_city_lang", $arFields[$arLang["LID"]]); $strSql = "INSERT INTO b_sale_location_city_lang(CITY_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")"; } $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } } foreach (GetModuleEvents("sale", "OnCityUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
/** @var Bitrix\Sale\Order $saleOrder */ Admin\OrderEdit::initCouponsData($saleOrder->getUserId(), $ID); CUtil::InitJSCore(); $APPLICATION->SetTitle(Loc::getMessage("SALE_OVIEW_TITLE", array("#ID#" => $saleOrder->getId(), "#NUM#" => strlen($saleOrder->getField('ACCOUNT_NUMBER')) > 0 ? $saleOrder->getField('ACCOUNT_NUMBER') : $saleOrder->getId(), "#DATE#" => $saleOrder->getDateInsert()->toString()))); \Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/admin/order_edit.js"); ob_start(); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/admin/order_history.php"; $historyContent = ob_get_contents(); ob_end_clean(); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; /* context menu */ $aMenu = array(); $aMenu[] = array("ICON" => "btn_list", "TEXT" => Loc::getMessage("SALE_OVIEW_TO_LIST"), "TITLE" => Loc::getMessage("SALE_OVIEW_TO_LIST_TITLE"), "LINK" => "/bitrix/admin/sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_")); $aMenu[] = array("TEXT" => Loc::getMessage("SALE_OVIEW_TO_EDIT"), "TITLE" => Loc::getMessage("SALE_OVIEW_TO_EDIT_TITLE"), "LINK" => "/bitrix/admin/sale_order_edit.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_")); $arSysLangs = array(); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $arSysLangs[] = $arLang["LID"]; } $arReports = array(); $dirs = array($_SERVER["DOCUMENT_ROOT"] . "/bitrix/admin/reports/", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/reports/"); foreach ($dirs as $dir) { if (file_exists($dir)) { if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { $file_contents = ''; if ($file == "." || $file == ".." || $file == ".access.php") { continue; } if (is_file($dir . $file) && ToUpper(substr($file, -4)) == ".PHP") { $rep_title = $file;
<?php require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; $forumPermissions = $APPLICATION->GetGroupRight("forum"); if ($forumPermissions == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/forum/include.php"; ClearVars(); IncludeModuleLangFile(__FILE__); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/forum/prolog.php"; $ID = IntVal($ID); $langCount = 0; $arSysLangs = $arSysLangNames = array(); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc"); $arError = array(); $message = false; $bInitVars = false; while ($arLang = $db_lang->Fetch()) { $arSysLangs[$langCount] = $arLang["LID"]; $arSysLangNames[$langCount] = htmlspecialcharsbx($arLang["NAME"]); $langCount++; } $arGroups = CForumGroup::GetByLang(LANGUAGE_ID); array_unshift($arGroups, array("ID" => 0, "NAME" => "...")); if ((strlen($save) > 0 || strlen($apply) > 0) && $REQUEST_METHOD == "POST" && $forumPermissions == "W" && check_bitrix_sessid()) { $arFields = array("SORT" => intVal(intVal($SORT) <= 0 ? 150 : $SORT), "PARENT_ID" => $_REQUEST["FORUM_GROUP"]["PARENT_ID"]); for ($i = 0; $i < count($arSysLangs); $i++) { $arFields["LANG"][] = array("LID" => $arSysLangs[$i], "NAME" => $_REQUEST["FORUM_GROUP"]["LANG"][$arSysLangs[$i]]["NAME"], "DESCRIPTION" => $_REQUEST["FORUM_GROUP"]["LANG"][$arSysLangs[$i]]["DESCRIPTION"]); } if (!CForumGroup::CheckFields($ID > 0 ? "UPDATE" : "ADD", $arFields, $ID > 0 ? $ID : false)) {
/** * The function modifies the parameters of the region * * @param int $ID region code * @param array $arFields array with parameters region * @return int $ID code region */ public static function UpdateRegion($ID, $arFields) { global $DB; $ID = intval($ID); if ($ID <= 0 || !CSaleLocation::RegionCheckFields("UPDATE", $arFields)) { return false; } foreach (GetModuleEvents("sale", "OnBeforeRegionUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sale_location_region", $arFields); $strSql = "UPDATE b_sale_location_region SET " . $strUpdate . " WHERE ID = " . $ID . ""; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { if ($arCntLang = CSaleLocation::GetRegionLangByID($ID, $arLang["LID"])) { $strUpdate = $DB->PrepareUpdate("b_sale_location_region_lang", $arFields[$arLang["LID"]]); //print_r($arFields);die(); $strSql = "UPDATE b_sale_location_region_lang SET " . $strUpdate . " WHERE ID = " . $arCntLang["ID"] . ""; } else { $arInsert = $DB->PrepareInsert("b_sale_location_region_lang", $arFields[$arLang["LID"]]); $strSql = "INSERT INTO b_sale_location_region_lang(REGION_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")"; } $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } foreach (GetModuleEvents("sale", "OnRegionUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
} return; } $currencyID = $currency['CURRENCY']; $isEditMode = true; } $isBaseCurrency = $currencyID !== '' && $currencyID === $baseCurrencyID; $currency['IS_ACCOUNTING_CURRENCY'] = $currencyID !== '' && $currencyID === CCrmCurrency::GetAccountCurrencyID(); $currency['IS_INVOICE_CURRENCY'] = $currencyID !== '' && $currencyID === CCrmCurrency::getInvoiceDefault(); $arResult['CURRENCY_ID'] = $currencyID; $arResult['CURRENCY'] = $currency; $arResult['FORM_ID'] = 'CRM_CURRENCY_EDIT'; $arResult['GRID_ID'] = 'CRM_CURRENCY_EDIT'; $arResult['BACK_URL'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array()); $langs = array(); $rsLang = CLangAdmin::GetList($by = 'sort', $order = 'asc'); while ($arLang = $rsLang->Fetch()) { $lid = $arLang['LID']; $langs[$lid] = array('NAME' => $arLang['NAME']); } $arResult['LANGS'] = $langs; $currencyLocs = array(); if ($currencyID !== '') { $rs = CCurrencyLang::GetList($by = '', $order = '', $currencyID); while ($ary = $rs->GetNext()) { $loc = array(); $loc['FULL_NAME'] = $ary['FULL_NAME']; $loc['FORMAT_STRING'] = $ary['FORMAT_STRING']; $loc['DEC_POINT'] = $ary['DEC_POINT']; $loc['THOUSANDS_SEP'] = $ary['THOUSANDS_SEP']; $loc['THOUSANDS_VARIANT'] = $ary['THOUSANDS_VARIANT'];
$arSelectFields = $lAdmin->GetVisibleHeaderColumns(); $arSelectFieldsMap = array(); foreach ($arSelectFields as &$strOneFieldName) { $arSelectFieldsMap[$strOneFieldName] = true; } if (isset($strOneFieldName)) { unset($strOneFieldName); } $mxKey = array_search('NAME_LID', $arSelectFields); if (false !== $mxKey) { unset($arSelectFields[$mxKey]); } $arLangList = array(); $arLangDefList = array(); if (array_key_exists('NAME_LID', $arSelectFieldsMap)) { $rsPriceLangs = CLangAdmin::GetList($by1 = "sort", $order1 = "asc"); while ($arPriceLang = $rsPriceLangs->Fetch()) { $arLangList[$arPriceLang['LID']] = true; $arLangDefList[$arPriceLang['LID']] = str_replace('#LANG#', htmlspecialcharsex($arPriceLang['NAME']), GetMessage('BT_CAT_GROUP_ADM_LANG_MESS')); } } if (array_key_exists("mode", $_REQUEST) && $_REQUEST["mode"] == "excel") { $arNavParams = false; } else { $arNavParams = array("nPageSize" => CAdminResult::GetNavSize($sTableID)); } $dbResultList = CCatalogGroup::GetList(array($by => $order), array(), false, $arNavParams, $arSelectFields); $dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("group_admin_nav"))); $arRows = array();
private static function GetLanguagesID() { if (self::$LANGS_ID) { return self::$LANGS_ID; } self::$LANGS_ID = array(); $by = 'sort'; $order = 'asc'; $dbResult = CLangAdmin::GetList($by, $order); while ($arResult = $dbResult->Fetch()) { self::$LANGS_ID[] = $arResult['LID']; } return self::$LANGS_ID; }
function saleLocationImport($arParams) { global $DB; $arReturn = array('STEP' => false, 'ERROR' => '', 'AMOUNT' => 0, 'POS' => 0, 'MESSAGE' => ''); $step_length = intval($arParams["STEP_LENGTH"]); if ($step_length <= 0) { $step_length = 10; } define('ZIP_STEP_LENGTH', $step_length); define('LOC_STEP_LENGTH', $step_length); define('DLZIPFILE', $arParams["DLZIPFILE"]); $STEP = intval($arParams['STEP']); $CSVFILE = $arParams["CSVFILE"]; $LOADZIP = $arParams["LOADZIP"]; $bSync = $arParams["SYNC"] == "Y"; if (isset($arParams['TMP_PATH'])) { $sTmpFilePath = $arParams['TMP_PATH']; } else { $sTmpFilePath = CTempFile::GetDirectoryName(12, 'sale'); } if (strlen($CSVFILE) > 0 && !in_array($CSVFILE, array('loc_ussr.csv', 'loc_ua.csv', 'loc_kz.csv', 'loc_usa.csv', 'loc_cntr.csv', 'locations.csv'))) { //echo GetMessage('SL_IMPORT_ERROR_FILES'); $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_FILES'); } else { if ($STEP == 1 && strlen($CSVFILE) <= 0) { if ($LOADZIP == 'Y') { $STEP = 2; } else { $STEP = 3; } } switch ($STEP) { case 0: $arReturn['MESSAGE'] = GetMessage('WSL_IMPORT_FILES_LOADING'); $arReturn['STEP'] = 1; break; case 1: $time_limit = ini_get('max_execution_time'); if ($time_limit < LOC_STEP_LENGTH) { set_time_limit(LOC_STEP_LENGTH + 5); } $start_time = time(); $finish_time = $start_time + LOC_STEP_LENGTH; $file_url = $sTmpFilePath . $CSVFILE; if (!file_exists($file_url)) { $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_NO_LOC_FILE'); break; } $bFinish = true; $arSysLangs = array(); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $arSysLangs[$arLang["LID"]] = $arLang["LID"]; } $arLocations = array(); if (!$bSync) { if (!is_set($_SESSION["LOC_POS"])) { CSaleLocation::DeleteAll(); } } else { $dbLocations = CSaleLocation::GetList(array(), array(), false, false, array("ID", "COUNTRY_ID", "REGION_ID", "CITY_ID")); while ($arLoc = $dbLocations->Fetch()) { $arLocations[$arLoc["ID"]] = $arLoc; } } if (count($arLocations) <= 0) { $bSync = false; } include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php"; $csvFile = new CCSVData(); $csvFile->LoadFile($file_url); $csvFile->SetFieldsType("R"); $csvFile->SetFirstHeader(false); $csvFile->SetDelimiter(","); $arRes = $csvFile->Fetch(); if (!is_array($arRes) || count($arRes) <= 0 || strlen($arRes[0]) != 2) { $strWarning .= GetMessage('SL_IMPORT_ERROR_WRONG_LOC_FILE') . "<br />"; } if (strlen($strWarning) <= 0) { $DefLang = $arRes[0]; if (!in_array($DefLang, $arSysLangs)) { $strWarning .= GetMessage('SL_IMPORT_ERROR_NO_LANG') . "<br />"; } } if (strlen($strWarning) > 0) { $arReturn['ERROR'] = $strWarning . "<br />"; break; } if (is_set($_SESSION["LOC_POS"])) { $csvFile->SetPos($_SESSION["LOC_POS"]); $CurCountryID = $_SESSION["CUR_COUNTRY_ID"]; $CurRegionID = $_SESSION["CUR_REGION_ID"]; $numCountries = $_SESSION["NUM_COUNTRIES"]; $numRegiones = $_SESSION["NUM_REGIONES"]; $numCities = $_SESSION["NUM_CITIES"]; $numLocations = $_SESSION["NUM_LOCATIONS"]; } else { $CurCountryID = 0; $CurRegionID = 0; $numCountries = 0; $numRegiones = 0; $numCities = 0; $numLocations = 0; } $tt = 0; while ($arRes = $csvFile->Fetch()) { $type = ToUpper($arRes[0]); $tt++; $arArrayTmp = array(); foreach ($arRes as $ind => $value) { if ($ind % 2 && isset($arSysLangs[$value])) { $arArrayTmp[$value] = array("LID" => $value, "NAME" => $arRes[$ind + 1]); if ($value == $DefLang) { $arArrayTmp["NAME"] = $arRes[$ind + 1]; } } } //country if (is_array($arArrayTmp) && strlen($arArrayTmp["NAME"]) > 0) { if ($type == "S") { $CurRegionID = null; $arRegionList = array(); $CurCountryID = null; $arContList = array(); $LLL = 0; if ($bSync) { $db_contList = CSaleLocation::GetList(array(), array("COUNTRY_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang)); if ($arContList = $db_contList->Fetch()) { $LLL = IntVal($arContList["ID"]); $CurCountryID = IntVal($arContList["COUNTRY_ID"]); } } if (IntVal($CurCountryID) <= 0) { $CurCountryID = CSaleLocation::AddCountry($arArrayTmp); $CurCountryID = IntVal($CurCountryID); if ($CurCountryID > 0) { $numCountries++; if (IntVal($LLL) <= 0) { $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID)); if (IntVal($LLL) > 0) { $numLocations++; } } } } } elseif ($type == "R") { $CurRegionID = null; $arRegionList = array(); $LLL = 0; if ($bSync) { $db_rengList = CSaleLocation::GetList(array(), array("COUNTRY_ID" => $CurCountryID, "REGION_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang)); if ($arRegionList = $db_rengList->Fetch()) { $LLL = $arRegionList["ID"]; $CurRegionID = IntVal($arRegionList["REGION_ID"]); } } if (IntVal($CurRegionID) <= 0) { $CurRegionID = CSaleLocation::AddRegion($arArrayTmp); $CurRegionID = IntVal($CurRegionID); if ($CurRegionID > 0) { $numRegiones++; if (IntVal($LLL) <= 0) { $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID, "REGION_ID" => $CurRegionID)); if (IntVal($LLL) > 0) { $numLocations++; } } } } } elseif ($type == "T" && IntVal($CurCountryID) > 0) { $city_id = 0; $LLL = 0; $arCityList = array(); if ($bSync) { $arFilter = array("COUNTRY_ID" => $CurCountryID, "CITY_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang); if (IntVal($CurRegionID) > 0) { $arFilter["REGION_ID"] = $CurRegionID; } $db_cityList = CSaleLocation::GetList(array(), $arFilter); if ($arCityList = $db_cityList->Fetch()) { $LLL = $arCityList["ID"]; $city_id = IntVal($arCityList["CITY_ID"]); } } if ($city_id <= 0) { $city_id = CSaleLocation::AddCity($arArrayTmp); $city_id = IntVal($city_id); if ($city_id > 0) { $numCities++; } } if ($city_id > 0) { if (IntVal($LLL) <= 0) { $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID, "REGION_ID" => $CurRegionID, "CITY_ID" => $city_id)); if (intval($LLL) > 0) { $numLocations++; } } } } } if ($tt == 10) { $tt = 0; $cur_time = time(); if ($cur_time >= $finish_time) { $cur_step = $csvFile->GetPos(); $amount = $csvFile->iFileLength; $_SESSION["LOC_POS"] = $cur_step; $_SESSION["CUR_COUNTRY_ID"] = $CurCountryID; $_SESSION["CUR_REGION_ID"] = $CurRegionID; $_SESSION["NUM_COUNTRIES"] = $numCountries; $_SESSION["NUM_REGIONES"] = $numRegiones; $_SESSION["NUM_CITIES"] = $numCities; $_SESSION["NUM_LOCATIONS"] = $numLocations; $bFinish = false; //echo "<script>Import(1, {AMOUNT:".CUtil::JSEscape($amount).",POS:".CUtil::JSEscape($cur_step)."})</script>"; $arReturn['STEP'] = 1; $arReturn['AMOUNT'] = $amount; $arReturn['POS'] = $cur_step; break; } } } if ($bFinish) { unset($_SESSION["LOC_POS"]); $strOK = GetMessage('SL_IMPORT_LOC_STATS') . '<br />'; $strOK = str_replace('#NUMCOUNTRIES#', intval($numCountries), $strOK); $strOK = str_replace('#NUMREGIONES#', intval($numRegiones), $strOK); $strOK = str_replace('#NUMCITIES#', intval($numCities), $strOK); $strOK = str_replace('#NUMLOCATIONS#', intval($numLocations), $strOK); $arReturn['MESSAGE'] = $strOK; $arReturn['STEP'] = $LOADZIP == "Y" ? 2 : 3; //echo '<script>Import('.($LOADZIP == "Y" ? 2 : 3).')</script>'; } break; case 2: $time_limit = ini_get('max_execution_time'); if ($time_limit < ZIP_STEP_LENGTH) { set_time_limit(ZIP_STEP_LENGTH + 5); } $start_time = time(); $finish_time = $start_time + ZIP_STEP_LENGTH; if ($LOADZIP == "Y" && file_exists($sTmpFilePath . DLZIPFILE)) { $rsLocations = CSaleLocation::GetList(array(), array("LID" => 'ru'), false, false, array("ID", "CITY_NAME_LANG", "REGION_NAME_LANG")); $arLocationMap = array(); while ($arLocation = $rsLocations->Fetch()) { if (strlen($arLocation["REGION_NAME_LANG"]) > 0) { if (strlen($arLocation["CITY_NAME_LANG"]) > 0) { $arLocationMap[$arLocation["CITY_NAME_LANG"]][$arLocation["REGION_NAME_LANG"]] = $arLocation["ID"]; } } else { $arLocationMap[$arLocation["CITY_NAME_LANG"]] = $arLocation["ID"]; } } $DB->StartTransaction(); include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php"; $csvFile = new CCSVData(); $csvFile->LoadFile($sTmpFilePath . DLZIPFILE); $csvFile->SetFieldsType("R"); $csvFile->SetFirstHeader(false); $csvFile->SetDelimiter(";"); if (is_set($_SESSION, 'ZIP_POS')) { $numZIP = $_SESSION["NUM_ZIP"]; $csvFile->SetPos($_SESSION["ZIP_POS"]); } else { CSaleLocation::ClearAllLocationZIP(); unset($_SESSION["NUM_ZIP"]); $numZIP = 0; } $bFinish = true; $tt = 0; $REGION = ""; while ($arRes = $csvFile->Fetch()) { $tt++; $CITY = $arRes[1]; if (strlen($arRes[3]) > 0) { $REGION = $arRes[3]; } if (array_key_exists($CITY, $arLocationMap)) { if (strlen($REGION) > 0) { $ID = $arLocationMap[$CITY][$REGION]; } else { $ID = $arLocationMap[$CITY]; } } else { $ID = 0; } if ($ID) { CSaleLocation::AddLocationZIP($ID, $arRes[2]); $numZIP++; } if ($tt == 10) { $tt = 0; $cur_time = time(); if ($cur_time >= $finish_time) { $cur_step = $csvFile->GetPos(); $amount = $csvFile->iFileLength; $_SESSION["ZIP_POS"] = $cur_step; $_SESSION["NUM_ZIP"] = $numZIP; $bFinish = false; $arReturn['STEP'] = 2; $arReturn['AMOUNT'] = $amount; $arReturn['POS'] = $cur_step; break; } } } $DB->Commit(); if ($bFinish) { unset($_SESSION["ZIP_POS"]); $numCity = CSaleLocation::_GetZIPImportStats(); $strOK = GetMessage('SL_IMPORT_ZIP_STATS'); $strOK = str_replace('#NUMZIP#', intval($numZIP), $strOK); $strOK = str_replace('#NUMCITIES#', intval($numCity["CITY_CNT"]), $strOK); $arReturn['MESSAGE'] = $strOK; $arReturn['STEP'] = 3; $arReturn['PB_REMOVE'] = true; break; } } else { $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_NO_ZIP_FILE') . '<br>'; $arReturn['STEP'] = 3; break; } break; case 3: $arReturn['COMPLETE'] = true; break; } } return $arReturn; }
/** * Returns array with status name on all site languages * @param string $name Status name * @param int $statusId (optional) Status ID needed if we updating status. * @return array Array of status names. */ private function getStatusLang($name, $statusId = false) { if (!CModule::IncludeModule('sale')) { return false; } $arStatusLang = array(); $by = "sort"; $order = "asc"; $dbLang = CLangAdmin::GetList($by, $order, array("ACTIVE" => "Y")); self::ensureLanguageDefined(); while ($arLang = $dbLang->Fetch()) { $statusName = ''; if ($statusId && $arLang["LID"] != self::$languageID) { $arLangStatus = CSaleStatus::GetLangByID($statusId, $arLang["LID"]); if ($arLangStatus && isset($arLangStatus['NAME'])) { $statusName = $arLangStatus['NAME']; } } if (strlen($statusName) <= 0) { $statusName = $name; } $arStatusLang[] = array('LID' => $arLang["LID"], 'NAME' => $statusName); } return $arStatusLang; }
CModule::IncludeModule('currency'); IncludeModuleLangFile(__FILE__); $errorMessage = array(); $ID = ''; if (isset($_REQUEST['ID'])) { $ID = (string) $_REQUEST['ID']; } $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("currency_curr"), "ICON" => "", "TITLE" => GetMessage("currency_curr_settings")), array("DIV" => "edit2", "TAB" => GetMessage("BT_CURRENCY_EDIT_TAB_NAME_LANGUAGE"), "ICON" => "", "TITLE" => GetMessage("BT_CURRENCY_EDIT_TAB_TITLE_LANGUAGE"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); $arTemplates = CCurrencyLang::GetFormatTemplates(); $separatorList = CCurrencyLang::GetSeparatorTypes(true); $langList = array(); $langID = array(); $by = "sort"; $order = "asc"; $langIterator = CLangAdmin::GetList($by, $order); while ($oneLang = $langIterator->Fetch()) { $langID[] = $oneLang['LID']; $langList[$oneLang['LID']] = $oneLang['NAME']; } unset($oneLang, $langIterator, $order, $by); $arFields = array(); if ($_SERVER['REQUEST_METHOD'] == 'POST' && $CURRENCY_RIGHT == "W" && !empty($_POST['Update']) && check_bitrix_sessid()) { if (!isset($_POST['BASE']) || $_POST['BASE'] != 'Y') { $arFields = array('AMOUNT' => isset($_POST['AMOUNT']) ? $_POST['AMOUNT'] : '', 'AMOUNT_CNT' => isset($_POST['AMOUNT_CNT']) ? $_POST['AMOUNT_CNT'] : '', 'SORT' => isset($_POST['SORT']) ? $_POST['SORT'] : '', 'NUMCODE' => isset($_POST['NUMCODE']) ? $_POST['NUMCODE'] : ''); } else { $arFields = array('AMOUNT' => 1, 'AMOUNT_CNT' => 1, 'SORT' => isset($_POST['SORT']) ? $_POST['SORT'] : '', 'NUMCODE' => isset($_POST['NUMCODE']) ? $_POST['NUMCODE'] : ''); } if (!$ID && isset($_POST['CURRENCY'])) { $arFields['CURRENCY'] = $_POST['CURRENCY']; }
<?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")); } __IncludeLang(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] = htmlspecialcharsbx($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); if ($_SERVER["REQUEST_METHOD"] == "POST" && $CURRENCY_RIGHT == "W" && strlen($Update) > 0 && check_bitrix_sessid()) { $arFields = array("AMOUNT" => $_POST['AMOUNT'], "AMOUNT_CNT" => $_POST['AMOUNT_CNT'], "SORT" => $_POST['SORT']); if (isset($_POST['CURRENCY'])) { $arFields["CURRENCY"] = $_POST['CURRENCY']; } $strAction = $ID ? 'UPDATE' : 'ADD'; $bVarsFromForm = !CCurrency::CheckFields($strAction, $arFields, $ID);
public static function AddRegion($arFields) { global $DB; if (!CSaleLocation::RegionCheckFields("ADD", $arFields)) { return false; } if (self::isLocationProMigrated()) { return self::AddLocationUnattached('REGION', $arFields); } foreach (GetModuleEvents('sale', 'OnBeforeRegionAdd', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($arFields)) === false) { return false; } } $arInsert = $DB->PrepareInsert("b_sale_location_region", $arFields); $strSql = "INSERT INTO b_sale_location_region(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); $b = "sort"; $o = "asc"; $db_lang = CLangAdmin::GetList($b, $o, array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { if ($arFields[$arLang["LID"]]) { $arInsert = $DB->PrepareInsert("b_sale_location_region_lang", $arFields[$arLang["LID"]]); $strSql = "INSERT INTO b_sale_location_region_lang(REGION_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } } foreach (GetModuleEvents('sale', 'OnRegionAdd', true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
/** * The function adds a new region * * @param array $arFields array with parameters region * @return int $ID code region */ function AddRegion($arFields) { global $DB; if (!CSaleLocation::RegionCheckFields("ADD", $arFields)) return false; $db_events = GetModuleEvents("sale", "OnBeforeRegionAdd"); while ($arEvent = $db_events->Fetch()) if (ExecuteModuleEventEx($arEvent, array($arFields))===false) return false; $arInsert = $DB->PrepareInsert("b_sale_location_region", $arFields); $strSql = "INSERT INTO b_sale_location_region(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); $db_lang = CLangAdmin::GetList(($b="sort"), ($o="asc"), array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { if ($arFields[$arLang["LID"]]) { $arInsert = $DB->PrepareInsert("b_sale_location_region_lang", $arFields[$arLang["LID"]]); $strSql = "INSERT INTO b_sale_location_region_lang(REGION_ID, ".$arInsert[0].") ". "VALUES(".$ID.", ".$arInsert[1].")"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); } } $events = GetModuleEvents("sale", "OnRegionAdd"); while ($arEvent = $events->Fetch()) ExecuteModuleEventEx($arEvent, array($ID, $arFields)); return $ID; }
$arSelectFields = array_values($arSelectFields); $arSelectFieldsMap = array_merge($arSelectFieldsMap, array_fill_keys($arSelectFields, true)); $mxKey = array_search('NAME_LID', $arSelectFields); if (false !== $mxKey) { unset($arSelectFields[$mxKey]); $arSelectFields = array_values($arSelectFields); } $arLangList = array(); $arLangDefList = array(); if ($arSelectFieldsMap['NAME_LID']) { $rsPriceLangs = CLangAdmin::GetList(($by1="sort"), ($order1="asc")); while ($arPriceLang = $rsPriceLangs->Fetch()) { $arLangList[$arPriceLang['LID']] = true; $arLangDefList[$arPriceLang['LID']] = str_replace('#LANG#', htmlspecialcharsex($arPriceLang['NAME']), GetMessage('BT_CAT_GROUP_ADM_LANG_MESS')); } } $arNavParams = (isset($_REQUEST["mode"]) && 'excel' == $_REQUEST["mode"] ? false : array("nPageSize" => CAdminResult::GetNavSize($sTableID)) ); $dbResultList = CCatalogGroup::GetList( array($by => $order), array(),