Modul:Wb: Unterschied zwischen den Versionen

Aus STA Dokumentationsplattform
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"])
+
         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 "" end
+
     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.renderValue(valueSnak)
+
           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 propLabel .. ": " .. values .. "\n"
+
  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 .. "\n"
+
   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