Module:TestModule: Difference between revisions

AdamZachar (talk | contribs)
No edit summary
AdamZachar (talk | contribs)
No edit summary
 
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {} --p stands for package
local p = {}


function p.topicLineage( frame )
function funcRecurseLineage(parentTopic)


--Check for children of the parent topic
  local output = ""
  local output = ""
local parentTopic = frame.args.parentTopic
  local topics, errors = mw.ext.externaldata.getExternalData {
  local topics, errors = mw.ext.externaldata.getExternalData {
   source = "CaseData"
   source = "CaseData",
   , query = "childrenTopics"
   query = "childrenTopics", --Note: this query is deprecated in deference to ChildrenTopicsByID, since it relied on topics.topic_parentname
   , data = "topicName=topic_name"
   data = "topicName=topic_name",
   , parameters = parentTopic
   parameters = parentTopic
   }
   }


--If there are children topics, start a new layer of the list
  if topics ~= nil then
  if topics ~= nil then
   output = output .. "<ul>"
   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
   for i, topic in ipairs(topics) do
  output = output .. " <li>" .. "[[" .. topic.topicName .. "]]"
  output = output .. funcRecurseLineage(topic.topicName)
  end
  output = output .. "</ul>"
end


  output = output .. " <li>" .. "[[" .. topic.topicName .. "]]"
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)


  local childTopics, errors3 = mw.ext.externaldata.getExternalData {
--Check for children of the parent topic
    source = "CaseData"
local output = ""
    , query = "childrenTopics"
local topics, errors = mw.ext.externaldata.getExternalData {
    , data = "topicName=topic_name"
  source = "CaseData",
    , parameters = topic.topicName
  query = "childrenTopicsByID",
  }
  data = "topicName=topic_name, topicID=topic_id",
  parameters = parentID
  }


  if childTopics ~= nil then
--If there are children topics, start a new layer of the list
    output = output .. "<ul>"
if topics ~= nil then
    for i, childTopic in ipairs(childTopics) do
  output = output .. "<ul>"
    output = output .. " <li>" .. "[[" .. childTopic.topicName .. "]]"
    end
    output = output .. "</ul>"
  end


  --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
   end
   output = output .. "</ul>"
   output = output .. "</ul>"
  end
  end


Line 46: Line 63:
end
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


return p
return p