Διαφορά μεταξύ των αναθεωρήσεων του "Module:Submit an edit request"
Από Γνωσιακή Βάση Υπηρεσιών και Διαδικασιών του Δημοσίου Τομέα
Dkalo (Συζήτηση | συνεισφορές) μ (Εισήχθη 1 αναθεώρηση) |
(Νέα σελίδα: -- This module implements {{Submit an edit request}}. -- Load necessary modules local mRedirect = require('Module:Redirect') local cfg = mw.loadData('Module:Submit an edit r...) |
||
(Μία ενδιάμεση έκδοση από ένα χρήστη δεν εμφανίζεται) | |||
Γραμμή 1: | Γραμμή 1: | ||
-- This module implements {{Submit an edit request}}. | -- This module implements {{Submit an edit request}}. | ||
− | |||
− | |||
-- Load necessary modules | -- Load necessary modules | ||
local mRedirect = require('Module:Redirect') | local mRedirect = require('Module:Redirect') | ||
− | local cfg = mw.loadData | + | local cfg = mw.loadData('Module:Submit an edit request/config') |
− | |||
− | |||
local p = {} | local p = {} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
local function message(key, ...) | local function message(key, ...) | ||
Γραμμή 25: | Γραμμή 15: | ||
return mw.message.newRawMessage(msg):params(params):plain() | return mw.message.newRawMessage(msg):params(params):plain() | ||
end | end | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
function p.makeRequestUrl(level, titleObj) | function p.makeRequestUrl(level, titleObj) | ||
titleObj = titleObj or mw.title.getCurrentTitle() | titleObj = titleObj or mw.title.getCurrentTitle() | ||
− | + | ||
− | + | do | |
+ | local levels = { | ||
+ | semi = true, | ||
+ | template = true, | ||
+ | full = true | ||
+ | } | ||
+ | level = level and levels[level] and level or 'full' | ||
end | end | ||
− | local | + | |
− | + | local editintro, requestTemplate, levelText | |
− | + | do | |
+ | local messages = { | ||
+ | semi = { | ||
+ | editintro = 'semi-editintro', | ||
+ | requestTemplate = 'semi-request-template', | ||
+ | levelText = 'semi-protectionlevel' | ||
+ | }, | ||
+ | template = { | ||
+ | editintro = 'template-editintro', | ||
+ | requestTemplate = 'template-request-template', | ||
+ | levelText = 'template-protectionlevel' | ||
+ | }, | ||
+ | full = { | ||
+ | editintro = 'full-editintro', | ||
+ | requestTemplate = 'full-request-template', | ||
+ | levelText = 'full-protectionlevel' | ||
+ | } | ||
+ | } | ||
+ | local levelMessages = messages[level] | ||
+ | editintro = message(levelMessages.editintro) | ||
+ | requestTemplate = message(levelMessages.requestTemplate) | ||
+ | levelText = message(levelMessages.levelText) | ||
end | end | ||
− | + | ||
− | + | local preloadtitle, talkpagename | |
− | + | do | |
− | + | -- Get the date text. | |
− | + | local dateFormat = message('preload-title-date-format') | |
− | preloadtitle = message( | + | local lang = mw.language.getContentLanguage() |
− | + | local date = lang:formatDate(dateFormat) | |
− | + | ||
− | + | -- Get the talk page name, and resolve it if it is a redirect. | |
− | + | local namespace = titleObj.namespace | |
− | + | talkpagename = mw.site.namespaces[namespace].talk.name | |
− | + | .. ':' | |
− | + | .. titleObj.text | |
− | + | talkpagename = mRedirect.luaMain(talkpagename) | |
− | + | preloadtitle = message('preload-title-text', levelText, date) | |
− | + | end | |
− | local function | + | |
− | + | local preloadTemplate = message('preload-template') | |
+ | |||
+ | local function encode(key, value) | ||
+ | key = mw.uri.encode(key) | ||
+ | value = mw.uri.encode(value) | ||
+ | return key .. '=' .. value | ||
end | end | ||
− | |||
− | |||
+ | local query = {} | ||
+ | query[#query + 1] = encode('preload', preloadTemplate) | ||
+ | query[#query + 1] = encode('editintro', editintro) | ||
+ | query[#query + 1] = encode('preloadparams[]', requestTemplate) | ||
+ | query[#query + 1] = encode('preloadtitle', preloadtitle) | ||
+ | query[#query + 1] = 'section=new' | ||
+ | query[#query + 1] = encode('preloadparams[]', titleObj.prefixedText) | ||
+ | |||
+ | local url = mw.uri.fullUrl(talkpagename, {action = 'edit'}) | ||
+ | url = tostring(url) .. '&' .. table.concat(query, '&') | ||
return url | return url | ||
end | end |
Αναθεώρηση της 21:00, 17 Νοεμβρίου 2014
Documentation for this module may be created at Module:Submit an edit request/τεκμηρίωση
-- This module implements {{Submit an edit request}}. -- Load necessary modules local mRedirect = require('Module:Redirect') local cfg = mw.loadData('Module:Submit an edit request/config') local p = {} local function message(key, ...) local params = {...} local msg = cfg[key] if #params < 1 then return msg else return mw.message.newRawMessage(msg):params(params):plain() end end function p.makeRequestUrl(level, titleObj) titleObj = titleObj or mw.title.getCurrentTitle() do local levels = { semi = true, template = true, full = true } level = level and levels[level] and level or 'full' end local editintro, requestTemplate, levelText do local messages = { semi = { editintro = 'semi-editintro', requestTemplate = 'semi-request-template', levelText = 'semi-protectionlevel' }, template = { editintro = 'template-editintro', requestTemplate = 'template-request-template', levelText = 'template-protectionlevel' }, full = { editintro = 'full-editintro', requestTemplate = 'full-request-template', levelText = 'full-protectionlevel' } } local levelMessages = messages[level] editintro = message(levelMessages.editintro) requestTemplate = message(levelMessages.requestTemplate) levelText = message(levelMessages.levelText) end local preloadtitle, talkpagename do -- Get the date text. local dateFormat = message('preload-title-date-format') local lang = mw.language.getContentLanguage() local date = lang:formatDate(dateFormat) -- Get the talk page name, and resolve it if it is a redirect. local namespace = titleObj.namespace talkpagename = mw.site.namespaces[namespace].talk.name .. ':' .. titleObj.text talkpagename = mRedirect.luaMain(talkpagename) preloadtitle = message('preload-title-text', levelText, date) end local preloadTemplate = message('preload-template') local function encode(key, value) key = mw.uri.encode(key) value = mw.uri.encode(value) return key .. '=' .. value end local query = {} query[#query + 1] = encode('preload', preloadTemplate) query[#query + 1] = encode('editintro', editintro) query[#query + 1] = encode('preloadparams[]', requestTemplate) query[#query + 1] = encode('preloadtitle', preloadtitle) query[#query + 1] = 'section=new' query[#query + 1] = encode('preloadparams[]', titleObj.prefixedText) local url = mw.uri.fullUrl(talkpagename, {action = 'edit'}) url = tostring(url) .. '&' .. table.concat(query, '&') return url end function p._link(args) return string.format( '<span class="plainlinks">[%s %s]</span>', p.makeRequestUrl(args.type), args.display or message('default-display-value') ) end function p._button(args) return require('Module:Clickable button 2').luaMain{ [1] = args.display or message('default-display-value'), url = p.makeRequestUrl(args.type), class = 'mw-ui-progressive' } end local function makeInvokeFunc(func, wrapper) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = {wrapper} }) return func(args) end end p.link = makeInvokeFunc(p._link, message('link-wrapper-template')) p.button = makeInvokeFunc(p._button, message('button-wrapper-template')) return p