Module:Banner shell
Appearance
![]() | 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. |
![]() | මෙම මොඩියුලය මතු දැක්වෙන මොඩියුල මත යැපෙයි: |
Usage
[සංස්කරණය]This module implements Template:WikiProject banner shell. Please refer to that template's documentation.
local p = {}
p.main = function(frame)
local yesno = require('Module:Yesno')
local classmask = require('Module:Class mask')
local args = frame:getParent().args
local class = classmask._main{args.class or ''}
local pagetype = require('Module:Pagetype')._main{class=class}
local out = ''
local ofinterest = function(collapsed)
local wikiprojects = '[[Wikipedia:WikiProject|WikiProjects]]'
local text = ' is of interest to '
if yesno(collapsed) then
text = text .. 'multiple ' .. wikiprojects .. '.'
else
text = text .. 'the following ' .. wikiprojects .. ':'
end
return text
end
if yesno(args.blp) or yesno(args.living) then
out = out .. frame:expandTemplate{title = 'BLP'}
elseif yesno(args.blpo) then
out = out .. frame:expandTemplate{title = 'BLP others'}
end
if yesno(args.activepol) then
out = out .. frame:expandTemplate{title = 'Active politician'}
end
local bhargs = {
templatestyles = 'WikiProject banner shell/styles.css',
collapsed = args.collapsed,
size = '32',
class = 'wpbs',
image = 'WikiProject Council with transparent background.svg',
alt = 'WikiProject Council',
image_link = 'Wikipedia:WikiProject Council'
}
local globalclass = false
if class == '' then -- check if class parameters is defined by any project banner
local articleclass = classmask.readarticleclass{ignore_blank=true, only_subtemplates=true}
if articleclass == '' then -- no class parameters are defined by any project banner, so globally unassessed
globalclass = true
end
else -- global class defined, so display it
globalclass = true
end
if globalclass then
local showclass = require('Module:Class')._class
local header = showclass{class, image='yes'}
header = header .. '<td class="banner-shell-header" style="text-align: left; font-weight: normal;">This '
if args.category == 'no' then
header = header .. 'article '
else
header = header .. pagetype .. ' '
end
if class == '' then
header = header .. 'has not yet been rated'
else
header = header .. 'is rated <span style="font-weight:bold;">' .. class .. '-class</span>'
end
header = header .. " on Wikipedia's [[Wikipedia:Content assessment|content assessment]] scale.<br>"
if args[1] and args[1]~='' then
header = header .. 'It' .. ofinterest(args.collapsed)
else
if not args.category or args.category=='' then
if mw.title.getCurrentTitle().isTalkPage then
header = header .. '[[Category:' .. (class=='' and 'Unassessed' or (class .. '-Class')) .. ' articles]]'
end
end
end
header = header .. '</td>'
bhargs.header = header
end
if args.header then
bhargs.text = args.header
else
bhargs.text = 'This ' .. pagetype .. ofinterest(args.collapsed)
end
bhargs[1] = args[1] or ''
out = out .. frame:expandTemplate{title='Banner holder', args=bhargs}
if not args[1] or args[1] == '' then
out = out .. '[[Category:Pages using WikiProject banner shell without banner templates]]' --talkother
end
if args.listas and args.listas ~= '' then
frame:preprocess('{{DEFAULTSORT:' .. args.listas .. '}}')
end
return out
end
return p