মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত: সংশোধিত সংস্করণের মধ্যে পার্থক্য
"-- 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 = 'মডিউল:নামস্থান শনাক্তকরণ/উপাত..." দিয়ে পাতা তৈরি |
সম্পাদনা সারাংশ নেই |
||
| ১ নং লাইন: | ১ নং লাইন: | ||
-- | -- এই মডিউলটিতে [[মডিউল:বিষয়শ্রেণী পরিচালনাকারী]] এবং এর উপ-মডিউলগুলোর জন্য শেয়ারকৃত ফাংশন রয়েছে। | ||
-- | -- এতে 'নামস্থান শনাক্তকরণ' (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) | ||
-- যেহেতু ডাটা এখন ইন-লাইন, তাই useLoadData এখানে আর মডিউল কল করবে না | |||
return getMappings() | |||
end | end | ||
-- নামস্থান প্যারামিটার পাওয়ার ফাংশন | |||
function p.getNamespaceParameters(titleObj, mappings) | function p.getNamespaceParameters(titleObj, mappings) | ||
local mappingsKey | local mappingsKey | ||
if titleObj.isTalkPage then | if titleObj.isTalkPage then | ||