วิกิพีเดีย
มอดูล:Dashboard entry
คู่มือการใช้งานมอดูล[สร้าง]
คุณอาจจะต้องการสร้างคู่มือการใช้งานของมอดูลนี้ ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของมอดูลนี้ โปรดเพิ่มหมวดหมู่ไปที่หน้าย่อย /doc หน้าย่อยของมอดูลนี้ |
local p = {} local plain = require("Module:Plain text")._main function p.main(frame) local page = frame.args[1] local pipe = frame.args[2] local content = mw.title.new(page):getContent() -- Unfortunately, the bot that this is replacing uses "prop=sections", which isn't accessible to Lua. -- Therefore, we have to parse the page manuallly local sections = content:gmatch("%{%{สภากาแฟ/อภิปรายเรื่อง| *([^=]+) *)%}%}") local count = 0 local sect -- copy array to table so it can be iterated in reverse local secttable = {} for sect in sections do secttable[#secttable + 1] = sect end local declutter if #secttable < 3 then declutter = "|class=" else declutter = "" end if #secttable == 0 then declutter = declutter .. "| fade = yes" end local output = string.format("{{วิกิพีเดีย:แดชบอร์ด/กลุ่ม%s|1='''[[%s|%s]]''' (%s การอภิปราย)'''<div style='font-size:85%%; padding-left:1.5em;'>''ใหม่สุด:''", declutter, page, pipe, #secttable) local count = 0 for i = #secttable, 1, -1 do sect = secttable[i] output = output .. string.format("\n* [[%s#%s|%s]]", page, mw.uri.anchorEncode(sect), plain(sect)) count = count + 1 if count == 3 then output = output .. "\n</div>}}\n<div style=\"padding-left:3em;\">" end end if count < 3 then output = output .. "</div>}} {{end}}" else output = output .. "</div>\n{{end}}" end return frame:preprocess(output) end function p.sectionlevel2(frame) local page = frame.args[1] local pipe = frame.args[2] local content = mw.title.new(page):getContent() -- Unfortunately, the bot that this is replacing uses "prop=sections", which isn't accessible to Lua. -- Therefore, we have to parse the page manuallly local sections = content:gmatch("\n== *([^=]+) *==") local count = 0 local sect -- copy array to table so it can be iterated in reverse local secttable = {} for sect in sections do secttable[#secttable + 1] = sect end local declutter if #secttable < 3 then declutter = "|class=" else declutter = "" end if #secttable == 0 then declutter = declutter .. "| fade = yes" end local output = string.format("{{วิกิพีเดีย:แดชบอร์ด/กลุ่ม%s|1='''[[%s|%s]]''' (%s การอภิปราย)'''<div style='font-size:85%%; padding-left:1.5em;'>''ใหม่สุด:''", declutter, page, pipe, #secttable) local count = 0 for i = #secttable, 1, -1 do sect = secttable[i] output = output .. string.format("\n* [[%s#%s|%s]]", page, mw.uri.anchorEncode(sect), plain(sect)) count = count + 1 if count == 3 then output = output .. "\n</div>}}\n<div style=\"padding-left:3em;\">" end end if count < 3 then output = output .. "</div>}} {{end}}" else output = output .. "</div>\n{{end}}" end return frame:preprocess(output) end function p.village_pump(frame) local page = frame.args[1] local pipe = frame.args[2] local content = mw.title.new(page):getContent() -- Unfortunately, the bot that this is replacing uses "prop=sections", which isn't accessible to Lua. -- Therefore, we have to parse the page manuallly local sections = content:gmatch("%{%{สภากาแฟ/อภิปรายเรื่อง%|([^%}]+)%}%}") local count = 0 local sect -- copy array to table so it can be iterated in reverse local secttable = {} for sect in sections do secttable[#secttable + 1] = sect end local declutter if #secttable < 3 then declutter = "|class=" else declutter = "" end if #secttable == 0 then declutter = declutter .. "| fade = yes" end local output = string.format("{{วิกิพีเดีย:แดชบอร์ด/กลุ่ม%s|1='''[[%s|%s]]''' '''<div style='font-size:85%%; padding-left:1.5em;'>''ใหม่สุด:''", declutter, page, pipe) local count = 0 for i = #secttable, 1, -1 do sect = secttable[i] output = output .. string.format("\n* [[วิกิพีเดีย:สภากาแฟ/อภิปราย/%s|%s]]", sect, sect) count = count + 1 if count == 3 then output = output .. "\n</div>}}\n<div style=\"padding-left:3em;\">" end end if count < 3 then output = output .. "</div>}} {{end}}" else output = output .. "</div>\n{{end}}" end return frame:preprocess(output) end function p.rfa_nom(frame) local template = frame.args[1] or "รายชื่อเสนอ" -- เช่น "รายชื่อเสนอ" local display = frame.args[2] or "เสนอผู้ดูแลระบบ" -- เช่น "เสนอผู้ดูแลระบบ" local prefix = frame.args['prefix'] or "วิกิพีเดีย:เสนอชื่อเพื่อเป็นผู้ดูแล/" local page = "วิกิพีเดีย:เสนอชื่อเพื่อเป็นผู้ดูแล" local content = mw.title.new(page):getContent() -- here we go again! local users = content:gmatch("\n%* *%{%{" .. template .. "%|([^%}]+)%}%}") -- "* {{template|Example}}" local user local usertable = {} for user in users do usertable[#usertable + 1] = user end local declutter if #usertable < 3 then -- this mean 'if less than 3 then no collapsible' declutter = "|class=" else declutter = "" end if #usertable == 0 then declutter = declutter .. "| fade = yes" end local output = string.format("{{วิกิพีเดีย:แดชบอร์ด/กลุ่ม%s|1='''[[%s|%s]]''' '''<div style='font-size:85%%; padding-left:1.5em;'>''ใหม่สุด:''", declutter, page, display) local count = 0 if #usertable ~= 0 then for i = #usertable, 1, -1 do user = usertable[i] output = output .. string.format("\n* [[" .. prefix .. "%s|%s]]", user, user) count = count + 1 if count == 3 then output = output .. "\n</div>}}\n<div style=\"padding-left:3em;\">" end end else output = output .. "\n* ''ยังไม่มีการเสนอชื่อในขณะนี้''" end if count < 3 then output = output .. "</div>}} {{end}}" else output = output .. "</div>\n{{end}}" end return frame:preprocess(output) end function p.rfp(frame) local perm = frame.args[1] local display = frame.args[2] or perm local page = "วิกิพีเดีย:แจ้งขอสิทธิ/" .. perm local content = mw.title.new(page):getContent() -- here we go again and again... local sections = content:gmatch("\n==== *([^=]+) *====") local count = 0 local sect -- copy array to table so it can be iterated in reverse local secttable = {} for sect in sections do secttable[#secttable + 1] = sect end local declutter if #secttable < 3 then declutter = "|class=" else declutter = "" end if #secttable == 0 then declutter = declutter .. "|fade=yes" end local output = string.format("{{วิกิพีเดีย:แดชบอร์ด/กลุ่ม%s|1='''[[%s|%s]]''' (%s ผู้ใช้กำลังคอย)'''<div style='font-size:85%%; padding-left:1.5em;'>''ใหม่สุด:''", declutter, page, display, #secttable) local count = 0 for i = #secttable, 1, -1 do sect = secttable[i] output = output .. string.format("\n* [[%s#%s|%s]]", page, mw.uri.anchorEncode(sect), plain(sect)) count = count + 1 if count == 3 then output = output .. "\n</div>}}\n<div style=\"padding-left:3em;\">" end end if count < 3 then output = output .. "</div>}} {{end}}" else output = output .. "</div>\n{{end}}" end return frame:preprocess(output) end return p