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(' [[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(' [[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(' [[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