From: <ar...@us...> - 2013-08-27 17:41:42
|
Revision: 47294 http://sourceforge.net/p/tikiwiki/code/47294 Author: arildb Date: 2013-08-27 17:41:39 +0000 (Tue, 27 Aug 2013) Log Message: ----------- [ENH] Define zoom levels for geo-search results, instead of using a flag. thanks Jyhem Modified Paths: -------------- trunk/admin/include_maps.php trunk/lib/jquery_tiki/tiki-maps.js trunk/lib/prefs/geo.php trunk/templates/admin/include_maps.tpl trunk/tiki-setup.php Modified: trunk/admin/include_maps.php =================================================================== --- trunk/admin/include_maps.php 2013-08-27 15:13:52 UTC (rev 47293) +++ trunk/admin/include_maps.php 2013-08-27 17:41:39 UTC (rev 47294) @@ -53,3 +53,7 @@ } } $smarty->assign('map_error', $map_error); + +if (isset($_REQUEST['geo_zoomlevel_to_found_location'])) { + $tikilib->set_preference('geo_zoomlevel_to_found_location', $_REQUEST['geo_zoomlevel_to_found_location']); +} \ No newline at end of file Modified: trunk/lib/jquery_tiki/tiki-maps.js =================================================================== --- trunk/lib/jquery_tiki/tiki-maps.js 2013-08-27 15:13:52 UTC (rev 47293) +++ trunk/lib/jquery_tiki/tiki-maps.js 2013-08-27 17:41:39 UTC (rev 47294) @@ -968,10 +968,36 @@ click: toViewport }); - if (typeof isZoomToFoundLocation != 'undefined' && isZoomToFoundLocation) { + if (typeof zoomToFoundLocation != 'undefined') { // Center map to the new location and zoom - map.setCenter(lonlat); - map.zoomToScale(500 * OpenLayers.INCHES_PER_UNIT.m); + var zoomFactor = -1; + switch (zoomToFoundLocation) { + default: + case 'street': + zoomFactor = 250; + break; + case 'town': + zoomFactor = 2500; + break; + case 'region': + zoomFactor = 25000; + break; + case 'country': + zoomFactor = 250000; + break; + case 'continent': + zoomFactor = 1500000; + break; + case 'world': + zoomFactor = -1; + break; + } + if (zoomFactor < 0) { + toViewport(); + } else { + map.setCenter(lonlat); + map.zoomToScale(zoomFactor * OpenLayers.INCHES_PER_UNIT.m); + } } else { if (!container.map.getExtent().containsLonLat(lonlat)) { // Show marker on world map Modified: trunk/lib/prefs/geo.php =================================================================== --- trunk/lib/prefs/geo.php 2013-08-27 15:13:52 UTC (rev 47293) +++ trunk/lib/prefs/geo.php 2013-08-27 17:41:39 UTC (rev 47294) @@ -80,11 +80,19 @@ 'type' => 'flag', 'default' => 'n', ), - 'geo_zoom_to_found_location' => array( + 'geo_zoomlevel_to_found_location' => array( 'name' => tr('Zoom to found location'), 'description' => tr('Zoom to street level when finding a searched location'), - 'type' => 'flag', - 'default' => 'y', + 'type' => 'list', + 'options' => array( + 'street' => tra('Street level'), + 'town' => tra('Town level'), + 'region' => tra('Region level'), + 'country' => tra('Country level'), + 'continent' => tra('Continent level'), + 'world' => tra('World'), + ), + 'default' => 'street', ), ); } Modified: trunk/templates/admin/include_maps.tpl =================================================================== --- trunk/templates/admin/include_maps.tpl 2013-08-27 15:13:52 UTC (rev 47293) +++ trunk/templates/admin/include_maps.tpl 2013-08-27 17:41:39 UTC (rev 47294) @@ -21,7 +21,18 @@ {preference name=gmap_key} - {preference name=geo_zoom_to_found_location} + <div class="adminoptionbox"> + <div class="adminoptionlabel"><label for="geo_zoomlevel_to_found_location">{tr}Zoom level to searched location:{/tr}</label> + <select name="geo_zoomlevel_to_found_location" id="geo_zoomlevel_to_found_location"> + <option value="street"{if $prefs.geo_zoomlevel_to_found_location eq 'street'} selected="selected"{/if}>{tr}Street level{/tr}</option> + <option value="town"{if $prefs.geo_zoomlevel_to_found_location eq 'town'} selected="selected"{/if}>{tr}Town level{/tr}</option> + <option value="region"{if $prefs.geo_zoomlevel_to_found_location eq 'region'} selected="selected"{/if}>{tr}Region level{/tr}</option> + <option value="country"{if $prefs.geo_zoomlevel_to_found_location eq 'country'} selected="selected"{/if}>{tr}Country level{/tr}</option> + <option value="continent"{if $prefs.geo_zoomlevel_to_found_location eq 'continent'} selected="selected"{/if}>{tr}Continent level{/tr}</option> + <option value="world"{if $prefs.geo_zoomlevel_to_found_location eq 'world'} selected="selected"{/if}>{tr}World{/tr}</option> + </select> + </div> + </div> </fieldset> <fieldset class="admin"> Modified: trunk/tiki-setup.php =================================================================== --- trunk/tiki-setup.php 2013-08-27 15:13:52 UTC (rev 47293) +++ trunk/tiki-setup.php 2013-08-27 17:41:39 UTC (rev 47294) @@ -341,8 +341,12 @@ $headerlib->add_jsfile('lib/jquery_tiki/tiki-jquery.js'); -$isZoomToFoundLocation = isset($prefs['geo_zoom_to_found_location']) ? ($prefs['geo_zoom_to_found_location'] === 'y' ? '1' : '0') : '0'; -$headerlib->add_js('var isZoomToFoundLocation = '.$isZoomToFoundLocation.';'); // Set the zoom option after searching for a location +if (isset($_REQUEST['geo_zoomlevel_to_found_location'])) { + $zoomToFoundLocation = $_REQUEST['geo_zoomlevel_to_found_location']; +} else { + $zoomToFoundLocation = isset($prefs['geo_zoomlevel_to_found_location']) ? $prefs['geo_zoomlevel_to_found_location'] : 'street'; +} +$headerlib->add_js('var zoomToFoundLocation = "'.$zoomToFoundLocation.'";'); // Set the zoom option after searching for a location $headerlib->add_jsfile('lib/jquery_tiki/tiki-maps.js'); $headerlib->add_jsfile('vendor/jquery/plugins/jquery-json/jquery.json-2.4.js'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |