Модуль:Players: відмінності між версіями
| Admin (обговорення | внесок) Немає опису редагування | Admin (обговорення | внесок)  Немає опису редагування | ||
| Рядок 3: | Рядок 3: | ||
| function p.fetchRandomMembers(frame) | function p.fetchRandomMembers(frame) | ||
|      local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members |      local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members | ||
|     local category = mw.title.makeTitle(14, categoryName)  -- Namespace 14 is for categories | |||
|     local members = category:getCategoryMembers() | |||
|      local count = 4  -- Number of random members to fetch |      local count = 4  -- Number of random members to fetch | ||
|      local output = '<ul>\n' |      local output = '<ul>\n' | ||
|      for  | |||
|     -- Shuffle the array of members randomly and select the top few | |||
|     local shuffled = {} | |||
|      for index, value in ipairs(members) do | |||
|          local pos = math.random(1, #shuffled+1) | |||
|         table.insert(shuffled, pos, value) | |||
|      end |      end | ||
|     for i = 1, math.min(count, #shuffled) do | |||
|         local title = shuffled[i].fullText | |||
|         output = output .. '<li><a href="/wiki/' .. mw.text.encode(title) .. '">' .. mw.text.decode(title) .. '</a></li>\n' | |||
|     end | |||
|      output = output .. '</ul>\n' |      output = output .. '</ul>\n' | ||
|      return output |      return output | ||
Версія за 21:06, 22 квітня 2024
Документацію для цього модуля можна створити у Модуль:Players/документація
local p = {}
function p.fetchRandomMembers(frame)
    local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members
    local category = mw.title.makeTitle(14, categoryName)  -- Namespace 14 is for categories
    local members = category:getCategoryMembers()
    local count = 4  -- Number of random members to fetch
    local output = '<ul>\n'
    
    -- Shuffle the array of members randomly and select the top few
    local shuffled = {}
    for index, value in ipairs(members) do
        local pos = math.random(1, #shuffled+1)
        table.insert(shuffled, pos, value)
    end
    
    for i = 1, math.min(count, #shuffled) do
        local title = shuffled[i].fullText
        output = output .. '<li><a href="/wiki/' .. mw.text.encode(title) .. '">' .. mw.text.decode(title) .. '</a></li>\n'
    end
    
    output = output .. '</ul>\n'
    return output
end
return p