Module:TestModule: Difference between revisions
Appearance
AdamZachar (talk | contribs) No edit summary |
AdamZachar (talk | contribs) No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 101: | Line 101: | ||
source = "CaseData", | source = "CaseData", | ||
query = "topicsByCase", | query = "topicsByCase", | ||
data = " | data = "topicName=topic_name", | ||
parameters = frame.args. | parameters = frame.args.caseTitle | ||
} | } | ||
if topics == nil then return | if topics == nil then return output end | ||
output = output .. "<ul>" | output = output .. "<ul>" | ||
for i, topic in ipairs(topics) do | for i, topic in ipairs(topics) do | ||
output = output .. " <li>" .. "[[ | output = output .. " <li>" .. "[[" .. topic.topicName .. "]]" | ||
end | end | ||
Latest revision as of 11:36, 20 June 2025
local p = {}
function funcRecurseLineage(parentTopic)
--Check for children of the parent topic
local output = ""
local topics, errors = mw.ext.externaldata.getExternalData {
source = "CaseData",
query = "childrenTopics", --Note: this query is deprecated in deference to ChildrenTopicsByID, since it relied on topics.topic_parentname
data = "topicName=topic_name",
parameters = parentTopic
}
--If there are children topics, start a new layer of the list
if topics ~= nil then
output = output .. "<ul>"
--For each child topic, add them as a list item, and check for their children
for i, topic in ipairs(topics) do
output = output .. " <li>" .. "[[" .. topic.topicName .. "]]"
output = output .. funcRecurseLineage(topic.topicName)
end
output = output .. "</ul>"
end
return output
end
function p.recurseLineage( frame )
return funcRecurseLineage(frame.args.parentTopic) --Note: this query is deprecated in deference to ChildrenTopicsByID
end
function funcRecurseLineageNumber(parentID)
--Check for children of the parent topic
local output = ""
local topics, errors = mw.ext.externaldata.getExternalData {
source = "CaseData",
query = "childrenTopicsByID",
data = "topicName=topic_name, topicID=topic_id",
parameters = parentID
}
--If there are children topics, start a new layer of the list
if topics ~= nil then
output = output .. "<ul>"
--For each child topic, add them as a list item, and check for their children
for i, topic in ipairs(topics) do
output = output .. " <li>" .. "[[" .. topic.topicName .. "]]"
output = output .. funcRecurseLineageNumber(topic.topicID)
end
output = output .. "</ul>"
end
return output
end
function p.recurseLineageByID( frame )
local topics, errors = mw.ext.externaldata.getExternalData {
source = "CaseData",
query = "childrenTopicsByID",
data = "topicName=topic_name, topicID=topic_id",
parameters = frame.args.parentID
}
if topics == nil then return "N/A" end
return funcRecurseLineageNumber(frame.args.parentID)
end
function p.topicIDByName( frame )
local topics, errors = mw.ext.externaldata.getExternalData {
source = "CaseData",
query = "oneTopic",
data = "topicID=topic_id",
parameters = frame.args.topicName
}
if topics == nil then return 0 end
return topics.topicID
end
function p.topicListByCaseName( frame )
local output = ""
local topics, errors = mw.ext.externaldata.getExternalData {
source = "CaseData",
query = "topicsByCase",
data = "topicName=topic_name",
parameters = frame.args.caseTitle
}
if topics == nil then return output end
output = output .. "<ul>"
for i, topic in ipairs(topics) do
output = output .. " <li>" .. "[[" .. topic.topicName .. "]]"
end
output = output .. "</ul>"
return output
end
return p