![image](https://www.wiki3.th-th.nina.az/image/aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi80LzQzL1Rlc3RfVGVtcGxhdGVfSW5mby1JY29uXy1fVmVyc2lvbl8lMjgyJTI5LnN2Zy81MHB4LVRlc3RfVGVtcGxhdGVfSW5mby1JY29uXy1fVmVyc2lvbl8lMjgyJTI5LnN2Zy5wbmc=.png)
คุณอาจจะต้องการสร้างคู่มือการใช้งานของนี้ ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของมอดูลนี้ โปรดเพิ่มหมวดหมู่ไปที่หน้าย่อย |
-- This module implements {{ดูเพิ่มหมวดหมู่}} local mHatnote = require('มอดูล:Hatnote') local p = {} local function makeWikitextError(msg) return string.format( '<strong class="error">ข้อผิดพลาด: %s ([[แม่แบบ:ดูเพิ่มหมวดหมู่]])</strong>', msg ) end -- Gets the length of the sequence seq. Usually this should be done with the # -- operator, but we need to work with tables that get their values through an -- __index metamethod. local function getSequenceLength(seq) local length = 0 for i in ipairs(seq) do length = i end return length end -- Given a table of options, returns a function that formats categories for -- those options. -- -- Options: -- project - a project code such as "fr" (for the French Wikipedia) -- showPrefix - a boolean value for whether to show the "Category:" prefix -- (and the project prefix if specified) -- -- This is implemented as a function generator rather than a simple function -- so that we can just process the options once, instead of every time we -- generate a category. local function newCategoryLinker(options) local formatString if options.project then if options.showPrefix then formatString = '[[:' .. options.project .. ':หมวดหมู่:%s]]' else formatString = '[[:' .. options.project .. ':หมวดหมู่:%s|%s]]' end else if options.showPrefix then formatString = '[[:หมวดหมู่:%s]]' else formatString = '[[:หมวดหมู่:%s|%s]]' end end return function (category) local title = mw.title.new(category) local pageName, display if not title then -- category is not a valid title, usually because of invalid -- characters like < or [. Raise an error and suppress the stack -- level information so that we can catch it and format the error -- message as wikitext. error(string.format( "'%s' ไม่ใช่ชื่อหมวดหมู่ที่ถูกต้อง", category ), 0) elseif title.namespace == 14 then -- Category namespace pageName = title.text display = title.text else pageName = title.prefixedText display = category end -- We can get away with using two arguments even when -- options.showDisplay is false, as string.format ignores extra -- arguments as long as there is an argument for each flag in the -- format string. return formatString:format(pageName, display) end end function p._main(args) local nLinks = getSequenceLength(args) if nLinks < 1 then return makeWikitextError('ต้องมีอย่างน้อยหนึ่งพารามิเตอร์') end local makeCategoryLink = newCategoryLinker{ project = args.project, showPrefix = nLinks == 1, } local links = {} for i, cat in ipairs(args) do local success, categoryLink = pcall(makeCategoryLink, cat) if success then links[i] = categoryLink else -- If there was an error, then categoryLink is the error message. return makeWikitextError(categoryLink) end end local formatString if nLinks == 1 then formatString = '%s: %s' else formatString = '%sหมวดหมู่ต่อไปนี้ %s' end -- Don't output a comma before the "and" if we have only two links. local conjunction if nLinks == 2 then conjunction = ' และ ' else conjunction = ', และ ' end local hatnoteText = formatString:format( args.LABEL or 'ดูเพิ่ม', mw.text.listToText(links, ', ', conjunction) ) return mHatnote._hatnote(hatnoteText, {selfref = true}) end function p.main(frame) local args = require('มอดูล:Arguments').getArgs(frame, { wrappers = 'แม่แบบ:ดูเพิ่มหมวดหมู่', }) return p._main(args) end return p
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
วันที่เผยแพร่: