Modul:Wb: Unterschied zwischen den Versionen

Aus STA Dokumentationsplattform
Zur Navigation springen Zur Suche springen
imported>Juergen.Kett
imported>Juergen.Kett
Zeile 20: Zeile 20:
 
     return "init Entity"
 
     return "init Entity"
 
   end
 
   end
 +
  if not p.entity then
 +
    return "Entity still nil"
 +
  end
 +
 
   p.nextStatement()
 
   p.nextStatement()
 
   return p.value
 
   return p.value

Version vom 29. Mai 2020, 11:03 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;
p.keys = {};
p.index = 1;

p.property = nil;
p.value = nil;
p.qualifier = nil;

p.getNextStatement = function(frame)
  p.id = frame.args.id
  if not p.id then 
     return ""
  end
  if not p.entity then
    p.initEntity(p.id)
    return "init Entity"
  end
  if not p.entity then 
    return "Entity still nil"
  end

  p.nextStatement()
  return p.value
end

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

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)
    mw.logObject(p.value)
    p.index = p.index + 1
  end
end

p.getLabel = function (frame)
 local pid = frame.args.pid
 local label = mw.wikibase.getLabel(pid)
 return label
end

return p