更改

添加1,008字节 、 2020年12月31日 (四) 17:15
无编辑摘要
第40行: 第40行:  
                 results[t] = true
 
                 results[t] = true
 
             end
 
             end
 +
        end
 +
    end
 +
    return results
 +
end
 +
 +
function p.query_children(name, anchor_property, parent_property)
 +
    local results = {}
 +
    local anchor_query = "[["..parent_property.."::"..name.."]]"
 +
    local property_query = "[[" .. anchor_property .. "::+]]"
 +
    local content_query = "?"..query_property
 +
    local query = anchor_query .. property_query .. "|" ..content_query .. "|format=plainlist"
 +
    local res = mw.smw.getQueryResult(query)
 +
    for j, r in ipairs(res.results) do
 +
        for k, t in ipairs(r.printouts[query_property]) do
 +
            results[t] = true
 
         end
 
         end
 
     end
 
     end
第57行: 第72行:  
     local name = frame.args.name
 
     local name = frame.args.name
 
     local parents = mw.text.split(frame.args.parents, ",")
 
     local parents = mw.text.split(frame.args.parents, ",")
 +
    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 children_title = frame.args.children_title
    
     local root = mw.html.create("div")
 
     local root = mw.html.create("div")
第65行: 第82行:  
     _create_list(root, parent_title, parents)
 
     _create_list(root, parent_title, parents)
 
     mw.smw.set({[anchor_property]=name})
 
     mw.smw.set({[anchor_property]=name})
 +
    for i, parent in ipairs(parents) do
 +
        mw.smw.set({[parent_property]=parent})
 +
    end
    
     for i, prop in ipairs(properties) do
 
     for i, prop in ipairs(properties) do
第78行: 第98行:  
             mw.smw.set({[prop]=k})
 
             mw.smw.set({[prop]=k})
 
         end
 
         end
 +
    end
 +
 +
    if children_title then
 +
        local children = p.query_children(name, anchor_property, parent_property)
 +
        local children_list = _keys_to_table(children)
 +
        _create_list(root, children_title, children_list)
 
     end
 
     end