第45行:
第45行:
end
end
return results
return results
+
end
+
+
function p.query_reversed_inherited_property(name, anchor_property, query_property)
+
return p.query_inherited_property(query_property, anchor_property, parent_list, {name})
end
end
第57行:
第61行:
for k, v in ipairs(list) do
for k, v in ipairs(list) do
ul:tag("li"):wikitext("[["..v.."]]")
ul:tag("li"):wikitext("[["..v.."]]")
+
end
+
end
+
+
function _split_or_empty(value)
+
if value and #value > 0 then
+
return mw.text.split(value, ",")
+
else
+
return {}
end
end
end
end
第62行:
第74行:
function p.inherited_lists(frame)
function p.inherited_lists(frame)
local name = frame.args.name
local name = frame.args.name
−
local parents = (frame.args.parents and #frame.args.parents > 0) and mw.text.split(frame.args.parents, ",") or {}
+
local parents = _split_or_empty(frame.args.parents)
local parent_property = frame.args.parent_property
local parent_property = frame.args.parent_property
local parent_title = frame.args.parent_title
local parent_title = frame.args.parent_title
local anchor_property = frame.args.anchor_property
local anchor_property = frame.args.anchor_property
local properties = mw.text.split(frame.args.properties, ",")
local properties = mw.text.split(frame.args.properties, ",")
+
local reversed_properties = mw.text.split(frame.args.reversed_properties, ",")
local children_title = frame.args.children_title
local children_title = frame.args.children_title
第79行:
第92行:
for i, prop in ipairs(properties) do
for i, prop in ipairs(properties) do
local title = frame.args[prop.."_title"]
local title = frame.args[prop.."_title"]
−
local values_str = frame.args[prop.."_values"]
+
local values = _split_or_empty(frame.args[prop.."_values"])
−
local values = (values_str and #values_str > 0) and mw.text.split(values_str, ",") or {}
local values_set = _table_to_keys(values)
local values_set = _table_to_keys(values)
local inherited_values = p.query_inherited_property(anchor_property, prop, parents)
local inherited_values = p.query_inherited_property(anchor_property, prop, parents)
−
mw.logObject(inherited_values)
local final_values = _merge_keys(values_set, inherited_values)
local final_values = _merge_keys(values_set, inherited_values)
+
local final_list = _keys_to_table(final_values)
+
_create_list(root, title, final_list)
+
for i, k in ipairs(final_list) do
+
mw.smw.set({[prop]=k})
+
end
+
end
+
+
for i, prop in ipairs(reversed_properties) do
+
local title = frame.args[prop.."_reversed"]
+
local rev_prop = frame.args[prop.."_property"]
+
local final_values = p.query_reversed_inherited_property(name, anchor_property, rev_prop)
local final_list = _keys_to_table(final_values)
local final_list = _keys_to_table(final_values)
_create_list(root, title, final_list)
_create_list(root, title, final_list)