Alex Trofimov 5 лет назад
Родитель
Сommit
ade54e264d

+ 9 - 0
inc/classes/BxDolLocationFieldQuery.php

@@ -28,6 +28,15 @@ class BxDolLocationFieldQuery extends BxDolDb
 
         return $aObject;
     }
+
+    static public function getObjects ()
+    {
+        $aObjects = BxDolDb::getInstance()->getAll("SELECT * FROM `sys_objects_location_field`");
+        if(empty($aObjects) || !is_array($aObjects))
+            return array();
+
+        return $aObjects;
+    }
 }
 
 /** @} */

+ 9 - 0
inc/classes/BxDolLocationMapQuery.php

@@ -28,6 +28,15 @@ class BxDolLocationMapQuery extends BxDolDb
 
         return $aObject;
     }
+
+    static public function getObjects ()
+    {
+        $aObjects = BxDolDb::getInstance()->getAll("SELECT * FROM `sys_objects_location_map`");
+        if(empty($aObjects) || !is_array($aObjects))
+            return array();
+
+        return $aObjects;
+    }
 }
 
 /** @} */

+ 3 - 1
install/sql/system.sql

@@ -434,7 +434,9 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 
 (@iCategoryId, 'sys_default_payment', '_adm_stg_cpt_option_sys_default_payment', '', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:12:"get_payments";s:5:"class";s:21:"TemplPaymentsServices";}', '', '', 60),
 
-(@iCategoryId, 'sys_maps_api_key', '_adm_stg_cpt_option_sys_maps_api_key', '', 'digit', '', '', '', 70),
+(@iCategoryId, 'sys_location_field_default', '_adm_stg_cpt_option_sys_location_field_default', 'sys_plain', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:34:"get_options_location_field_default";s:5:"class";s:13:"TemplServices";}', '', '', 70),
+(@iCategoryId, 'sys_location_map_default', '_adm_stg_cpt_option_sys_location_map_default', 'sys_google_static', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:32:"get_options_location_map_default";s:5:"class";s:13:"TemplServices";}', '', '', 71),
+(@iCategoryId, 'sys_maps_api_key', '_adm_stg_cpt_option_sys_maps_api_key', '', 'digit', '', '', '', 72),
 
 (@iCategoryId, 'sys_embed_default', '_adm_stg_cpt_option_sys_embed_default', 'sys_embedly', 'select', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:25:"get_options_embed_default";s:5:"class";s:13:"TemplServices";}', '', '', 79),
 (@iCategoryId, 'sys_embedly_api_key', '_adm_stg_cpt_option_sys_embedly_api_key', '', 'digit', '', '', '', 80),

+ 5 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -1502,6 +1502,8 @@
 	<string name="_adm_stg_cpt_option_sys_install_time"><![CDATA[Installation date]]></string>
 	<string name="_adm_stg_cpt_option_sys_upgrade_channel"><![CDATA[Update channel]]></string>
 	<string name="_adm_stg_cpt_option_sys_live_updates_interval"><![CDATA[Live updates interval (in milliseconds)]]></string>
+    <string name="_adm_stg_cpt_option_sys_location_field_default"><![CDATA[Location field provider]]></string>
+    <string name="_adm_stg_cpt_option_sys_location_map_default"><![CDATA[Location map provider]]></string>
 	<string name="_adm_stg_cpt_option_sys_maps_api_key"><![CDATA[Google Maps API key]]></string>
 	<string name="_adm_stg_cpt_option_sys_embed_default"><![CDATA[Embeds provider]]></string>
 	<string name="_adm_stg_cpt_option_sys_embedly_api_key"><![CDATA[Embed.ly API key (fill in to use instead of Iframely)]]></string>
@@ -2572,6 +2574,9 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_location_determining"><![CDATA[Determining location...]]></string>
 	<string name="_sys_location_geolocation_not_supported_by_browser"><![CDATA[Geolocation is not supported by this browser]]></string>
 	<string name="_sys_location_undefined"><![CDATA[Location off]]></string>
+	<string name="_sys_location_map_google_static"><![CDATA[Google Maps (Static)]]></string>
+	<string name="_sys_location_field_google"><![CDATA[Google autocomplete for addresses]]></string>
+	<string name="_sys_location_field_plain"><![CDATA[Plain address fields]]></string>
 	<string name="_sys_log_debug"><![CDATA[System: debug]]></string>
     <string name="_sys_log_twilio"><![CDATA[System: Twilio]]></string>
     <string name="_sys_log_push"><![CDATA[System: PUSH]]></string>

