Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 

















Module:WikiProject banner/auxiliary






Kurdî
Bahasa Melayu

اردو
 

Edit links
 









Module
Talk
 

















Read
View source
View history
 








Tools
   


Actions  



Read
View source
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 





Permanently protected module

From Wikipedia, the free encyclopedia
 

< Module:WikiProject banner

This module contains extra functions not frequently used by Module:WikiProject banner to support the following features:

require('strict')
local p = {}
local sandbox-- = '/sandbox'
local cfg = mw.loadData('Module:WikiProject banner/config' .. (sandbox or ''))
local yesno = require('Module:Yesno')
local lang = mw.getLanguage(cfg.language)

p.b_checklist = function(args, raw_args, class, demo, assessment_link)
---------------------------
-- B-class checklist ------
---------------------------
local show_checklist = false
local parameters_used = args.b1 or args.b2 or args.b3 or args.b4 or args.b5 or args.b6
if (class=='B' or class=='C' or class=='BL' or class=='CL')-- always displayed on C or B
 or ((class=='Start' or class=='List') and yesno(args.B_DISPLAY_ON_START))-- show on Start/List if option selected
 or ((class=='Start' or class=='Stub') and parameters_used) then-- show on Start or Stub if any parameters used
 show_checklist = true
end
if show_checklist then
 local scale = args.QUALITY_CRITERIA=='custom' and assessment_link and assessment_link..'#'..lang:ucfirst(cfg.quality.name)
  or cfg.b_checklist.default_scale
 local text = string.format(
  cfg.b_checklist.text,
  parameters_used and cfg.b_checklist.checked or cfg.b_checklist.not_checked,
  scale
 )
 local syntax = {}
 local criteria = mw.html.create('ol')
 for i = 1, 6 do
  local b = raw_args['b'..i]
  if b and b~='unused' then -- crtierion in use
   b = cfg.b_checklist.mask[string.lower(b)] or cfg.b_checklist.mask.default
   local image = '[[File:' .. cfg.b_checklist.icon[b] .. '.svg|16x16px|link=|alt=]]'
   local failed_cat = args['B'..i..'_CAT']
   local category = ''
   if b~='y' and b~='x' and failed_cat and not demo then -- criterion failed
    category = '[[Category:' .. failed_cat .. ']]'
   end
   if (b=='u' or b=='i') and args.B_MAIN_CAT and not demo then -- unevaluated or invalid parameter
    category = category .. '[[Category:' .. args.B_MAIN_CAT .. ']]'
   end
   criteria:tag('li')
    :wikitext(image .. ' ' .. cfg.b_checklist.criteria[i] .. ': ')
    :tag('span')
     :css('font-style', 'italic')
     :wikitext(cfg.b_checklist.status[b])
     :wikitext(category)
   :allDone()
   local new_syntax = mw.html.create('li')
    :addClass('nowrap')
    :wikitext(string.format(
     cfg.b_checklist.syntax.prompt,
     tostring(i),
     cfg.b_checklist.criteria[i] .. string.rep('&nbsp;', cfg.b_checklist.syntax.max_width-#cfg.b_checklist.criteria[i])
   ))
   :done()
   table.insert(syntax, tostring(new_syntax))
  end
 end
 local prompt
 if not parameters_used then
  prompt = mw.html.create('span')
   :wikitext(string.format(
    cfg.b_checklist.syntax.text,
    tostring(mw.title.getCurrentTitle():fullUrl({action = 'edit'}))
   ))
   :tag('ul')
    :css('font-size', '88%'):css('margin', '0px'):css('font-family', 'monospace, sans-serif'):css('padding', '1em'):css('border', '1px dashed #2f6fab')
    :css('background-color', '#f9f9f9'):css('line-height', '1.1em'):css('list-style', 'none')
    :node(table.concat(syntax))
   :done()
   :wikitext(cfg.b_checklist.syntax.assess)
  :done()
 end
 local checklist = mw.html.create('tr')
  :tag('td')
   :addClass('assess-b')
   :css('background', cfg.quality.colour.B):css('color', 'inherit'):css('padding-bottom', '5px')
   :wikitext(cfg.b_checklist.image)
  :done()
  :tag('td')
   :addClass('wpb-collapsed-notes')
   :tag('table')
    :addClass('plainlinks mw-collapsible mw-collapsed')
    :tag('tr')
     :tag('th'):addClass('wpb-collapsed-head mbox-text'):attr('colspan', '3'):css('font-weight', 'normal'):wikitext(text):done()
     :tag('td'):css('min-width', '3em'):done() -- empty cell for show/hide toggle
    :done()
    :tag('tr')
     :tag('td'):css('font-size', '90%'):node(criteria):done()
     :tag('td'):css('font-size', '88%'):node(prompt):done()
     :tag('td'):addClass('empty-cell'):done()
    :done()
   :done()
  :done()
 :done()
 return checklist
end
end

p.todo_list = function(args, frame)
---------------------------
-- To-do list -------------
---------------------------
local list
if args.TODO_LINK then
 local link = function(action)
  local url = mw.uri.fullUrl(args.TODO_LINK, {action = action})
  return mw.html.create('li'):wikitext('[' .. tostring(url) .. ' ' .. cfg.todo_list[action] .. ']')
 end
 local links = yesno(args.TODO_EDITLINKS or true, 'true') and frame:expandTemplate{title = 'Flatlist', args = {
  class = 'plainlinks',
  style = 'text-align:center;font-size:90%;',
  [1] = tostring(mw.html.create('ul')
   :node(link('edit'))
   :node(link('history'))
   :node(link('watch'))
   :node(link('purge'))
  )
 }} or ''
 list = links .. '\n' .. frame:expandTemplate{title = args.TODO_LINK}
else
 list = ('\n' .. args.TODO_TEXT) or ''
end
local todo_list = mw.html.create('tr')
 :tag('td'):attr('colspan', '3'):css('padding', '0')
  :tag('table'):addClass('mw-collapsible mw-collapsed'):css('background', 'transparent'):css('color', 'var( --color-base )'):css('width', '100%')
   :tag('tr')
    :tag('th'):css('text-align', 'left'):css('padding', '0.2em 2px 0.2em 0')
     :cssText(args.TODO_TITLE_STYLE):wikitext((args.TODO_TITLE or cfg.todo_list.default_title) .. ':')
   :done():done()
   :tag('tr')
    :tag('td'):css('text-align', 'left'):css('padding', '5px'):css('background-color', 'white'):css('color', 'black')
     :css('border', '1px solid #c0c090'):css('margin-top', '5px')
     :cssText(args.TODO_STYLE):wikitext(list)
:allDone()
return todo_list
end
p.todo_list_ = function(frame)
 return p.todo_list(frame.args, frame)
end

p.quality_importance_insection = function(args, class, importance, importance_name, tf_prefix)
---------------------------
-- Category intersection --
---------------------------
local suppress = false
local prefix = tf_prefix or ''
if class=='NA' and (yesno(args[prefix..'QII_SUPPRESS_NA']) or yesno(args[prefix..'QII_SUPPRESS_NA_CLASS'])) then
 suppress = true
end
if importance=='NA' and (yesno(args[prefix..'QII_SUPPRESS_NA']) or yesno(args[prefix..'QII_SUPPRESS_NA_IMPORTANCE'])) then
 suppress = true
end
if not class or not importance then
 suppress = true
end
local format = args[prefix..'QII_FORMAT']:gsub('C', '_C_'):gsub('I', '_I_'):gsub('T', '_T_')
if format and not suppress then
 local new_class
 if class=='' then
  new_class = 'Unassessed' .. (args[prefix..'QII_UNASSESSED_APPENDIX'] or '')
 else
  new_class = class .. '-Class'
 end
 local assessment_cat = args[prefix..'ASSESSMENT_CAT'] or args.PROJECT..' articles'
 local cat_name = format:gsub('_C_', new_class):gsub('_I_', importance .. '-' .. importance_name):gsub('_T_', assessment_cat)
 local cat = mw.title.new('Category:' .. cat_name)
 return cat.exists and #cat:getContent()>0 and cat_name
end
end

p.image_needed = function(args, pagetype)
---------------------------
-- Image needed -----------
---------------------------
local type = cfg.image_needed.default_type
if args['image-type'] then
 local add_article = function(word)
  local article = cfg.image_needed.article.consonant
  if cfg.image_needed.vowels[string.sub(word, 1, 1)] then
   article = cfg.image_needed.article.vowel
  end
  return article .. ' <b>' .. word .. '</b>'
 end
 type = add_article(args['image-type'])
end
local details = ''
if args['image-details'] then
 details = ' ' .. string.format(cfg.image_needed.details, args['image-details'])
end
local location = ''
if args['image-location'] then
 local location_cat = mw.title.new('Category:Wikipedians in ' .. args['image-location'])
 if location_cat.exists then
  location = ' ' .. string.format(
   cfg.image_needed.help,
   '[[:' .. location_cat.fullText .. '|' .. location_cat.text .. ']]'
  )
 end
end
local category_exists = function(category)
 local title = mw.title.new('Category:' .. category)
 if title.exists then
  return category
 end
end
return {
 text = string.format(cfg.image_needed.text, type, details, pagetype, location),
 image_name = args.IM_IMAGE or cfg.image_needed.default_image,
 category = args['image-location'] and category_exists(string.format(
  cfg.image_needed.location,
  args['image-type'] or 'photograph',
  args['image-location']
 )) or args.IM_LOCATION_CATEGORY,
 category2 = args['image-topic'] and category_exists(string.format(
  cfg.image_needed.topic,
  args['image-type'] or 'photograph',
  args['image-topic']
 )) or args.IM_TOPIC_CATEGORY
}
end

p.collaboration = function(args, pagetype, title)
---------------------------
-- Collaboration ----------
---------------------------
local image = args.COLL_IMAGE or cfg.collaboration.default_image
local link = '[[' .. (args.COLL_LINK or '') .. '|' .. (args.COLL_TEXT or cfg.collaboration.default_text) .. ']]'
local note_args = {candidate = {}, current = {}, past = {}}
if yesno(args['collaboration-candidate'], true) then
 local subpage_link = (args.COLL_LINK or '') .. '#' .. title.subjectPageTitle.text
 note_args.candidate = {
  text = string.format(cfg.collaboration.candidate, pagetype, subpage_link, link),
  image_name = image,
  size = cfg.collaboration.size,
  category = args.COLL_CANDIDATE_CAT
 }
end
if yesno(args['collaboration-current'], true) then
 note_args.current = {
  text = string.format(cfg.collaboration.current, pagetype, link),
  image_name = image,
  size = cfg.collaboration.size,
  category = args.COLL_CURRENT_CAT
 }
end
if yesno(args['collaboration-past'], true) then
 note_args.past = {
  text = string.format(cfg.collaboration.past, pagetype, link),
  image_name = image,
  size = cfg.collaboration.size,
  category = args.COLL_PAST_CAT
 }
end
return note_args
end

p.a_class = function(args, lang)
---------------------------
-- A-class review ---------
---------------------------
local status = cfg.a_class.mask[lang:lc(args['a class'])]
if status==nil then
 return {}
end
local subpage = args.ACR_SUBPAGE_LINK or ''
local link_exists = args.ACR_SUBPAGE_LINK and mw.title.new(subpage).exists or false
local category = {
 pass = 'ACR_PASS_CAT',
 fail = 'ACR_FAIL_CAT',
 current = 'ACR_CURRENT_CAT'
}
return {
 text = string.format(
  cfg.a_class.text,
  subpage,
  cfg.a_class.status[status],
  args.ACR_REVIEW_LINK or ''
 ),
 image_name = args.ACR_IMAGE or cfg.a_class.icon[status],
 size = args.ACR_SIZE or '18x18px',
 background = cfg.a_class.background,
 category = args[category[status]],
 category2 = not link_exists and args.ACR_INVALID_CAT
}
end

p.peer_review = function(args, title)
---------------------------
-- Peer review ------------
---------------------------
local image = args.PR_IMAGE or cfg.peer_review.default_image
local size = args.PR_SIZE or cfg.peer_review.size
local link = args.PR_LINK or ''
local pr_title = args['peer review title'] and mw.title.new(args['peer review title']) or title
local subpage_link = link .. '/' .. pr_title.subjectPageTitle.text
local invalid_cat = not mw.title.new(subpage_link).exists and args.PR_INVALID_CAT
local note_args = {current = {}, past = {}}
if yesno(args['peer review'], true) then
 note_args.current = {
  text = string.format(cfg.peer_review.current, subpage_link, link),
  image_name = image,
  size = size,
  category = args.PR_CAT,
  category2 = invalid_cat
 }
end
if yesno(args['old peer review'], true) then
 note_args.past = {
  text = string.format(cfg.peer_review.past, link, subpage_link),
  image_name = image,
  size = size,
  category = args.PR_OLD_CAT,
  category2 = invalid_cat
 }
end
return note_args

end
return p

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:WikiProject_banner/auxiliary&oldid=1233806807"

Category: 
Modules in beta
Hidden category: 
Wikipedia template-protected modules
 



This page was last edited on 11 July 2024, at 00:17 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki