Module:Password protect
Documentation for this module may be created at Module:Password protect/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.generate( frame )
local args = getArgs(frame)
passcode = args[1]
strOut = '{{#css:.mw-collapsed:not(.mw-made-collapsible),'
charset = args[2]
strCat = '';
strCat2 = '';
strCat3 = '';
for i = 1, #passcode do
local c = passcode:sub(i,i)
strOut = strOut .. (i==1 and '' or '+') .. '#mw-customcollapsible-pass-cage' .. i .. ':not(.mw-collapsed)'
strCat = strCat .. (i==1 and '' or ',') .. '#mw-customcollapsible-pass-cage' .. i
strCat3 = strCat3 .. '<div class="mw-collapsible' .. (c==charset:sub(1,1) and '' or ' mw-collapsed') .. '" id="mw-customcollapsible-pass-cage' .. i .. '"></div>'
for j = 1, #charset do
strCat2 = strCat2 .. '<span class="mw-collapsible ' .. (j==1 and '' or 'mw-collapsed') .. '" id="mw-customcollapsible-pass-'..i..'-'..j..'"><span class="mw-customtoggle-pass-'..i..'-'..j..' mw-customtoggle-pass-'..i..'-'..((j%#charset)+1).. ((c==charset:sub((j%#charset)+1,(j%#charset)+1) or (c==charset:sub(j,j))) and (' mw-customtoggle-pass-cage'..i) or '') .. '">\'\'\'' .. charset:sub(j,j) .. '\'\'\'</span></span>'
end
end
strOut = strOut .. '~#pass-submit1,:is(' .. strCat .. ').mw-collapsed~#pass-submit2{display:none}}<div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-wrongpass">An incorrect password was entered.</div><div class="mw-collapsible" id="mw-customcollapsible-passenter">This page is password protected. Please enter the passcode below to access it.\n\n<big style="-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:monospace"><big><big><big>\n'..strCat2 .. '</big></big></big></big>' .. strCat3 .. '<div id="pass-submit1"><span class="mw-customtoggle-wrongpass mw-customtoggle-passenter" style="color:#0645ad">Submit</span></div><div id="pass-submit2"><span class="mw-customtoggle-pageaccess mw-customtoggle-passenter" style="color:#0645ad">Submit</span></div></div><div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-pageaccess">'
return strOut
end
return p