وحدة:الرئيسية
اذهب إلى التنقل
اذهب إلى البحث
يمكن إنشاء صفحة توثيق الوحدة في وحدة:الرئيسية/شرح
--وحدة لقوالب الصفحة الرئيسية local fgetFAlist = require('وحدة:الرئيسية/مختارة').getFAlist local fgetGAlist = require('وحدة:الرئيسية/جيدة').getGAlist local fgetFPlist = require('وحدة:الرئيسية/بوابات').getFPlist local fgetFPiclist = require('وحدة:الرئيسية/صور').getFPiclist local fgetFWordlist = require('وحدة:الرئيسية/كلمة').getFWordlist local a = {} function a.rnumber( frame ) d = {} if(frame.args[1] =='ga' or frame.args[1] =='جيدة' ) then d = fgetGAlist() return #d elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) then d = fgetFAlist() return #d elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then d = fgetFPlist() local nb =0 for t,s in pairs(d) do nb = nb+1 end return nb elseif (frame.args[1] =='fpic' or frame.args[1] =='صور' ) then d = fgetFPiclist() local nb =0 for t,s in pairs(d) do nb = nb+1 end return nb end end function a.rlist( frame ) d = {} if(frame.args[1] =='ga' or frame.args[1] =='جيدة' ) then d = fgetGAlist() elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) then d = fgetFAlist() end math.randomseed( os.time() ) x = math.random(1,#d) repeat x1 = math.random(1,#d) until x1 ~= x repeat x2 = math.random(1,#d) until (x2 ~= x and x2 ~= x1) return "[["..d[x1].."]] – [["..d[x].."]] – [["..d[x2].."]]" end function a.plist(frame) local c = '' local d = {} if(frame.args[1] =='ga' or frame.args[1] =='جيدة' ) then d = fgetGAlist() for _,s in ipairs(d) do c = c .. "\n# [[" .. s .. "]]" end elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) then d = fgetFAlist() for _,s in ipairs(d) do c = c .. "\n# [[" .. s .. "]]" end elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then d = fgetFPlist() for t,s in pairs(d) do c = c .. "\n# [[" ..t.."|".. s[3] .. "]]" end end return c end ---- ----اختيار مسبق/عشوائي لمقطع من مقالة جيدة/مختارة لعرضها على الصفحة الرئيسية ---- ---- _RandOne : النتيجة هي اسم عشوائي مقالة واحدة مختارة/جيدة local function _getOnepDay( frame ) d = {} math.randomseed( os.time() ) if (frame.args[1] =='dyk' or frame.args[1] =='تعلم' ) then local nbf = mw.site.stats.pagesInCategory( 'قائمة مشروع هل تعلم', 'pages' ) if(type(nbf) ~= "number") then return '' end ---- x = math.random(1,nbf) x = (math.floor(os.time()/(24*3600)) % nbf ) +1 return frame:expandTemplate{ title = 'هل تعلم/حالية', args = { x } } elseif (frame.args[1] =='fpic' or frame.args[1] =='صور' ) then d = fgetFPiclist() local nbf=0 for t,s in pairs(d) do nbf = nbf + 1 end ---- x = math.random(1,nbf) x = math.floor(os.time()/(24*3600)) % nbf local nb=0 for t,s in pairs(d) do nb = nb + 1 if(nb == x) then return frame:expandTemplate{ title = 'صورة صفحة رئيسية', args = { t, s[1], s[2] } } end end elseif (frame.args[1] =='fw' or frame.args[1] =='كلمة' ) then d = fgetFWordlist() local nbf=0 for title,items in pairs(d) do nbf = nbf + 1 end x = math.floor(os.time()/(24*3600)) % nbf local nb=0 for t,s in pairs(d) do nb = nb + 1 if(nb == x) then return frame:expandTemplate{ title = 'كلمة اليوم', args = { s[1], s[2] } } end end elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then d = fgetFPlist() local nbf=0 for title,items in pairs(d) do nbf = nbf + 1 end --- x = math.random(1,nbf) x = math.floor(os.time()/(24*3600)) % nbf local nb=0 for t,s in pairs(d) do nb = nb + 1 if(nb == x) then return frame:expandTemplate{ title = 'بوابة اليوم المختارة/قالب', args = { s[1], s[2], t , s[3] } } end end elseif(frame.args[1] =='ga' or frame.args[1] =='جيدة' ) then d = fgetGAlist() elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) then d = fgetFAlist() end ---x = math.random(1,#d) x = math.floor(os.time()/(24*3600)) % #d return x --d[x] end local function _LCount( items ) local nb = 0 for _, item in ipairs(items) do nb = nb +1 end return nb end local function _OneDay( frame ) local dayList = {} local monthList = {} local articles = {} local nbarts = 0 math.randomseed( os.time() ) if(frame.args[1] =='مختارة' or frame.args[1] =='جيدة' ) then ---- التأكد أولا بوجود مقالة مخصصة لهذا اليوم بالذات dayList = mw.loadData('وحدة:الرئيسية/'.. frame.args[1]..'/تاريخ') for date1, articles in pairs(dayList) do if( date1 == mw.getContentLanguage():formatDate('Y-n-d') ) then nbarts = _LCount(articles) if(nbarts == 1) then return articles[1] elseif nbarts > 1 then return articles[math.random(1,nbarts) ] end end end --- البحث عن ذكرى سنوية monthList = mw.loadData('وحدة:الرئيسية/'.. frame.args[1]..'/شهر/'..mw.getContentLanguage():formatDate('n')) articles = monthList[mw.getContentLanguage():formatDate('d')] if(type(articles) ~= 'table') then return '' end nbarts = _LCount(articles) if(nbarts == 0) then return '' elseif nbarts == 1 then return articles[1] else return articles[math.random(1,nbarts) ] end end return '' end function a.selectArt(frame) local title = _OneDay( frame ) if(title ~= '') then return title else return _getOnepDay( frame ) end end ---- ---- return a