المزيد من الإجراءات
يمكن إنشاء صفحة توثيق الوحدة في وحدة:MonthCategoryNav/شرح
local p = {}
local check = {}
function make_table(nav,key , month_number )
local rows = "[[:تصنيف:يناير|يناير]] · [[:تصنيف:فبراير|فبراير]] · [[:تصنيف:مارس|مارس]] · [[:تصنيف:أبريل|أبريل]] · [[:تصنيف:مايو|مايو]] · [[:تصنيف:يونيو|يونيو]] · [[:تصنيف:يوليو|يوليو]] · [[:تصنيف:أغسطس|أغسطس]] · [[:تصنيف:سبتمبر|سبتمبر]] · [[:تصنيف:أكتوبر|أكتوبر]] · [[:تصنيف:نوفمبر|نوفمبر]] · [[:تصنيف:ديسمبر|ديسمبر]]"
local key2 = "[[شهر|الشهور]]"
local month_number = tostring(month_number)
if #month_number == 1 then
month_number = "0" .. month_number
end
Table = mw.html.create( 'table' ) -- style='float:left
--:addClass('wikitable')
:addClass('infobox')
:attr('clear', "left")
:css( 'border', '1' )
:css( 'width', '40%' )
:css( 'float', 'left' )
if key ~= "" then
key2 = mw.ustring.gsub( key , "key", "شهور ")
cat_title = mw.ustring.gsub( key , "key", "") .. " حسب الشهر"
Cat = ""
if mw.title.new(cat_title).exists then
Cat = " [[".. cat_title .. "|" .. month_number .. "]]"
mw.log(Cat)
end
key2 = mw.ustring.gsub( key2 , "تصنيف:", "")
end
if nav ~= "" and key ~= "تصنيف:key" then
Table:tag('th')
--:css('background-color', "#f3f3f3" )
:css('background-color', "#f3f3f3" )
:css('text-align', "center" )
:attr('colspan', 2)
:tag("span")
:addClass('nowrap')
:wikitext(key2 .. Cat)
:done()
:done()
Table:tag('tr')
:tag('td')
:attr('colspan', 2)
:css('text-align', "center" )
:wikitext(nav)
:done()
:done()
end
Table:tag('tr')
--:css('background-color', "#f3f3f3" )
:tag('td')
:css('background-color', "#f3f3f3" )
:css('text-align', "right" )
:wikitext("[[شهر|الشهور]]")
:done()
:tag('td')
:css('text-align', "center" )
:addClass('nowrap')
:wikitext(rows)
:done()
:done()
return tostring(Table)
end
function oneline(cat , month)
local link = cat
local catepage = mw.title.new(cat)
if catepage.exists then
link = '[[:' .. cat .. "|" .. month .. "]]"
table.insert(check ,link )
else
link = month
end
mw.log( "Module:MonthCategoryNav: " .. link .." cat " .. cat)
return link
end
function find_duplicate( text )
text = mw.ustring.gsub( text , 'تصنيف شهر', 'MonthCategoryNav' )
local cat = ""
pattern = string.format ('({{%%s*%s)', "MonthCategoryNav");
_, total = mw.ustring.gsub (text, pattern, '%1');
if total > 1 then
cat = "[[تصنيف:تصنيفات بها قالب:تصنيف شهر مكرر]]"
end
return cat
end
function p.nav(frame)
local months = {"يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"}
local category = frame.args[1]
local page_title_object = mw.title.getCurrentTitle();
local text = page_title_object:getContent();
if not category or category == "" then
title = page_title_object.text
mw.log( "Module:MonthCategoryNav: title " .. title)
--if string.find(title, "تصنيف:")
if page_title_object.namespace == 14
then category = "تصنيف:" .. title
end
end
local okay = false
local str_month_number = ""
local str_month = ""
local key = ""
local nav = ""
--local nav = "يناير · فبراير · مارس · أبريل · مايو · يونيو · يوليو · أغسطس · سبتمبر · أكتوبر · نوفمبر · ديسمبر"
local ttable = {}
if category and category ~= ''
then
for k, month in pairs(months) do
if string.find(category, month) then
str_month = month
str_month_number = k
mw.log( "Module:MonthCategoryNav: str_month" .. str_month)
okay = true
end
end
if str_month ~= "" then
key = mw.ustring.gsub( category , str_month , "key" )
for k, month in pairs(months) do
cas = mw.ustring.gsub( category , str_month, month)
cat = oneline(cas , month)
table.insert(ttable ,cat )
end
nav = mw.text.listToText( ttable, " · " , " · " )
end
end
mw.log( "key:" .. key )
Table = make_table(nav , key , str_month_number )
if #check == 1 then
Table = Table .. "[[تصنيف:قوالب بحاجة لمراجعة]]"
end
Table = Table .. find_duplicate(text)
return Table
end
return p