Difference between revisions of "Module:See also if exists"

From blackwiki
Jump to navigation Jump to search
blackwiki>BrownHairedGirl
(Created page with '--v1.0 local p = {} function doesCatExist(catname) local catPage = mw.title.new( catname, "Category" ) if catPage == nil then return false end if ca...')
 
m (4 revisions imported)
 
(3 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
]]
 
]]
 
local p = {}
 
local p = {}
 
+
local yesno = require("Module:yesno")
function doesCatExist(catname)
 
local catPage = mw.title.new( catname, "Category" )
 
if catPage == nil then
 
return false
 
end
 
if catPage.exists then
 
return true
 
end
 
return false
 
end
 
 
 
  
 
function p.main(frame)
 
function p.main(frame)
local rawcats = {}
+
local rawpages = {}
 
local nvalid = 0
 
local nvalid = 0
for i, v in ipairs(mw.getCurrentFrame():getParent().args) do
+
local namespace = frame.args.ns
 +
for i, v in ipairs(frame:getParent().args) do
 
if (v ~= nil) then
 
if (v ~= nil) then
 
local thisArg = mw.text.trim(v)
 
local thisArg = mw.text.trim(v)
thisArg = mw.ustring.gsub(thisArg, "^[Cc]ategory:%s*", "", 1)
 
 
if (thisArg ~= "") then
 
if (thisArg ~= "") then
if ( doesCatExist(thisArg)) then
+
local title = mw.title.new(thisArg, namespace)
table.insert(rawcats, "Category:" .. thisArg)
+
if title ~= nil and title.exists then
 +
table.insert(rawpages, title.fullText)
 
nvalid = nvalid + 1
 
nvalid = nvalid + 1
 
end
 
end
Line 31: Line 21:
 
end
 
end
 
if (nvalid == 0) then
 
if (nvalid == 0) then
 +
if yesno(frame.args.warning) then
 +
if namespace:sub(-1) == "y" then
 +
namespace = namespace:sub(0, -2) .. "ie"
 +
elseif namespace == nil then
 +
namespace = "page"
 +
end
 +
mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''",
 +
frame:getParent():getTitle(),namespace))
 +
end
 
return ""
 
return ""
 
end
 
end
 
local mLabelledList = require('Module:Labelled list hatnote')
 
local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList._labelledList(rawcats, "See also", "")
+
local pages = mLabelledList._labelledList(rawpages, "See also", "")
 
return pages
 
return pages
 
end
 
end
  
 
return p
 
return p

Latest revision as of 07:14, 28 September 2020

{{Module rating }}

Usage

Used by Template:see also if exists and Template:Category see also if exists.

{{#invoke:See also if exists| main}}


--[[ v1.0
]]
local p = {}
local yesno = require("Module:yesno")

function p.main(frame)
	local rawpages = {}
	local nvalid = 0
	local namespace = frame.args.ns
	for i, v in ipairs(frame:getParent().args) do
		if (v ~= nil) then
			local thisArg = mw.text.trim(v)
			if (thisArg ~= "") then
				local title = mw.title.new(thisArg, namespace)
				if title ~= nil and title.exists then
					table.insert(rawpages, title.fullText)
					nvalid = nvalid + 1
				end
			end
		end
	end
	if (nvalid == 0) then
		if yesno(frame.args.warning) then
			if namespace:sub(-1) == "y" then
				namespace = namespace:sub(0, -2) .. "ie"
			elseif namespace == nil then
				namespace = "page"
			end
			mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''",
				frame:getParent():getTitle(),namespace))
		end
		return ""
	end
	local mLabelledList = require('Module:Labelled list hatnote')
	local pages = mLabelledList._labelledList(rawpages, "See also", "")
	return pages
end

return p