diff options
author | Yaco <franco@reevo.org> | 2021-10-19 20:24:11 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2021-10-19 20:24:11 -0300 |
commit | e3880a1c86acaa3bbd05786ad2f5c586e6511a58 (patch) | |
tree | ec77bfc5b69f259a159c95188797bd0dade92357 /www/wiki/extensions/Maps/src/LeafletService.php | |
parent | 20ca0685509f8010580d3b45036a64ab48616af1 (diff) |
updates Maps to 7.13.0
Diffstat (limited to 'www/wiki/extensions/Maps/src/LeafletService.php')
-rw-r--r-- | www/wiki/extensions/Maps/src/LeafletService.php | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/www/wiki/extensions/Maps/src/LeafletService.php b/www/wiki/extensions/Maps/src/LeafletService.php index 0e41d670..6d189fdb 100644 --- a/www/wiki/extensions/Maps/src/LeafletService.php +++ b/www/wiki/extensions/Maps/src/LeafletService.php @@ -3,6 +3,8 @@ namespace Maps; use Html; +use ParamProcessor\ParameterTypes; +use ParamProcessor\ProcessingResult; /** * @licence GNU GPL v2+ @@ -24,19 +26,17 @@ class LeafletService implements MappingService { } public function getParameterInfo(): array { - global $GLOBALS; - - $params = []; + $params = MapsFunctions::getCommonParameters(); $params['zoom'] = [ - 'type' => 'integer', + 'type' => ParameterTypes::INTEGER, 'range' => [ 0, 20 ], 'default' => false, 'message' => 'maps-par-zoom' ]; $params['defzoom'] = [ - 'type' => 'integer', + 'type' => ParameterTypes::INTEGER, 'range' => [ 0, 20 ], 'default' => self::getDefaultZoom(), 'message' => 'maps-leaflet-par-defzoom' @@ -51,8 +51,9 @@ class LeafletService implements MappingService { 'islist' => true, ]; - $params['overlaylayers'] = [ - 'type' => 'string', + $params['overlays'] = [ + 'aliases' => [ 'overlaylayers' ], + 'type' => ParameterTypes::STRING, 'values' => array_keys( $GLOBALS['egMapsLeafletAvailableOverlayLayers'], true, true ), 'default' => $GLOBALS['egMapsLeafletOverlayLayers'], 'message' => 'maps-leaflet-par-overlaylayers', @@ -60,59 +61,68 @@ class LeafletService implements MappingService { ]; $params['resizable'] = [ - 'type' => 'boolean', + 'type' => ParameterTypes::BOOLEAN, 'default' => $GLOBALS['egMapsResizableByDefault'], 'message' => 'maps-par-resizable' ]; - $params['enablefullscreen'] = [ - 'type' => 'boolean', + $params['fullscreen'] = [ + 'aliases' => [ 'enablefullscreen' ], + 'type' => ParameterTypes::BOOLEAN, 'default' => false, 'message' => 'maps-par-enable-fullscreen', ]; $params['scrollwheelzoom'] = [ - 'type' => 'boolean', + 'aliases' => [ 'scrollzoom' ], + 'type' => ParameterTypes::BOOLEAN, 'default' => true, 'message' => 'maps-par-scrollwheelzoom', ]; - $params['markercluster'] = [ - 'type' => 'boolean', + $params['cluster'] = [ + 'aliases' => [ 'markercluster' ], + 'type' => ParameterTypes::BOOLEAN, 'default' => false, 'message' => 'maps-par-markercluster', ]; $params['clustermaxzoom'] = [ - 'type' => 'integer', + 'type' => ParameterTypes::INTEGER, 'default' => 20, 'message' => 'maps-par-clustermaxzoom', ]; $params['clusterzoomonclick'] = [ - 'type' => 'boolean', + 'type' => ParameterTypes::BOOLEAN, 'default' => true, 'message' => 'maps-par-clusterzoomonclick', ]; $params['clustermaxradius'] = [ - 'type' => 'integer', + 'type' => ParameterTypes::INTEGER, 'default' => 80, 'message' => 'maps-par-maxclusterradius', ]; $params['clusterspiderfy'] = [ - 'type' => 'boolean', + 'type' => ParameterTypes::BOOLEAN, 'default' => true, 'message' => 'maps-leaflet-par-clusterspiderfy', ]; $params['geojson'] = [ - 'type' => 'jsonfile', + 'type' => ParameterTypes::STRING, 'default' => '', 'message' => 'maps-displaymap-par-geojson', ]; + $params['clicktarget'] = [ + 'type' => ParameterTypes::STRING, + 'default' => '', + 'message' => 'maps-leaflet-par-clicktarget', + ]; + return $params; } @@ -132,7 +142,7 @@ class LeafletService implements MappingService { } public function getResourceModules(): array { - return [ 'ext.maps.leaflet', 'ext.sm.leafletajax' ]; + return [ 'ext.maps.leaflet.loader', 'ext.maps.leaflet.leafletajax' ]; } public function getDependencyHtml( array $params ): string { @@ -151,7 +161,7 @@ class LeafletService implements MappingService { } private function getDependencies( array $params ): array { - $leafletPath = $GLOBALS['wgScriptPath'] . '/extensions/Maps/resources/leaflet/leaflet'; + $leafletPath = $GLOBALS['wgScriptPath'] . '/extensions/Maps/resources/lib/leaflet'; return array_merge( [ @@ -181,4 +191,20 @@ class LeafletService implements MappingService { return array_unique( $layerDependencies ); } + public function processingResultToMapParams( ProcessingResult $processingResult ): array { + $mapParams = $processingResult->getParameterArray(); + + if ( $mapParams['geojson'] !== '' ) { + $fetcher = MapsFactory::newDefault()->newGeoJsonFetcher(); + + $result = $fetcher->fetch( $mapParams['geojson'] ); + + $mapParams['geojson'] = $result->getContent(); + $mapParams['GeoJsonSource'] = $result->getTitleValue() === null ? null : $result->getTitleValue()->getText(); + $mapParams['GeoJsonRevisionId'] = $result->getRevisionId(); + } + + return $mapParams; + } + } |