Module:TestModule: Difference between revisions

AdamZachar (talk | contribs)
No edit summary
AdamZachar (talk | contribs)
No edit summary
 
(119 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {} --p stands for package
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


function p.hello( frame )
    return "Hello, world!"
end
end


function p.externalDataTest( frame )
 
    local data, errors = mw.ext.externaldata.getWebData {
function p.recurseLineageByID( frame )
    url = 'https://discoursedb.org/wiki/Special:GetData/Fruits_data'
 
  , data = {name = 'Name', color = 'Color', shape = 'Shape'}
local topics, errors = mw.ext.externaldata.getExternalData {
  , format = 'CSV with header'
  source = "CaseData",
    }
  query = "childrenTopicsByID",
    return data[1][1]
  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
end


return p
return p