Wikipedia fjwiki https://fj.wikipedia.org/wiki/Tabana_levu MediaWiki 1.47.0-wmf.1 first-letter Media Special Talk User User talk Wikipedia Wikipedia talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk TimedText TimedText talk Module Module talk Event Event talk Module:Databox 828 9435 38799 34390 2026-05-08T13:06:09Z Danny Benjafield (WMDE) 9117 + new parameter to choose P18 image [[phab:T400318]], + new parameter to hide select properties [[phab:T400319]], add "From Wikidata" link & flag to databox [[phab:T400322]] 38799 Scribunto text/plain -- It is supposed to work for any language. -- Properties excluded for all Databoxes in Fijian Wikipedia local site_excluded_properties = { 'P360', --is a list of 'P4224', --category contains 'P935', -- Commons gallery 'P1472', -- Commons Creator page 'P1612', -- Commons Institution page 'P373', -- Commons category 'P3722', -- Commons maps category 'P1151', -- topic's main Wikimedia portal 'P1424', -- topic's main template 'P910', -- topic's main category 'P1200', -- bodies of water basin category 'P1792', -- category of associated people 'P1464', -- category for people born here 'P1465', -- category for people who died here 'P1791', -- category of people buried here 'P1740', -- category for films shot at this location 'P2033', -- Category for pictures taken with camera 'P2517', -- category for recipients of this award 'P4195', -- category for employees of the organization 'P1754', -- category related to list 'P301', -- category's main topic 'P971', -- category combines topics 'P3876', -- category for alumni of educational institution 'P1753', -- list related to category 'P3921', -- Wikidata SPARQL query equivalent 'P1204', -- Wikimedia portal's main topic 'P1423', -- template's main topic 'P1709', -- equivalent class 'P3950', -- narrower external class 'P2888', -- exact match 'P1382', -- coincident with 'P527', -- has part 'P2670', -- has parts of the class 'P3113', -- does not have part 'P2737', -- union of 'P2738', -- disjoint union of 'P2445', -- metasubclass of 'P1963', -- properties for this type 'P3176', -- uses property 'P1889', -- different from 'P460', -- said to be the same as 'P2959', -- permanent duplicated item 'P2860', -- cites 'P5125', -- wikimedia outline 'P5008', -- on focus list of Wikimedia project 'P2559', -- Wikidata usage instructions 'P1343', -- described by source 'P972', -- catalogu 'P1282', -- OSM tag or key 'P4839', -- Wolfram Language entity code 'P6104', -- Maintained by Wikiproject 'P5996' -- Category for films in this language } function valuesToKeys(array) local result = {} for _, v in pairs(array) do result[v] = true end return result end local p = {} function p.databox(frame) local args = frame:getParent().args local argsLocal = frame.args local itemId = nil if args.item then itemId = args.item end local argsLocal = frame.args local useImage = nil if argsLocal.useImage then useImage = argsLocal["useImage"] end -- excludeProperties is a local parameter to exclude given properties for a Databox on a specific page local excludeProperties = {} if argsLocal.excludeProperties then for item in string.gmatch(argsLocal.excludeProperties, "[^,]+") do table.insert(excludeProperties, item) end end local lang = mw.language.getContentLanguage() local item = mw.wikibase.getEntity(itemId) if item == nil then mw.addWarning("Wikidata item not found") return "" end local databoxRoot = mw.html.create('div') :addClass('infobox') :css({ float = 'right', border = '1px solid #aaa', ['max-width'] = '300px', padding = '0 0.4em', margin = '0 0 0.4em 0.4em', }) --Title databoxRoot:tag('div') :css({ ['text-align'] = 'center', ['background-color'] = '#f5f5f5', padding = '0.5em 0', margin = '0.5em 0', ['font-size'] = '120%', ['font-weight'] = 'bold', }) :wikitext(item:getLabel() or mw.title.getCurrentTitle().text) --Image local databoxImage = nil if useImage and useImage ~= "" then local allWikidataImages = item:getAllStatements('P18') if #allWikidataImages >= 1 then for _, image in ipairs( allWikidataImages ) do if image.mainsnak.datavalue.value == useImage then databoxImage = useImage break end end end end if databoxImage == nil then local bestWikidataImages = item:getBestStatements('P18') if #bestWikidataImages >= 1 then databoxImage = bestWikidataImages[1].mainsnak.datavalue.value end end if databoxImage then databoxRoot :tag('div') :wikitext('[[File:' .. databoxImage .. '|frameless|300px]]') end --Table local dataTable = databoxRoot :tag('table') :css({ ['text-align'] = 'left', ['font-size'] = '90%', ['word-break'] = 'break-word', ['width'] = '100%', ['table-layout'] = 'fixed', }) dataTable:tag('caption') :addClass('notheme') :css({ ['background-color'] = '#f5f5f5', ['font-weight'] = 'bold', ['margin-top'] = '0.2em', }) :wikitext(item:formatStatements('P31').value) local properties = mw.wikibase.orderProperties(item:getProperties()) local site_excluded_properties_hash = valuesToKeys(site_excluded_properties) site_excluded_properties_hash['P31'] = true --Special property local excludeProperties_hash = valuesToKeys(excludeProperties) local edit_message = mw.message.new('vector-view-edit'):plain() for _, property in pairs(properties) do local datatype = item.claims[property][1].mainsnak.datatype local valueCount = #item:getBestStatements(property) if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not site_excluded_properties_hash[property] and not excludeProperties_hash[property] and valueCount > 0 and valueCount <= 5 then local propertyValue = item:formatStatements(property) dataTable:tag('tr') :tag('th') :attr('scope', 'row') :wikitext(lang:ucfirst(propertyValue.label)):done() :tag('td') :wikitext(frame:preprocess(propertyValue.value)) :wikitext('&nbsp;[[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]') end end --Map local coordinates_statements = item:getBestStatements('P625') if #coordinates_statements >= 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then --We build the call to mapframe local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude local geojson = { type = 'Feature', geometry = { type = 'Point', coordinates = { longitude, latitude } }, properties = { title = item:getLabel() or mw.title.getCurrentTitle().text, ['marker-symbol'] = 'marker', ['marker-color'] = '#224422', } } databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), { height = 300, width = 300, frameless = 'frameless', align = 'center', latitude = latitude, longitude = longitude, zoom = zoom })) end --Wikidata Link databoxRoot:tag('div') :css({ ['display'] = 'flex', padding = '0.3em 0', ['width'] = '100%', ['font-size'] = '90%', }) :addClass('databox-from-wikidata-link') :wikitext('&nbsp;[[File:Wikidata-logo.svg|22px|class=noviewer skin-invert|link=https://www.wikidata.org/wiki/' .. item.id .. ']]') :tag('div') :css({ margin = '0.05em 0 0 0', }) :wikitext('&nbsp;[[d:' .. item.id .. '|From Wikidata]]') return tostring(databoxRoot) end return p csdjaeonua8fxl3o7muocfvnwa9vrtf Template:Databox 10 9436 38800 34378 2026-05-08T13:07:08Z Danny Benjafield (WMDE) 9117 Create new parameters to choose a preferred image [[phab:T400318]], and select properties to hide [[phab:T400319]] 38800 wikitext text/x-wiki {{#invoke:Databox|databox|useImage={{{useImage|}}}|excludeProperties={{{excludeProperties|}}}}} <noinclude>{{Documentation}}</noinclude> 4e8lawmro6frtxxs4shfjg1lrwkypvp