×
Create a new article
Write your page title here:
We currently have 1,225 articles on What if Doctor Who Wasn't Axed?. Type your article name above or create one of the articles listed here!



    What if Doctor Who Wasn't Axed?

    Module:Transclusion count: Difference between revisions

    Content added Content deleted
    m (1 revision imported: Templates)
    m (1 revision imported)
     
    (One intermediate revision by one other user not shown)
    Line 8: Line 8:
    local namespace = mw.title.getCurrentTitle().namespace
    local namespace = mw.title.getCurrentTitle().namespace
    if frame.args["demo"] and frame.args["demo"] ~= "" then
    if frame.args["demo"] and frame.args["demo"] ~= "" then
    template = frame.args["demo"]
    template = mw.ustring.gsub(frame.args["demo"],"^[Tt]emplate:","")
    elseif namespace == 10 then -- Template namespace
    elseif namespace == 10 then -- Template namespace
    template = mw.title.getCurrentTitle().text
    template = mw.title.getCurrentTitle().text
    Line 20: Line 20:
    if namespace == 10 or namespace == 828 then
    if namespace == 10 or namespace == 828 then
    template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
    template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
    template = mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end
    local index = mw.ustring.sub(mw.title.new(template).text,1,1)
    local index = mw.ustring.sub(mw.title.new(template).text,1,1)
    local status, data = pcall(function ()
    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, " ", "_")])
    return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
    end)
    if status then
    return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
    end
    end
    end
    end
    end
    Line 35: Line 40:
    return return_value
    return return_value
    end

    -- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
    function p.tabulate(frame)
    local list = {}
    for i = 65, 91 do
    local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
    for name, count in pairs(data) do
    table.insert(list, {mw.title.new(name, "Template").fullText, count})
    end
    end
    table.sort(list, function(a, b)
    return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
    end)
    local lang = mw.getContentLanguage();
    for i = 1, #list do
    list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
    end
    return table.concat(list)
    end
    end



    Latest revision as of 02:13, 3 May 2023

    Documentation for this module may be created at Module:Transclusion count/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 = mw.ustring.gsub(frame.args["demo"],"^[Tt]emplate:","")
    	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
    			template =  mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end
    			local index = mw.ustring.sub(mw.title.new(template).text,1,1)
    			local status, data = pcall(function () 
    				return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) 
    			end)
    			if status then
    				return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
    			end
    		end
    	end
    	
    	-- If database value doesn't exist, use value passed to template
    	if return_value == nil and frame.args[1] ~= nil then
    		local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
    		if arg1 and arg1 ~= '' then
    			return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
    		end
    	end
    	
    	return return_value	
    end
    
    -- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
    function p.tabulate(frame)
    	local list = {}
    	for i = 65, 91 do
    		local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
    		for name, count in pairs(data) do
    			table.insert(list, {mw.title.new(name, "Template").fullText, count})	
    		end
    	end
    	table.sort(list, function(a, b)
    		return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
    	end)
    	local lang = mw.getContentLanguage();
    	for i = 1, #list do
    		list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
    	end
    	return table.concat(list)
    end
    
    return p
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.