মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত: সংশোধিত সংস্করণের মধ্যে পার্থক্য

"-- This module contains shared functions used by Module:Category handler -- and its submodules. local p = {} function p.matchesBlacklist(page, blacklist) for i, pattern in ipairs(blacklist) do local match = mw.ustring.match(page, pattern) if match then return true end end return false end function p.getParamMappings(useLoadData) local dataPage = 'মডিউল:নামস্থান শনাক্তকরণ/উপাত..." দিয়ে পাতা তৈরি
 
সম্পাদনা সারাংশ নেই
 
১ নং লাইন: ১ নং লাইন:
-- This module contains shared functions used by [[Module:Category handler]]
-- এই মডিউলটিতে [[মডিউল:বিষয়শ্রেণী পরিচালনাকারী]] এবং এর উপ-মডিউলগুলোর জন্য শেয়ারকৃত ফাংশন রয়েছে।
-- and its submodules.
-- এতে 'নামস্থান শনাক্তকরণ' (Namespace detect) এর উপাত্তগুলোও সরাসরি অন্তর্ভুক্ত করা হয়েছে।


local p = {}
local p = {}
local function getMappings()
    local cfg = {}
    cfg.demopage = 'page' -- আপনার প্রয়োজন অনুযায়ী পরিবর্তন করতে পারেন
    local function addKey(t, key, defaultKey)
        if key ~= defaultKey then
            t[#t + 1] = key
        end
    end
    local defaultKeys = {'main', 'talk', 'other', 'subjectns', 'demospace', 'demopage'}
    local argKeys = {}
    for i, defaultKey in ipairs(defaultKeys) do
        argKeys[defaultKey] = {defaultKey}
    end
    for defaultKey, t in pairs(argKeys) do
        local cfgValue = cfg[defaultKey]
        local cfgValueType = type(cfgValue)
        if cfgValueType == 'string' then
            addKey(t, cfgValue, defaultKey)
        elseif cfgValueType == 'table' then
            for i, key in ipairs(cfgValue) do
                addKey(t, key, defaultKey)
            end
        end
    end
    local mappings = {}
    local mainNsName = mw.site.subjectNamespaces[0].name
    mainNsName = mw.ustring.lower(mainNsName)
    mappings[mainNsName] = mw.clone(argKeys.main)
    mappings['talk'] = mw.clone(argKeys.talk)
   
    for nsid, ns in pairs(mw.site.subjectNamespaces) do
        if nsid ~= 0 then
            local nsname = mw.ustring.lower(ns.name)
            local canonicalName = mw.ustring.lower(ns.canonicalName)
            mappings[nsname] = {nsname}
            if canonicalName ~= nsname then
                table.insert(mappings[nsname], canonicalName)
            end
            for _, alias in ipairs(ns.aliases) do
                table.insert(mappings[nsname], mw.ustring.lower(alias))
            end
        end
    end
    return mappings
end


function p.matchesBlacklist(page, blacklist)
function p.matchesBlacklist(page, blacklist)
১৪ নং লাইন: ৬৪ নং লাইন:
end
end


-- প্যারামিটার ম্যাপিং রিটার্ন করার ফাংশন (এখন এটি সরাসরি ইন্টারনাল ফাংশন ব্যবহার করে)
function p.getParamMappings(useLoadData)
function p.getParamMappings(useLoadData)
local dataPage = 'মডিউল:নামস্থান শনাক্তকরণ/উপাত্ত'
    -- যেহেতু ডাটা এখন ইন-লাইন, তাই useLoadData এখানে আর মডিউল কল করবে না
if useLoadData then
    return getMappings()
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
end


-- নামস্থান প্যারামিটার পাওয়ার ফাংশন
function p.getNamespaceParameters(titleObj, mappings)
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
local mappingsKey
if titleObj.isTalkPage then
if titleObj.isTalkPage then