Mòdul:Wikidades/proves: diferència entre les revisions

Contingut suprimit Contingut afegit
tag ref amb name
getValueOfParentClaim amb llista, cas Pid/Pid en multiqualificador
Línia 862:
return nil, nil, error
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local sortkey = {}
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
Linha 875 ⟶ 874:
local function getValueOfParentClaim(claim, qualifierId, parameters)
local qids = mw.text.split(qualifierId, '/', true)
local valuerawvalue, parent_claimssortkey, valuevalueraw = {}, sortkey{}, {}
local parent_raw
if qids[1] == parameters.property then
valuerawparent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang})
else
valuerawparent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'})
end
if string.sub(valuerawparent_raw or '', 1, 1) == "Q" then -- protection for 'no value'
local parent_qids = mw.text.split(parent_raw, '/', true)
parent_claims = mw.wikibase.getBestStatements(valueraw, qids[2])
for idx, p_qid in ipairs(parent_qids) do
if parent_claims[1] ~= nil then
local parent_claims = mw.wikibase.getBestStatements(valuerawp_qid, qids[2])
value, sortkey, _ = getValueOfClaim(parent_claims[1], nil, parameters)
if parent_claims[1] ~= nil then
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
valueraw value[idx], _sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
-- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity
value valueraw[idx], sortkey_, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang})
end
end
end
return mw.text.listToText(value, parameters.qseparator, parameters.qconjunction), sortkey[1], valueraw[1]
end