Adds various mapping features to MediaWiki

Fund package maintenance!
JeroenDeDauw

Installs: 110 621

Dependents: 4

Suggesters: 0

Security: 0

Stars: 72

Watchers: 22

Forks: 62

Open Issues: 96

Language:JavaScript

Type:mediawiki-extension

10.1.2 2024-02-21 16:07 UTC

README

Maps is the MediaWiki extension to visualize and work with geographical information. It has been maintained since 2009 and is installed on 1000+ wikis.

Features:

Missing a feature? Professional.Wiki does custom development at a discount if it is open sourced.

Documentation

For administrators

For wiki users

youtube.jpg

Getting support

Project status

Contributing

Development

To ensure the dev dependencies get installed, have this in your composer.local.json:

{
	"require": {
		"vimeo/psalm": "^4",
		"phpstan/phpstan": "^1.4.9"
	},
	"extra": {
		"merge-plugin": {
			"include": [
				"extensions/Maps/composer.json"
			]
		}
	}
}

Project structure

The src/ contains the PHP code and follows PSR-4 autoloading.

  • src/Map - Map display entry points (such as handling of #display_map) and their supporting code
  • src/ParserHooks - Entry points for all parser hooks except #display_map
  • src/Presentation - Presentation layer code that does not belong to a more specific directory
  • src/DataAccess - Persistence layer code that does not belong to a more specific directory
  • src/GeoJsonPages - Code that deals with pages in the GeoJson namespace
  • src/LegacyModel - Badly designed and deprecated representations of map elements (markers, polygons, etc)
  • src/LegacyMapEditor - Deprecated and Google Maps only Special:MapEditor page
  • src/SemanticMW - Semantic MediaWiki code except for the map entry point (which is in Map\SemanticFormat)
  • src/WikitextParsers - Parsers for the wikitext definitions of map elements (like the LegacyModel)

JavaScript, CSS and other web resources go into resources/.

Tests for PHP go into tests/ where they are grouped by test type (ie unit, integration). Within those test type directories the tests should mirror the directory structure in src/.

Running the tests

You can use the Makefile by running make commands in the Maps directory.

  • make ci: Run everything
  • make test: Run all tests and static analysis
  • make cs: Run all style checks

Alternatively, you can execute commands from the MediaWiki root directory:

  • PHPUnit: php tests/phpunit/phpunit.php -c extensions/Maps/
  • Style checks: vendor/bin/phpcs -p -s --standard=extensions/Maps/phpcs.xml
  • PHPStan: vendor/bin/phpstan analyse --configuration=extensions/Maps/phpstan.neon --memory-limit=2G
  • Psalm: php vendor/bin/psalm --config=extensions/Maps/psalm.xml

Beware that due to technical debt, some tests access the network.

Links