モジュール:編集フィルター編集依頼
表示
モジュールの解説[作成]
local yesno = require('Module:Yesno')
local makeMessageBox = require('Module:Message box').main
local function red(str)
return '<span style="color: red;">' .. str .. '</span>'
end
local function cat(name)
return '[[Category:' .. name .. ']]'
end
local function code(str)
return '<code style="white-space: nowrap;">' .. str .. '</code>'
end
local function small(str)
return '<span style="font-size: smaller;">' .. str .. '</span>'
end
local function link(page, query, display)
if display == nil then display = page end
if query == nil or query == {} then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[%s %s]', tostring(mw.uri.fullUrl(page, query)), display)
end
end
local function getTitles()
local curTitle = mw.title.getCurrentTitle()
local title = curTitle.text
local curNs = curTitle.namespace --number
local ns = {}
if curNs % 2 == 0 then
ns.main = mw.site.namespaces[curNs].name
ns.talk = mw.site.namespaces[curNs + 1].name
else
ns.main = mw.site.namespaces[curNs - 1].name
ns.talk = mw.site.namespaces[curNs].name
end
return {
main = mw.title.makeTitle(ns.main, title).fullText,
talk = mw.title.makeTitle(ns.talk, title).fullText
}
end
local function tmbox(answered, demo)
local params = {}
if answered then
params.small = 'yes'
params.smalltext = 'こちらの編集依頼は終了しました。この依頼を再度有効化するには、引数' .. code('|answered=') ..
'もしくは' .. code('|ans=') .. 'の値に<b>no</b>を指定してください。'
else
params.small = 'no'
params.image = '[[File:Text-x-generic-highlight-red-marker-round.svg|60px]]'
local titles = getTitles()
local txt =
'<b>プライバシー侵害対策フィルターの編集依頼が出されています。</b>' ..
small('(' ..
link(titles.main, {action = 'history'}, '履歴') .. '・' ..
link('特別:ログ', {page = titles.main}, '記録') .. '・' ..
link(titles.talk, {action = 'history'}, 'ノートの履歴') .. '・' ..
link('特別:ログ', {page = titles.talk}, 'ノートの記録') .. '・' ..
link('特別:不正利用フィルター/143', {}, '編集フィルター') ..
')') .. '<br>' ..
'<p>' ..
'このテンプレートの後には、' .. link('Wikipedia:削除の方針#B2') .. '関連の理由でフィルターに追加 (または除去) を依頼するための' ..
'編集内容を提示してください。提示の際には差分リンク等を使用し、<b>編集対象となる文字列を依頼文に含めないでください</b>。' ..
'除去を依頼する場合は、存続終了となった削除依頼のサブページ、または合意形成があったノートページへのリンクを必ず含めてください。' ..
'</p>' ..
'<p style="font-size: smaller; line-height: 1.3em;">' ..
'フィルターの編集は' .. link('Wikipedia:編集フィルター編集者', {} , '編集フィルター編集者') .. 'が行いますが、不適切な依頼は' ..
'それ以外の利用者も除去や終了処理ができます。本依頼を終了扱いとする場合、このテンプレートの引数に' .. code('|answered=yes') ..
'または' .. code('|ans=yes') .. 'を追加して下さい。なお、このテンプレートはプライバシー侵害対策専用です。それ以外の用途に' ..
'使用しないでください。' ..
'</p>'
if not demo then txt = txt .. cat('編集フィルター編集依頼') end
params.text = txt
end
return makeMessageBox('tmbox', params)
end
local p = {}
function p.Main(frame)
local curTitle = mw.title.getCurrentTitle()
local demo = yesno(frame.args['demo'], false)
if curTitle.prefixedText == 'Template:編集フィルター編集依頼' then
demo = true
end
local display
if not curTitle.isTalkPage and not demo then
display = red('<b>エラー: このテンプレートはノートページで使用してください。</b>') ..
cat('テンプレート呼び出しエラーのあるページ/Template:編集フィルター編集依頼')
else
display = tmbox(yesno(frame.args['ans'], false), demo)
end
return display
end
return p