Difference between revisions of "Module:HonorTabs"

From Pathfinder Wiki
Line 11: Line 11:
 
function p.createAnswerTab( frame )
 
function p.createAnswerTab( frame )
 
if frame.args.answerVariants then
 
if frame.args.answerVariants then
return "There are answer variants:\n" .. prepareAnswerVariants( frame, frame.args.answerVariants)
+
t_variants = prepareAnswerVariants( frame, frame.args.answerVariants)
 +
 +
result_string = ""
 +
for key, value in pairs(t_variants) do
 +
result_string = result_string .. "top level" .. "\n"
 +
for subkey, val in pairs(value) do
 +
result_string = result_string .. "* " .. subkey .. " -- " .. val['str'] .. " -- " .. val['translation'] .. "\n"
 +
end
 +
end
 +
return result_string
 
else
 
else
 
return "There aren't any answer variants!"
 
return "There aren't any answer variants!"
Line 20: Line 29:
 
function prepareAnswerVariants(frame, variants)
 
function prepareAnswerVariants(frame, variants)
 
-- get the variants
 
-- get the variants
t_variants = explode(";;", variants)
+
local t_variants = explode(";;", variants)
 
 
 
-- get the subvariants & translate it
 
-- get the subvariants & translate it
Line 32: Line 41:
 
end
 
end
 
end
 
end
+
return t_variants
result_string = ""
 
for key, value in pairs(t_variants) do
 
result_string = result_string .. "top level" .. "\n"
 
for subkey, val in pairs(value) do
 
result_string = result_string .. "* " .. subkey .. " -- " .. val['str'] .. " -- " .. val['translation'] .. "\n"
 
--[[  ]]
 
end
 
end
 
 
return result_string
 
 
end
 
end
  

Revision as of 22:25, 27 April 2021

Documentation for this module may be created at Module:HonorTabs/doc

local p = {}

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

function p.getLangSuffix( frame )
	return frame:expandTemplate{ title = 'GetLangSuffix' }
end

function p.createAnswerTab( frame )
	if frame.args.answerVariants then
		t_variants = prepareAnswerVariants( frame, frame.args.answerVariants)
	
		result_string = ""
		for key, value in pairs(t_variants) do
			result_string = result_string .. "top level" .. "\n"
			for subkey, val in pairs(value) do
				result_string = result_string .. "* " .. subkey .. " -- " .. val['str'] .. " -- " .. val['translation'] .. "\n"
			end
		end
		return result_string
	else
		return "There aren't any answer variants!"
	end
	
end

function prepareAnswerVariants(frame, variants)
	-- get the variants
	local t_variants = explode(";;", variants)
	
	-- get the subvariants & translate it
	for key, variant in pairs(t_variants) do
		t_variants[key] = explode(";", variant)
		for subkey, subVariant in pairs(t_variants[key]) do
			t_variants[key][subkey] = {
				str=subVariant,
				translation=frame:expandTemplate{title = 'Localize', args = {subVariant,'Answer Variants'}}
			}
		end
	end
	return t_variants
end

-- explode(seperator, string)
function explode(seperator,str)
   local t, ll
   t={}
   ll=0
   if(#p == 1) then
      return {str}
   end
   while true do
      l = string.find(str, seperator, ll, true) -- find the next d in the string
      if l ~= nil then -- if "not not" found then..
         table.insert(t, string.sub(str,ll,l-1)) -- Save it in our array.
         ll = l + string.len(seperator) -- save just after where we found it for searching next time.
      else
         table.insert(t, string.sub(str,ll)) -- Save what's left in our array.
         break -- Break at end, as it should be, according to the lua manual.
      end
   end
   return t
end

return p