Module:Transclusion count
From Historical Hastings
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
Fetches usage data for highly-trandscluded templates. Uses bot-updated values from subpages of Module:Transclusion_count/data/ when available.
Usage
{{#invoke:Transclusion count|fetch|number of transclusions|use + notation|all-pages=|demo=}}
number of transclusions
: is a static number of times the template has been transcluded, to use when values cannot be read from the database. This value will be ignored if transclusion data is available for the current page.demo=Template_name
: will use the transclusion count for the template at Template:Template_name instead of detecting what template it is being used on. Capitalization must exactly match the value used in Special:PrefixIndex/Module:Transclusion_count/data/.
local p = {} function p.fetch(frame) local template = nil local return_value = nil -- Use demo parameter if it exists, otherswise use current template name if frame.args["demo"] and frame.args["demo"] ~= "" then template = frame.args["demo"] elseif mw.title.getCurrentTitle().namespace == 10 then -- Template namespace only template = mw.title.getCurrentTitle().text end -- If in template namespace, look up count in /data if template ~= nil and mw.title.new(template, "Template").namespace == 10 then template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end local index = mw.ustring.upper(mw.ustring.sub(template,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 -- 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,]+') return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R')) end return return_value end return p