Difference between revisions of "Module:Transclusion count/sandbox"

From blackwiki
Jump to navigation Jump to search
m (37 revisions imported)
blackwiki>Izno
(poke)
Line 27: Line 27:
 
 
 
-- If database value doesn't exist, use value passed to template
 
-- If database value doesn't exist, use value passed to template
if return_value == nil and frame.args[1] ~= nil then
+
if return_value == nil and frame.args[1] ~= nil and frame.args[1] ~= 'high' then
local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
+
if frame.args[1] ~= 'high' then
return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
+
local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
frame.args["nobot"] = true
+
return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
 +
-- frame.args["nobot"] = true -- sandboxed by Ahecht for unknown reason
 +
else
 +
return_value = frame.args[1]
 +
end
 
end
 
end
 
 

Revision as of 15:14, 29 September 2020

Documentation for this module may be created at Module:Transclusion count/sandbox/doc

local p = {}

function p.fetch(frame)
	local template = nil
	local return_value = nil

	-- Use demo parameter if it exists, otherswise use current template name
	local namespace = mw.title.getCurrentTitle().namespace
	if frame.args["demo"] and frame.args["demo"] ~= "" then
		template = frame.args["demo"]
	elseif namespace == 10 then -- Template namespace
		template = mw.title.getCurrentTitle().text
	elseif namespace == 828 then -- Module namespace
		template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
	end

	-- If in template or module namespace, look up count in /data
	if template ~= nil then
		namespace = mw.title.new(template, "Template").namespace
		if namespace == 10 or namespace == 828 then
			template =  mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
			local index = mw.ustring.sub(mw.title.new(template).text,1,1)
			local data = mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))
			return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
		end
	end
	
	-- If database value doesn't exist, use value passed to template
	if return_value == nil and frame.args[1] ~= nil and frame.args[1] ~= 'high' then
		if frame.args[1] ~= 'high' then
			local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
			return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
		--	frame.args["nobot"] = true -- sandboxed by Ahecht for unknown reason
		else
			return_value = frame.args[1]
		end
	end
	
	return return_value	
end

return p