public static function getCountriesNames() { $arCNames = array(); $dbCountList = CSaleLocation::GetCountryList(array("NAME" => "ASC"), array(), LANGUAGE_ID); while ($arCountry = $dbCountList->Fetch()) { $arCNames[$arCountry["ID"]] = $arCountry["NAME_ORIG"] . " [" . $arCountry["NAME_LANG"] . "]"; } return $arCNames; }
public static function GetLocationString($locationId, $siteId = SITE_ID, $langId = LANGUAGE_ID) { $locationString = ''; if (!\Bitrix\Sale\SalesZone::checkLocationId($locationId, $siteId)) { $locationId = 0; } $countryId = $regionId = $cityId = 0; if ($locationId > 0) { if ($arLocation = CSaleLocation::GetByID($locationId)) { $countryId = $arLocation["COUNTRY_ID"]; $regionId = $arLocation["REGION_ID"]; $cityId = $arLocation["CITY_ID"]; } } //check in location city $bEmptyCity = "N"; $arCityFilter = array("!CITY_ID" => "NULL", ">CITY_ID" => "0"); if ($countryId > 0) { $arCityFilter["COUNTRY_ID"] = $countryId; } $rsLocCount = CSaleLocation::GetList(array(), $arCityFilter, false, false, array("ID")); if (!$rsLocCount->Fetch()) { $bEmptyCity = "Y"; } //check in location region $bEmptyRegion = "N"; $arRegionFilter = array("!REGION_ID" => "NULL", ">REGION_ID" => "0"); if ($countryId > 0 && $regionId > 0) { $arRegionFilter["COUNTRY_ID"] = $countryId; } if ($regionId > 0) { $arRegionFilter["REGION_ID"] = $regionId; } $rsLocCount = CSaleLocation::GetList(array(), $arRegionFilter, false, false, array("ID")); if (!$rsLocCount->Fetch()) { $bEmptyRegion = "Y"; } //check if exist another city if ($bEmptyCity == "Y" && $bEmptyRegion == "Y") { $arCityFilter = array("!CITY_ID" => "NULL", ">CITY_ID" => "0"); $rsLocCount = CSaleLocation::GetList(array(), $arCityFilter, false, false, array("ID")); if ($rsLocCount->Fetch()) { $bEmptyCity = "N"; } } //location value if ($locationId > 0) { if ($arLocation = CSaleLocation::GetByID($locationId)) { if ($bEmptyRegion == "Y" && $bEmptyCity == "Y") { $countryId = $locationId; } else { $countryId = $arLocation["COUNTRY_ID"]; } if ($bEmptyCity == "Y") { $regionId = $arLocation["ID"]; } else { $regionId = $arLocation["REGION_ID"]; } $cityId = $locationId; } } //select country $arCountryList = array(); if ($bEmptyRegion == "Y" && $bEmptyCity == "Y") { $rsCountryList = CSaleLocation::GetList(array("SORT" => "ASC", "NAME_LANG" => "ASC"), array("LID" => $langId), false, false, array("ID", "COUNTRY_ID", "COUNTRY_NAME_LANG")); } else { $rsCountryList = CSaleLocation::GetCountryList(array("SORT" => "ASC", "NAME_LANG" => "ASC")); } while ($arCountry = $rsCountryList->GetNext()) { if (!\Bitrix\Sale\SalesZone::checkCountryId($arCountry["ID"], $siteId)) { continue; } if ($bEmptyRegion == "Y" && $bEmptyCity == "Y") { $arCountry["NAME_LANG"] = $arCountry["COUNTRY_NAME_LANG"]; } $arCountryList[] = $arCountry; if ($arCountry["ID"] == $countryId && strlen($arCountry["NAME_LANG"]) > 0) { $locationString .= $arCountry["NAME_LANG"]; } } if (count($arCountryList) <= 0) { $arCountryList = array(); } elseif (count($arCountryList) == 1) { $countryId = $arCountryList[0]["ID"]; } //select region $arRegionList = array(); if ($countryId > 0 || count($arCountryList) <= 0) { $arRegionFilter = array("LID" => $langId, "!REGION_ID" => "NULL", "!REGION_ID" => "0"); if ($countryId > 0) { $arRegionFilter["COUNTRY_ID"] = IntVal($countryId); } if ($bEmptyCity == "Y") { $rsRegionList = CSaleLocation::GetList(array("SORT" => "ASC", "NAME_LANG" => "ASC"), $arRegionFilter, false, false, array("ID", "REGION_ID", "REGION_NAME_LANG")); } else { $rsRegionList = CSaleLocation::GetRegionList(array("SORT" => "ASC", "NAME_LANG" => "ASC"), $arRegionFilter); } while ($arRegion = $rsRegionList->GetNext()) { if (!\Bitrix\Sale\SalesZone::checkRegionId($arRegion["ID"], $siteId)) { continue; } if ($bEmptyCity == "Y") { $arRegion["NAME_LANG"] = $arRegion["REGION_NAME_LANG"]; } $arRegionList[] = $arRegion; if ($arRegion["ID"] == $regionId && strlen($arRegion["NAME_LANG"]) > 0) { $locationString = $arRegion["NAME_LANG"] . ", " . $locationString; } } } if (count($arRegionList) <= 0) { $arRegionList = array(); } elseif (count($arRegionList) == 1) { $regionId = $arRegionList[0]["ID"]; } //select city $arCityList = array(); if ($bEmptyCity == "N" && (count($arCountryList) > 0 && count($arRegionList) > 0 && $countryId > 0 && $regionId > 0 || count($arCountryList) <= 0 && count($arRegionList) > 0 && $regionId > 0 || count($arCountryList) > 0 && count($arRegionList) <= 0 && $countryId > 0 || count($arCountryList) <= 0 && count($arRegionList) <= 0)) { $arCityFilter = array("LID" => $langId); if ($countryId > 0) { $arCityFilter["COUNTRY_ID"] = $countryId; } if ($regionId > 0) { $arCityFilter["REGION_ID"] = $regionId; } $rsLocationsList = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), $arCityFilter, false, false, array("ID", "CITY_ID", "CITY_NAME")); while ($arCity = $rsLocationsList->GetNext()) { if (!\Bitrix\Sale\SalesZone::checkCityId($arCity["CITY_ID"], $siteId)) { continue; } $arCityList[] = array("ID" => $arCity["ID"], "CITY_ID" => $arCity['CITY_ID'], "CITY_NAME" => $arCity["CITY_NAME"]); if ($arCity["ID"] == $cityId) { $locationString = (strlen($arCity["CITY_NAME"]) > 0 ? $arCity["CITY_NAME"] . ", " : "") . $locationString; } } //end while } return $locationString; }
} if ($arResult["EMPTY_CITY"] == "Y") { $arParams["REGION"] = $arLocation["ID"]; } else { $arParams["REGION"] = $arLocation["REGION_ID"]; } $arParams["CITY"] = $arParams["CITY_OUT_LOCATION"] == "Y" ? $arParams["LOCATION_VALUE"] : $arLocation["CITY_ID"]; } } $locationString = ""; //select country $arResult["COUNTRY_LIST"] = array(); if ($arResult["EMPTY_REGION"] == "Y" && $arResult["EMPTY_CITY"] == "Y") { $rsCountryList = CSaleLocation::GetList(array("SORT" => "ASC", "NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "COUNTRY_ID", "COUNTRY_NAME_LANG")); } else { $rsCountryList = CSaleLocation::GetCountryList(array("SORT" => "ASC", "NAME_LANG" => "ASC")); } while ($arCountry = $rsCountryList->GetNext()) { if (!SalesZone::checkCountryId($arCountry["ID"], $arParams["SITE_ID"])) { continue; } if ($arResult["EMPTY_REGION"] == "Y" && $arResult["EMPTY_CITY"] == "Y") { $arCountry["NAME_LANG"] = $arCountry["COUNTRY_NAME_LANG"]; } $arResult["COUNTRY_LIST"][] = $arCountry; if ($arCountry["ID"] == $arParams["COUNTRY"] && strlen($arCountry["NAME_LANG"]) > 0) { $locationString .= $arCountry["NAME_LANG"]; } } if (count($arResult["COUNTRY_LIST"]) <= 0) { $arResult["COUNTRY_LIST"] = array();
<select name="COUNTRY_ID" OnChange="SetContact()"> <option value="0"><?php echo GetMessage("NEW_COUNTRY"); ?> </option> <option value="" <?php if (isset($COUNTRY_ID) && $COUNTRY_ID == "" || $str_COUNTRY_ID == "0") { echo " selected"; } ?> ><?php echo GetMessage("WITHOUT_COUNTRY"); ?> </option> <?php $db_contList = CSaleLocation::GetCountryList(array("NAME" => "ASC"), array(), LANG); while ($arContList = $db_contList->Fetch()) { ?> <option value="<?php echo $arContList["ID"]; ?> "<?php if (IntVal($arContList["ID"]) == IntVal($str_COUNTRY_ID)) { echo " selected"; } ?> ><?php echo htmlspecialcharsEx($arContList["NAME_ORIG"]); ?> [<?php echo htmlspecialcharsEx($arContList["NAME_LANG"]);
$arLocation = array(); $arLocationMap = array(); $arSysLangs = array(); $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y")); while ($arLang = $db_lang->Fetch()) { $arSysLangs[] = $arLang["LID"]; } $i = 0; while ($arRes = $csvFile->Fetch()) { $i++; if ($i >= 1000) { $_SESSION["LOC_POST"] = $csvFile->GetPos(); break; } if (IntVal($CurCountryID) <= 0) { $dbCountry = CSaleLocation::GetCountryList(array("ID" => "DESC")); if ($arCountry = $dbCountry->Fetch()) { $CurCountryID = $arCountry["ID"]; } } $arArrayTmp = array(); for ($ind = 1; $ind < count($arRes); $ind += 2) { if (in_array($arRes[$ind], $arSysLangs)) { $arArrayTmp[$arRes[$ind]] = array("LID" => $arRes[$ind], "NAME" => $arRes[$ind + 1]); if ($arRes[$ind] == $lang) { $arArrayTmp["NAME"] = $arRes[$ind + 1]; } } } if (is_array($arArrayTmp) && strlen($arArrayTmp["NAME"]) > 0) { if (ToUpper($arRes[0]) == "S") {
<option value=''<?php echo in_array("", $sales_zone_countries) ? " selected" : ""; ?> ><?php echo GetMessage("SMO_LOCATION_ALL"); ?> </option> <option value='NULL'<?php echo in_array("NULL", $sales_zone_countries) ? " selected" : ""; ?> ><?php echo GetMessage("SMO_LOCATION_NO_COUNTRY"); ?> </option> <?php $dbCountryList = CSaleLocation::GetCountryList(array("NAME_LANG" => "ASC")); ?> <?php while ($arCountry = $dbCountryList->fetch()) { ?> <option value="<?php echo $arCountry["ID"]; ?> "<?php echo in_array($arCountry["ID"], $sales_zone_countries) ? " selected" : ""; ?> ><?php echo htmlspecialcharsbx($arCountry["NAME_LANG"]); ?> </option> <?php
//WriteToLog('start'); } while ($arRes = $csvFile->Fetch()) { $arArrayTmp = array(); for ($ind = 1; $ind < count($arRes); $ind += 2) { if (in_array($arRes[$ind], $arSysLangs)) { $arArrayTmp[$arRes[$ind]] = array("LID" => $arRes[$ind], "NAME" => $arRes[$ind + 1]); if ($arRes[$ind] == $DefLang) { $arArrayTmp["NAME"] = $arRes[$ind + 1]; } } } //WriteToLog(print_r($arArrayTmp, true)); if (is_array($arArrayTmp) && strlen($arArrayTmp["NAME"]) > 0) { if (strtoupper($arRes[0]) == "S") { $db_contList = CSaleLocation::GetCountryList(array(), array("NAME" => $arArrayTmp["NAME"]), $DefLang); if ($arContList = $db_contList->Fetch()) { $CurCountryID = $arContList["ID"]; $CurCountryID = IntVal($CurCountryID); //WriteToLog('Country found: '.$CurCountryID); } else { $CurCountryID = CSaleLocation::AddCountry($arArrayTmp); $CurCountryID = IntVal($CurCountryID); if ($CurCountryID > 0) { $numCounties++; $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID)); if (IntVal($LLL) > 0) { $numLocations++; } } //WriteToLog('Country not found: '.$CurCountryID);
/** * getAllCountries() - get all cities from DB * $langId - id site version (ru, en ...) */ public static function getAllCountries($langId = LANGUAGE_ID) { $resLocDB = CSaleLocation::GetCountryList(array("NAME_LANG" => "ASC"), array(), $langId); $allCountries = array(); while ($resLoc = $resLocDB->fetch()) { $allCountries[] = $resLoc; } return $allCountries; }