
![]() | Dieses Modul wird auf vielen Seiten benutzt, und Änderungen werden projektweit sofort wahrgenommen. Bitte teste Änderungen vorher im /Sandkasten oder in deinem Benutzernamensraum. Die getestete Änderung sollte dann in einem einzigen Edit auf dieser Seite eingefügt werden. Bitte diskutiere Änderungen zuerst auf der Diskussionsseite bevor du sie implementierst. |
![]() | Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf Mapshape/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
![]() | Dieses Modul benutzt die Wikidata-Eigenschaften:
|
Anwendung
Der Modul wird direkt von der Vorlage {{Mapshape}} aufgerufen. Parameterbeschreibung siehe dort.
Versionsbezeichnung auf Wikidata: 2022-10-22
Benötigte weitere Module
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Mapshape/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- getting a mapshape object -- documentation local Mapshape = { suite = 'Mapshape', serial = '2022-10-22', item = 65449536 } -- module import -- require( 'strict' ) local mi = require( 'Module:Mapshape utilities/i18n' ) local mp = require( 'Module:Mapshape/Params' ) local mu = require( 'Module:Mapshape utilities' ) local wu = require( 'Module:Wikidata utilities' ) -- module variable and administration local ms = { moduleInterface = Mapshape } local function getShape( args, frame ) local colorId, description, fill, id, image, stroke, title ms.entityId = mw.wikibase.getEntityIdForCurrentPage() ms.wikiLang = mw.getContentLanguage():getCode() local tagArgs = { text = '', group = mu.translateGroup( args.group ), class = 'no-icon' } local geojson = {} if args.page ~= '' then geojson = { type = 'ExternalData', service = 'page', title = mw.ustring.gsub( args.page, '[Dd]ata:', '' ) } elseif not mi.excludeOSM then -- getting first id id = mu.getFirstId( args.wikidata ) -- getting color from first id stroke = args.stroke if stroke == '' then stroke = mu.getColor( id ) if stroke == '' then stroke = mi.defaultStroke end end title = args.title description = args.description image = args.image -- getting title if only one id if id == args.wikidata then if title == '' then title = mu.getTitle( id ) end title = mu.addLink( title, id, ms.entityId, ms.wikiLang ) if args.type == 'geomask' then title = string.format( mi.geomask, title ) end if description == '' and image == '' then image = mu.getImage( id ) end else if title == '' then title = mw.title.getCurrentTitle().subpageText end if args.type == 'geomask' then title = string.format( mi.geomask, title ) end end if description == '' and image ~= '' then description = '[[file:' .. image .. '|141px]]' end fill = mu.getParameter( args.fill, mi.defaultFill ) geojson = { type = 'ExternalData', service = args.type, ids = args.wikidata, properties = { title = title, description = description, fill = fill, [ 'fill-opacity' ] = mu.getNumber( args.fillOpacity, mi.defaultFillOpacity ), stroke = stroke, [ 'stroke-width' ] = mu.getNumber( args.strokeWidth, mi.defaultStrokeWidth ), [ 'stroke-opacity' ] = mu.getNumber( args.strokeOpacity, mi.defaultStrokeOpacity ) } } end local result = '' if next( geojson ) then result = frame:extensionTag( 'maplink', mw.text.jsonEncode( geojson ), tagArgs ) end if mw.title.getCurrentTitle().namespace == 0 and mi.usePropertyCategs then result = result .. wu.getCategories( mi.properties ) .. mu.getCategories( mi.properties ) end return result end function ms.show( frame ) local args, errors = mu.checkParams( frame:getParent().args, mp, 'Mapshape', mi.msUnknown ) args.type = mu.getParameter( args.type, 'geomask' ) args.group = mu.checkGroup( args.group ) if args.wikidata == '' and args.page == '' then args.wikidata = mw.wikibase.getEntityIdForCurrentPage() or '' if args.wikidata == '' then return mi.msMissing .. errors end elseif args.wikidata ~= '' and args.page ~= '' then return mi.msTogether .. errors end return getShape( args, frame ) .. errors end return ms