مواد ڏانھن هلو

ماڊيول:Ns has subpages

کليل ڄاڻ چيڪلي، وڪيپيڊيا مان

هي ماڊيول اهو ڳولي ٿو ته ڏنل نيم-جاءِ وٽ ذيلي صفحا ٿي سگهن ٿا يا نه۔

استعمال

[سنواريو]

وڪي متن مان

[سنواريو]

وڪي متن مان هي ماڊيول {{ns has subpages}} سانچي وسيلي استعمال ٿيڻ گهرجي۔ دستاويزن لاءِ مهرباني ڪري سانچي جو صفحو ڏسو۔

لوا مان

[سنواريو]

عام طور لوا ماڊيولن کي هن ماڊيول بدران mw.site.namespaces[namespace].hasSubpages استعمال ڪرڻ گهرجي۔ پر جيڪڏهن توهان وٽ ڪو مناسب سبب هجي، ته ان تائين هن ريت رسائي حاصل ڪري سگهجي ٿي:

ماڊيول لوڊ ڪريو:

local mNsHasSubpages = require('Module:Ns has subpages')

ذيلي صفحي بابت ڄاڻ ._main فنڪشن سان حاصل ڪري سگهجي ٿي:

mNsHasSubpages._main(ns, frame)
  • ns نيم-جاءِ جو نالو، انگ، يا ڪنهن صفحي جو نالو آهي۔ بنيادي طور اهو موجوده نيم-جاءِ هوندو آهي۔
  • frame هڪ frame object آهي، جنهن وسيلي ضروري هجي ته frame:callParserFunction سڏي سگهجي۔ هي اختياري آهي، ۽ اندروني استعمال لاءِ رکيل آهي۔



-- This module implements [[Template:Ns has subpages]].
-- While the template is fairly simple, this information is made available to
-- Lua directly, so using a module means that we don't have to update the
-- template as new namespaces are added.

local p = {}

function p._main(ns, frame)
	-- Get the current namespace if we were not passed one.
	if not ns then
		ns = mw.title.getCurrentTitle().namespace
	end

	-- Look up the namespace table from mw.site.namespaces. This should work
	-- for a majority of cases.
	local nsTable = mw.site.namespaces[ns]

	-- Try using string matching to get the namespace from page names.
	-- Do a quick and dirty bad title check to try and make sure we do the same
	-- thing as {{NAMESPACE}} in most cases.
	if not nsTable and type(ns) == 'string' and not ns:find('[<>|%[%]{}]') then
		local nsStripped = ns:gsub('^[_%s]*:', '')
		nsStripped = nsStripped:gsub(':.*$', '')
		nsTable = mw.site.namespaces[nsStripped]
	end

	-- If we still have no match then try the {{NAMESPACE}} parser function,
	-- which should catch the remainder of cases. Don't use a mw.title object,
	-- as this would increment the expensive function count for each new page
	-- tested.
	if not nsTable then
		frame = frame or mw.getCurrentFrame()
		local nsProcessed = frame:callParserFunction('NAMESPACE', ns)
		nsTable = nsProcessed and mw.site.namespaces[nsProcessed]
	end
	
	return nsTable and nsTable.hasSubpages
end

function p.main(frame)
	local ns = frame:getParent().args[1]
	if ns then
		ns = ns:match('^%s*(.-)%s*$') -- trim whitespace
		ns = tonumber(ns) or ns
	end
	local hasSubpages = p._main(ns, frame)
	return hasSubpages and 'yes' or ''
end

return p