+ 5 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -1485,6 +1485,8 @@
     <string name="_adm_stg_cpt_option_sys_install_time"><![CDATA[Дата установки]]></string>
     <string name="_adm_stg_cpt_option_sys_upgrade_channel"><![CDATA[Канал обновлений]]></string>
     <string name="_adm_stg_cpt_option_sys_live_updates_interval"><![CDATA[Интервал обновлений (в миллисекундах)]]></string>
+    <string name="_adm_stg_cpt_option_sys_location_field_default"><![CDATA[Поставщик для поля ввода адреса]]></string>
+    <string name="_adm_stg_cpt_option_sys_location_map_default"><![CDATA[Поставщик для отображения карт]]></string>
     <string name="_adm_stg_cpt_option_sys_maps_api_key"><![CDATA[Ключ Google Maps API]]></string>
     <string name="_adm_stg_cpt_option_sys_embed_default"><![CDATA[Поставщик встраиваемого кода]]></string>
     <string name="_adm_stg_cpt_option_sys_embedly_api_key"><![CDATA[Ключ Embed.ly API (заполните, чтобы использовать вместо Iframely)]]></string>
@@ -2529,6 +2531,9 @@
 	<string name="_sys_location_determining"><![CDATA[Определение местоположения...]]></string>
 	<string name="_sys_location_geolocation_not_supported_by_browser"><![CDATA[Геолокация не поддерживается этим браузером]]></string>
 	<string name="_sys_location_undefined"><![CDATA[Отключить местоположение]]></string>
+	<string name="_sys_location_map_google_static"><![CDATA[Google Maps (статическое изображение)]]></string>
+	<string name="_sys_location_field_google"><![CDATA[Google автозаполнение адресов]]></string>
+	<string name="_sys_location_field_plain"><![CDATA[Простые поля]]></string>
 	<string name="_sys_log_debug"><![CDATA[Система: отладка]]></string>
     <string name="_sys_log_twilio"><![CDATA[Система: Twilio]]></string>
     <string name="_sys_log_push"><![CDATA[Система: PUSH]]></string>

+ 0 - 3
template/metatags_locations_map.html

@@ -1,3 +0,0 @@
-<div class="bx-metatags-locations-map bx-def-round-corners bx-def-color-bg-box" style="background-image:url(__map_img__);">
-    <div class="bx-metatags-locations-map-string bx-def-font-grayed bx-def-padding-sec bx-def-round-corners">__location_string__</div>
-</div>

+ 1 - 1
template/scripts/BxBaseFormView.php

@@ -1709,7 +1709,7 @@ BLAH;
 
     function genInputLocation(&$aInput)
     {
-        $o = BxDolLocationField::getObjectInstance('sys_plain');
+        $o = BxDolLocationField::getObjectInstance(getParam('sys_location_field_default'));
         if (!$o)
             return _t('_sys_txt_error_occured');
 

+ 1 - 2
template/scripts/BxBaseMetatags.php

@@ -109,8 +109,7 @@ class BxBaseMetatags extends BxDolMetatags
         if(!$sLocationHtml)
 			return '';
 
-        // TODO: add param for map object
-        $o = BxDolLocationMap::getObjectInstance('sys_google_static',  $this->_oTemplate);
+        $o = BxDolLocationMap::getObjectInstance(getParam('sys_location_map_default'),  $this->_oTemplate);
         if(!$o)
 			return '';
 

+ 22 - 0
template/scripts/BxBaseServices.php

@@ -483,6 +483,28 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
         return $aResults;
     }
 
+    public function serviceGetOptionsLocationFieldDefault()
+    {
+        $aResults = array();
+
+        $aObjects = BxDolLocationFieldQuery::getObjects();
+        foreach($aObjects as $aObject)
+            $aResults[$aObject['object']] = _t($aObject['title']);
+
+        return $aResults;
+    }
+
+    public function serviceGetOptionsLocationMapDefault()
+    {
+        $aResults = array();
+
+        $aObjects = BxDolLocationMapQuery::getObjects();
+        foreach($aObjects as $aObject)
+            $aResults[$aObject['object']] = _t($aObject['title']);
+
+        return $aResults;
+    }
+
     public function serviceGetOptionsRelations()
     {
         $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1));