پودمان:Pages with authority control identifiers/تمرین
ظاهر
اینجا صفحهٔ تمرین پودمان برای پودمان:Pages with authority control identifiers (تفاوت) است. |
require('Module:No globals')
local p = {}
local ac_conf = require('Module:Authority control/تمرین').conf
local rmCats = require('Module:Suppress categories').main
local currentTitle = mw.title.getCurrentTitle()
local title = currentTitle.text
local isCat = (currentTitle.namespace == 14)
--[[==========================================================================]]
--[[ Local Utility Functions ]]
--[[==========================================================================]]
local function whichTOC( frame )
--local pageCount = mw.site.stats.pagesInCategory(title, 'pages')
--if pageCount > 1200 then
-- return frame:expandTemplate{ title = 'Large category TOC' }
--elseif pageCount > 100 then
-- return frame:expandTemplate{ title = 'Category TOC', args = { align = 'center' } }
--end
--return ''
-- standardize TOC behavior via {{CatAutoTOC}}
return frame:expandTemplate{ title = 'CatAutoTOC', args = { align = 'center' } }
end
local function redCatCheck( catName ) --catName == 'Blah', not 'Category:Blah', not '[[Category:Blah]]'
if catName and catName ~= '' and mw.title.new(catName, 14).exists == false then
return '[[رده:صفحههای دارای ردههای دادههای کتابخانهای با پیوند قرمز]]'
end
return ''
end
local function getExample(conf, id)
if id == "WORLDCATID" then
return "[https://www.worldcat.org/identities/lccn-n78039510 ورلدکت]"
else
return rmCats(conf[3](conf[5]))
end
end
--[[==========================================================================]]
--[[ Local Category-Specific Functions ]]
--[[==========================================================================]]
--For indirect use on [[Category:<catType> with multiple identifiers]],
-- i.e. on [[Category:Wikipedia articles with multiple identifiers]]
local function multiple( frame, catType, pre, post )
local txCatMore = frame:expandTemplate{ title = 'توضیح رده', args = { 'ویکیپدیا:دادههای کتابخانهای' } }
local txEmptyCat = frame:expandTemplate{ title = 'رده خالی' }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا', args = { hidden = 'yes', tracking = 'yes' } }
local txQ = frame:expandTemplate{ title = 'Q', args = { 'Q7245' } }
local txWdpl1 = frame:expandTemplate{ title = 'پیوند خصوصیت ویکیداده', args = { 'P213' } }
local txWdpl2 = frame:expandTemplate{ title = 'پیوند خصوصیت ویکیداده', args = { 'P244' } }
local txTOC = whichTOC( frame )
local ex = 'برای مثال، '..txQ..' شامل چندین شناسه برای '..txWdpl1..'، '..txWdpl2..'، و غیره است.<br/>'
local only = 'صفحهها تنها باید توسط [[پودمان:Authority control]] به این رده افزوده شوند.'
if catType and catType == 'صفحههای' then
txEmptyCat = ''
txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا' }
ex = ''
only = ''
end
local outString = txCatMore..txEmptyCat..txWPCat..txTOC..'\n'..ex..only
return (pre or '')..outString..(post or '')
end
--For use in [[Category:Pages with authority control information]],
-- i.e. on [[Category:Pages with VIAF identifiers]]
local function pages( frame, id )
if id == 'چندگانه' then
local pagesCat = 'صفحههای دارای اطلاعات کنترل مرجع'
local pagesCatFull = '[[رده:'..pagesCat..']]'..redCatCheck(pagesCat)
return multiple( frame, 'صفحههای', '', pagesCatFull )
end
for _, conf in pairs( ac_conf ) do
if conf.category == id or conf[1] == id then
local linktarget = conf.link or conf[1] .. ' (شناسه)'
local wdpl = ':d:Property:P'..conf[2]
local txCatMore = frame:expandTemplate{ title = 'اطلاعات رده', args = {'ویکیپدیا:دادههای کتابخانهای', linktarget, wdpl} }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا' }
local pagesCat = 'صفحههای دارای اطلاعات کنترل مرجع'
local outString = txCatMore..txWPCat..'\n'..
'[[رده:'..pagesCat..'|'..id..']]'..redCatCheck(pagesCat)
return outString
end
end
return ''
end
--For use in [[Category:Miscellaneous pages with authority control information]],
-- i.e. on [[Category:Miscellaneous pages with VIAF identifiers]]
local function misc( frame, id )
if id == 'چندگانه' then
local link = id
local txCatExplain = frame:expandTemplate{ title = 'توضیح رده',
args = { 'صفحهها، بهجز صفحههای کاربری اصلی یا مقالههای ویکیپدیا، با کاربرد {{[[الگو:دادههای کتابخانهای|دادههای کتابخانهای]]}} بههمراه شناسههای '..link } } -- الگوی توضیح رده یک «است» در انتهایش دارد. پس ورودیاش نباید جمله باشد. مثال: «این رده برای "فلان صفحههای بهمانشده" است
local idCat = 'صفحههای دارای شناسههای '..id
local miscCat = 'صفحههای متفرقه دارای اطلاعات دادههای کتابخانهای'
local idCatFull = '[[رده:'..idCat..']]'..redCatCheck(idCat)
local miscCatFull = '[[رده:'..miscCat..'|'..id..']]'..redCatCheck(miscCat)
return multiple( frame, 'misc', txCatExplain, idCatFull..miscCatFull )
end
for _, conf in pairs( ac_conf ) do
if conf.category == id or conf[1] == id then
local linktarget = conf.link or conf[1] .. ' (شناسه)'
local link = '[['..linktarget..'|'..conf[1]..']]'
local example = 'شناسه ' .. conf[1].. ' بهشکل '..getExample(conf,id)..' در بخش '..conf[4]..' ظاهر میشود.'
local wdpl = ':d:Property:P'..conf[2]
local txCatExplain = frame:expandTemplate{ title = 'توضیح رده',
args = { 'صفحهها، بهجز صفحههای کاربری اصلی یا مقالههای ویکیپدیا، با کاربرد {{[[الگو:دادههای کتابخانهای|دادههای کتابخانهای]]}} بههمراه شناسه '..link..'. '..example } }
local txCatMore = frame:expandTemplate{ title = 'اطلاعات رده', args = {'ویکیپدیا:دادههای کتابخانهای', wdpl} }
local txEmptyCat = frame:expandTemplate{ title = 'رده خالی' }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا', args = { hidden = 'yes', tracking = 'yes' } }
local txTOC = whichTOC( frame )
local idCat = 'مقالههای ویکیپدیا همراه شناسههای '..id
local miscCat = 'صفحههای متفرقه دارای اطلاعات دادههای کتابخانهای'
local outString = txCatExplain..txCatMore..txEmptyCat..txWPCat..txTOC..'\n'..
'صفحهها تنها باید توسط [[پودمان:Authority control]] به این رده افزوده شوند.'..
'[[رده:'..idCat..']]'..redCatCheck(idCat)..
'[[رده:'..miscCat..'|'..id..']]'..redCatCheck(miscCat)
return outString
end
end
return ''
end
--For use in [[Category:User pages with authority control information]],
-- i.e. on [[Category:User pages with VIAF identifiers]]
local function user( frame, id )
if id == 'چندگانه' then
local idCat = 'مقالههای ویکیپدیا همراه شناسههای '..id
local userCat = 'صفحههای کاربری همراه اطلاعات دادههای کتابخانهای'
local idCatFull = '[[رده:'..idCat..']]'..redCatCheck(idCat)
local userCatFull = '[[رده:'..userCat..'|'..id..']]'..redCatCheck(userCat)
return multiple( frame, 'user', '', idCatFull..userCatFull )
end
for _, conf in pairs( ac_conf ) do
if conf.category == id or conf[1] == id then
local linktarget = conf.link or conf[1] .. ' (شناسه)'
local wdpl = ':d:Property:P'..conf[2]
local txCatMore = frame:expandTemplate{ title = 'اطلاعات رده', args = {'ویکیپدیا:دادههای کتابخانهای', linktarget, wdpl} }
local txEmptyCat = frame:expandTemplate{ title = 'رده خالی' }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا', args = { hidden = 'yes', tracking = 'yes' } }
local txTOC = whichTOC( frame )
local idCat = 'صفحههای دارای شناسههای '..id
local userCat = 'صفحههای کاربری همراه اطلاعات دادههای کتابخانهای'
local outString = txCatMore..txEmptyCat..txWPCat..txTOC..'\n'..
'صفحهها تنها باید توسط [[پودمان:Authority control]] به این رده افزوده شوند.'..
'[[رده:'..idCat..']]'..redCatCheck(idCat)..
'[[رده:'..userCat..'|'..id..']]'..redCatCheck(userCat)
return outString
end
end
return ''
end
--For use in [[Category:Wikipedia articles with authority control information]],
-- i.e. on [[Category:Wikipedia articles with VIAF identifiers]]
local function wp( frame, id )
if id == 'چندگانه' then
local link = id
local txCatExplain = frame:expandTemplate{ title = 'توضیح رده', args = {'مقالههای دارای شناسههای '..link..' بوده و افزودن [[ویکیپدیا:ردهبندی#زیرردهبندی|زیررده]] به آن اشتباه'} } -- ...زیررده به آن اشتباه» است (توسط الگو چنین جملهای تولید میشود)
local idCat = 'صفحههای دارای شناسههای '..id
local wpCat = 'مقالههای ویکیپدیا همراه اطلاعات دادههای کتابخانهای'
local idCatFull = '[[رده:'..idCat..']]'..redCatCheck(idCat)
local wpCatFull = '[[رده:'..wpCat..'|'..id..']]'..redCatCheck(wpCat)
return multiple( frame, 'wp', txCatExplain, idCatFull..wpCatFull )
end
for _, conf in pairs( ac_conf ) do
if conf.category == id or conf[1] == id then
local linktarget = conf.link or conf[1] .. ' (شناسه)' local link = '[['..linktarget..'|'..conf[1]..']]'
local wdpl = ':d:Property:P'..conf[2]
local example = 'شناسه ' .. conf[1].. ' که بهشکل '..getExample(conf, id)..' در بخش '..conf[4]..' ظاهر میشود'
local txCatExplain = frame:expandTemplate{ title = 'توضیح رده', args = {'مقالههای دارای شناسه '..link..'، مثلاً '..example..' بوده و افزودن [[ویکیپدیا:ردهبندی#زیرردهبندی|زیررده]] به آن اشتباه'} }
local txCatMore = frame:expandTemplate{ title = 'توضیح رده', args = {'ویکیپدیا:دادههای کتابخانهای', wdpl} }
local txEmptyCat = frame:expandTemplate{ title = 'رده خالی' }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا', args = { hidden = 'yes', tracking = 'yes' } }
local txTOC = whichTOC( frame )
local idCat = 'صفحههای دارای شناسههای '..id
local wpCat = 'مقالههای ویکیپدیا همراه اطلاعات دادههای کتابخانهای'
local outString = txCatExplain..txCatMore..txEmptyCat..txWPCat..txTOC..'\n'..
'صفحهها تنها باید توسط [[پودمان:Authority control]] به این رده افزوده شوند.'..
'[[رده:'..idCat..']]'..redCatCheck(idCat)..
'[[رده:'..wpCat..'|'..id..']]'..redCatCheck(wpCat)
return outString
end
end
return ''
end
--For use in [[Category:Wikipedia articles with faulty authority control information]],
-- i.e. on [[Category:Wikipedia articles with faulty VIAF identifiers]]
local function wpfaulty( frame, id )
for _, conf in pairs( ac_conf ) do
if conf.category == id or conf[1] == id then
local linktarget = conf.link or conf[1] .. ' (identifier)'
local wdpl = ':d:Property:P'..conf[2]
local txCatMore = frame:expandTemplate{ title = 'توضیح رده', args = {'ویکیپدیا:دادههای کتابخانهای', linktarget, wdpl} }
local txEmptyCat = frame:expandTemplate{ title = 'رده خالی' }
local txWPCat = frame:expandTemplate{ title = 'رده ویکیپدیا', args = { hidden = 'yes', tracking = 'yes' } }
local txDirtyCat = frame:expandTemplate{ title = 'رده آلوده' }
local txTOC = whichTOC( frame )
local idCat = 'مقالههای ویکیپدیا همراه شناسههای '..id
local wpfCat = 'مقالههای ویکیپدیا همراه اطلاعات معیوب دادههای کتابخانهای'
local outString = txCatMore..txEmptyCat..txWPCat..txDirtyCat..txTOC..'\n'..
'صفحهها تنها باید توسط [[پودمان:Authority control]] به این رده افزوده شوند.'..
'[[رده:'..idCat..']]'..redCatCheck(idCat)..
'[[رده:'..wpfCat..'|'..id..']]'..redCatCheck(wpfCat)
return outString
end
end
return ''
end
--[[==========================================================================]]
--[[ Main/External Call ]]
--[[==========================================================================]]
function p.autoDetect( frame )
if isCat then
local pagesID = mw.ustring.match(title, 'صفحههای دارای شناسههای ([%w%.%- ]+)')
local miscID = mw.ustring.match(title, 'صفحههای متفرقه همراه شناسههای ([%w%.%- ]+)')
local userID = mw.ustring.match(title, 'صفحههای کاربری همراه شناسههای ([%w%.%- ]+)')
local wpfaultyID = mw.ustring.match(title, 'مقالههای ویکیپدیا همراه شناسههای معیوب ([%w%.%- ]+)')
local wpID = mw.ustring.match(title, 'مقالههای ویکیپدیا همراه شناسههای ([%w%.%- ]+)')
if pagesID then return pages( frame, pagesID )
elseif miscID then return misc( frame, miscID )
elseif userID then return user( frame, userID )
elseif wpfaultyID then return wpfaulty( frame, wpfaultyID ) --must be before wpID check, in case they both match
elseif wpID then return wp( frame, wpID ) --to keep the regex simple
else return '[[رده:صفحههای دارای رده نامعلوم شناسههای دادههای کتابخانهای]]'
end
end
return ''
end
return p