Jump to content
Wikipedia The Free Encyclopedia

Module:Protected edit request

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing.
Page template-protected This module is currently protected from editing.
See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected.
Warning This Lua module is used on approximately 56,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.

This module produces a message box used to request edits to protected pages. Edit requests can be made for fully protected, template-protected and semi-protected pages, and it is possible to request edits to multiple pages at once.

This module should be used on the talk page of the page to be edited. If you are not able to place it directly on this talk page, then you can specify the page to be edited with the positional parameters. You can also specify multiple pages to be edited, if this is more convenient than making multiple edit requests in different locations.

Syntax

The module has five functions, one for each available protection level:

Function Protection level Template
interface CSS/JS protection {{edit interface-protected }}
full Full protection {{edit fully-protected }}
template Template protection {{edit template-protected }}
extended Extended confirmed protection {{edit extended-protected }}
semi Semi-protection {{edit semi-protected }}

Basic usage

{{#invoke:protected edit request|function}}

Specify pages to be edited

{{#invoke:protected edit request|function|First page to be edited|Second page to be edited|...}}

Deactivate a request

{{#invoke:protected edit request|function|answered=yes}}
Force a request's protection level rather than allowing auto-detection
{{#invoke:protected edit request|function|force=yes}}
Override the "must only be on a talk page" check
{{#invoke:protected edit request|function|skiptalk=yes}}

All parameters

{{#invoke:protected edit request|function
| First page to be edited|Second page to be edited|Third page to be edited|...
| answered = 
| ans = 
| demo = 
| force = 
| skiptalk =
}}

Categories

The template categorises the page depending on the protection level of the pages to be edited.

Function Category
interface Category:Wikipedia interface-protected edit requests
full Category:Wikipedia fully protected edit requests
template Category:Wikipedia template-protected edit requests
extended Category:Wikipedia extended-confirmed-protected edit requests
semi Category:Wikipedia semi-protected edit requests

The module attempts to detect the protection level of the pages used. If one or more of the pages are unprotected, or multiple pages with different protection levels are specified, the page is categorized in Category:Wikipedia edit requests possibly using incorrect templates. Otherwise, if the force parameter is not set, it is automatically categorized in the correct protection level.

The above documentation is transcluded from Module:Protected edit request/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (edit | run) pages.
Subpages of this module.

 require('strict')

 localyesno=require('Module:Yesno')
 localmakeMessageBox=require('Module:Message box').main
 localgetArgs

 localactiveBox-- lazily initialized if we get an active request

 ----------------------------------------------------------------------
 -- Box class definition
 ----------------------------------------------------------------------

 localbox={}
 box.__index=box

 functionbox.new(protectionType,args)
 localobj={}
 obj.args=args
 setmetatable(obj,box)
 obj.tmboxArgs={}-- Used to store arguments to be passed to tmbox by the box:export method.
 -- Set data fields.
 obj.tmboxArgs.attrs={['data-origlevel']=protectionType}
 returnobj
 end

 functionbox:setArg(key,value)
 -- This sets a value to be passed to tmbox.
 ifkeythen
 self.tmboxArgs[key]=value
 end
 end

 functionbox:export()
 localtitle=mw.title.getCurrentTitle()
 localskipCheck=yesno(self.args.demo)oryesno(self.args.skiptalk)
 ifnottitle.isTalkPageandnotskipCheckthen
 return'<span class="error">Error: Protected edit requests can only be made on the talk page.</span>[[Category:Non-talk pages with an edit request template]]'
 end

 -- String together page names provided
 localtitles={}
 fork,vinpairs(self.args)do
 iftype(k)=='number'then
 table.insert(titles,self.args[k])
 end
 end
 localpagesText
 if#titles==0then
 pagesText=''
 elseif#titles==1andmw.title.getCurrentTitle().subjectPageTitle.fullText==titles[1]then
 pagesText=''
 else
 fori,vinpairs(titles)do
 ifi==1then
 pagesText=' to [[:'..v..']]'
 elseifi==#titlesthen
 pagesText=pagesText..' and [[:'..v..']]'
 else
 pagesText=pagesText..', [[:'..v..']]'
 end
 end
 end

 self:setArg('smalltext',"This [[Wikipedia:Edit requests|edit request]]"..pagesText..
 " has been answered. Set the <code style=\"white-space: nowrap;\">&#124;answered&#61;</code> parameter to '''no''' to reactivate your request.")
 self:setArg('small',true)
 self:setArg('class','editrequest')
 returnmakeMessageBox('tmbox',self.tmboxArgs)
 end

 ----------------------------------------------------------------------
 -- Process arguments and initialise objects
 ----------------------------------------------------------------------

 localp={}

 functionp._main(protectionType,args)
 localboxType=box
 ifnotyesno(args.answeredorargs.ans,true)then
 ifnotactiveBoxthen
 activeBox=require('Module:Protected edit request/active')(box,yesno,makeMessageBox)
 end
 boxType=activeBox
 end
 localrequestBox=boxType.new(protectionType,args)
 returnrequestBox:export()
 end

 localmt={}

 functionmt.__index(t,k)
 ifnotgetArgsthen
 getArgs=require('Module:Arguments').getArgs
 end
 returnfunction(frame)
 returnt._main(k,getArgs(frame,{wrappers={'Template:Edit fully-protected','Template:Edit semi-protected','Template:Edit template-protected','Template:Edit extended-protected','Template:Edit interface-protected','Template:Edit protected'}}))
 end
 end

 returnsetmetatable(p,mt)

AltStyle によって変換されたページ (->オリジナル) /