''); if (strlen($value['VALUE']) > 0) { $arCoords = explode(',', $value['VALUE'], 2); $lat = doubleval($arCoords[0]); $lng = doubleval($arCoords[1]); if ($lat && $lng) $arResult['VALUE'] = $lat.','.$lng; } return $arResult; } function ConvertToDB($arProperty, $value) { $arResult = array('VALUE' => ''); if (strlen($value['VALUE']) > 0) { $arCoords = explode(',', $value['VALUE'], 2); $lat = doubleval($arCoords[0]); $lng = doubleval($arCoords[1]); if ($lat && $lng) $arResult['VALUE'] = $lat.','.$lng; } return $arResult; } } class CIBlockPropertyMapGoogle extends CIBlockPropertyMapInterface { function GetUserTypeDescription() { return array( "PROPERTY_TYPE" =>"S", "USER_TYPE" =>"map_google", "DESCRIPTION" =>GetMessage("IBLOCK_PROP_MAP_GOOGLE"), "GetPropertyFieldHtml" =>array("CIBlockPropertyMapGoogle","GetPropertyFieldHtml"), "GetPublicViewHTML" =>array("CIBlockPropertyMapGoogle","GetPublicViewHTML"), "ConvertToDB" =>array("CIBlockPropertyMapGoogle","ConvertToDB"), "ConvertFromDB" =>array("CIBlockPropertyMapGoogle","ConvertFromDB"), ); } function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName) { global $APPLICATION; if ($strHTMLControlName["MODE"] != "FORM_FILL") return ''; if (strlen($value['VALUE']) > 0) { list($POINT_LAT, $POINT_LON) = explode(',', $value['VALUE'], 2); $bHasValue = true; } else { $POINT_LAT = doubleval(GetMessage('IBLOCK_PROP_MAP_GOOGLE_INIT_LAT')); $POINT_LON = doubleval(GetMessage('IBLOCK_PROP_MAP_GOOGLE_INIT_LON')); $bHasValue = false; } $MAP_ID = 'map_google_'.$arProperty['CODE'].'_'.$arProperty['ID']; $MAP_KEY = ''; $strMapKeys = COPtion::GetOptionString('fileman', 'map_google_keys'); $strDomain = $_SERVER['HTTP_HOST']; $wwwPos = strpos($strDomian, 'www.'); if ($wwwPos === 0) $strDomain = substr($strDomain, 4); if ($strMapKeys) { $arMapKeys = unserialize($strMapKeys); if (array_key_exists($strDomain, $arMapKeys)) $MAP_KEY = $arMapKeys[$strDomain]; } if (!$MAP_KEY) { ?>


IncludeComponent( 'bitrix:map.google.system', '', array( 'KEY' => $MAP_KEY, 'INIT_MAP_TYPE' => 'NORMAL', 'INIT_MAP_LON' => $POINT_LON ? $POINT_LON : 37.64, 'INIT_MAP_LAT' => $POINT_LAT ? $POINT_LAT : 55.76, 'INIT_MAP_SCALE' => 10, 'OPTIONS' => array('ENABLE_SCROLL_ZOOM', 'ENABLE_DRAGGING'), 'CONTROLS' => array('LARGE_MAP_CONTROL', 'HTYPECONTROL', 'MINIMAP', 'SCALELINE'), 'MAP_WIDTH' => '95%', 'MAP_HEIGHT' => 400, 'MAP_ID' => $MAP_ID, 'DEV_MODE' => 'Y', 'WAIT_FOR_EVENT' => $MAP_KEY ? '' : 'LoadMap_'.$MAP_ID ), false, array('HIDE_ICONS' => 'Y') ); ?>