Modul:Wb: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
imported>Juergen.Kett |
imported>Juergen.Kett |
||
| Zeile 4: | Zeile 4: | ||
p.entity = nil; | p.entity = nil; | ||
p.claims = nil; | p.claims = nil; | ||
| + | |||
| + | local statementsTemplate = '\n<div class="statements">$var\n</div>' | ||
| + | local statementTemplate = '\n<div class="statement">$var\n</div>' | ||
| + | local valuesTemplate = '\n<div class="values">$var\n</div>' | ||
| + | local valueTemplate = '\n<div class="value">$var</div>' | ||
| + | local propertyTemplate = '\n<div class="property">$var</div>' | ||
| + | local qStatementsTemplate = '<div class="qstatements">$var</div>' | ||
| + | local qStatementTemplate = '<div class="qstatement">$var</div>' | ||
| + | local qValuesTemplate = '<div class="qvalues">$var</div>' | ||
| + | local qValueTemplate = '<div class="qvalue">$var</div>' | ||
function p.getFormatedStatements(frame) | function p.getFormatedStatements(frame) | ||
| Zeile 26: | Zeile 36: | ||
local values = "" | local values = "" | ||
for key, valueSnak in pairs(valueSnaks) do | for key, valueSnak in pairs(valueSnaks) do | ||
| − | + | qualifiers = p.getFormatedQualifiers(valueSnak["qualifiers"]) | |
| − | values = values .. p.renderValue(valueSnak["mainsnak"]) | + | values = values .. p.renderValue(valueSnak["mainsnak"], qualifiers) |
end | end | ||
| − | ret = ret .. p.renderStatement(propId, values) | + | ret = ret .. p.renderStatement(propId, values, statementTemplate) |
end | end | ||
| + | ret = string.gsub(statementsTemplate, "$var", ret) | ||
return ret | return ret | ||
end | end | ||
function p.getFormatedQualifiers(props) | function p.getFormatedQualifiers(props) | ||
| − | if not props then return | + | if not props then return nil end |
local ret = "" | local ret = "" | ||
| Zeile 41: | Zeile 52: | ||
local values = "" | local values = "" | ||
for key, valueSnak in pairs(valueSnaks) do | for key, valueSnak in pairs(valueSnaks) do | ||
| − | values = values .. p. | + | values = values .. p.renderQValue(valueSnak) |
end | end | ||
| − | ret = ret .. p.renderStatement(propId, values) | + | ret = ret .. p.renderStatement(propId, values, qStatementTemplate) |
end | end | ||
| − | |||
return ret | return ret | ||
end | end | ||
| − | function p.renderStatement(propId, values) | + | function p.renderStatement(propId, values, template) |
local propLabel = mw.wikibase.getLabel(propId) | local propLabel = mw.wikibase.getLabel(propId) | ||
if not propLabel then propLabel = "" end | if not propLabel then propLabel = "" end | ||
| − | return | + | local prop = string.gsub(propertyTemplate, "$var", propLabel) |
| + | return string.gsub(template, "$var", prop .. values) | ||
| + | end | ||
| + | |||
| + | function p.renderQValue(valueSnak) | ||
| + | local value = mw.wikibase.renderSnak(valueSnak) | ||
| + | return string.gsub(qValueTemplate, "$var", value) | ||
end | end | ||
| − | function p.renderValue(valueSnak) | + | function p.renderValue(valueSnak, qualifiers) |
| + | if not qualifiers then | ||
| + | qualifiers = "" | ||
| + | else | ||
| + | qualifiers = string.gsub(qStatementsTemplate, "$var", qualifiers) | ||
| + | end | ||
local value = mw.wikibase.renderSnak(valueSnak) | local value = mw.wikibase.renderSnak(valueSnak) | ||
| − | return value .. | + | return string.gsub(valueTemplate, "$var", value .. qualifiers) |
end | end | ||
Version vom 30. Mai 2020, 22:40 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Wb/Doku erstellt werden
local p = {};
p.id = nil;
p.entity = nil;
p.claims = nil;
local statementsTemplate = '\n<div class="statements">$var\n</div>'
local statementTemplate = '\n<div class="statement">$var\n</div>'
local valuesTemplate = '\n<div class="values">$var\n</div>'
local valueTemplate = '\n<div class="value">$var</div>'
local propertyTemplate = '\n<div class="property">$var</div>'
local qStatementsTemplate = '<div class="qstatements">$var</div>'
local qStatementTemplate = '<div class="qstatement">$var</div>'
local qValuesTemplate = '<div class="qvalues">$var</div>'
local qValueTemplate = '<div class="qvalue">$var</div>'
function p.getFormatedStatements(frame)
id = frame.args.id
return p._getFormatedStatements(id)
end
function p._getFormatedStatements(id)
local ret = ""
local qualifiers = ""
local prop = ""
local value = ""
p.entity = mw.wikibase.getEntity(id)
if not p.entity then
return "no entity with id found: " .. id
end
p.claims = p.entity["claims"]
for propId, valueSnaks in pairs(p.claims) do
local values = ""
for key, valueSnak in pairs(valueSnaks) do
qualifiers = p.getFormatedQualifiers(valueSnak["qualifiers"])
values = values .. p.renderValue(valueSnak["mainsnak"], qualifiers)
end
ret = ret .. p.renderStatement(propId, values, statementTemplate)
end
ret = string.gsub(statementsTemplate, "$var", ret)
return ret
end
function p.getFormatedQualifiers(props)
if not props then return nil end
local ret = ""
for propId, valueSnaks in pairs(props) do
local values = ""
for key, valueSnak in pairs(valueSnaks) do
values = values .. p.renderQValue(valueSnak)
end
ret = ret .. p.renderStatement(propId, values, qStatementTemplate)
end
return ret
end
function p.renderStatement(propId, values, template)
local propLabel = mw.wikibase.getLabel(propId)
if not propLabel then propLabel = "" end
local prop = string.gsub(propertyTemplate, "$var", propLabel)
return string.gsub(template, "$var", prop .. values)
end
function p.renderQValue(valueSnak)
local value = mw.wikibase.renderSnak(valueSnak)
return string.gsub(qValueTemplate, "$var", value)
end
function p.renderValue(valueSnak, qualifiers)
if not qualifiers then
qualifiers = ""
else
qualifiers = string.gsub(qStatementsTemplate, "$var", qualifiers)
end
local value = mw.wikibase.renderSnak(valueSnak)
return string.gsub(valueTemplate, "$var", value .. qualifiers)
end
p.getLabel = function (frame)
local id = frame.args.id
if id then
return mw.wikibase.getLabel(id)
end
return ""
end
-- wird nicht mehr benötigt
function p.nextStatement()
p.property = p.keys[p.index]
mw.log(p.property)
if p.property then
claim = p.claims[p.property]
snak = claim[1]["mainsnak"]
p.value = mw.wikibase.renderSnak(snak)
p.index = p.index + 1
end
end
-- wird nicht mehr benötigt
function p.initEntity(qid)
p.entity = mw.wikibase.getEntity(qid)
p.claims = p.entity["claims"]
-- p.i, p.v = next(p.claims, nil)
-- mw.logObject(p.entity)
p.keys = {}
p.index=1
local i = 1
for k in pairs(p.claims) do
p.keys[i]=k
i = i + 1
end
mw.logObject(p.keys)
end
return p