ഘടകം:Plain sister
ഈ ഘടകത്തിന്റെ വിവരണം ഘടകം:Plain sister/വിവരണം എന്ന താളിൽ നിർമ്മിക്കാവുന്നതാണ്
local p = {}
local sites = {
-- interwiki prefix, parameter, label and site id (for Wikidata)
{ 'w', 'wikipedia', 'വിക്കിപീഡിയ ലേഖനം', 'mlwiki' },
{ 'c', 'commons', 'കോമൺസ് ചിത്രശാല', 'commonswiki' },
{ 'c:Category', 'commonscat', 'കോമൺസ് വർഗ്ഗം', 'commonswiki' },
{ 'q', 'wikiquote', 'ഉദ്ധരണികൾ', 'mlwikiquote' },
{ 'n', 'wikinews', 'വാർത്ത', 'mlwikinews' },
{ 'wikt', 'wiktionary', 'നിർവചനം', 'mlwiktionary' },
{ 'b', 'wikibooks', 'പുസ്തകം', 'mlwikibooks' },
{ 'v', 'wikiversity', 'കോഴ്സ്', 'mlwikiversity' },
{ 'wikispecies', 'wikispecies', 'ടാക്സോണമി', 'specieswiki' },
{ 'voy', 'wikivoyage', 'യാത്രാ സഹായി', 'mlwikivoyage' },
{ 'd', 'wikidata', 'വിക്കിഡാറ്റ ഐറ്റം', 'wikidatawiki' },
{ 'bibliowiki', 'wikilivres', 'ബിബ്ലിയോവിക്കി', '' }, -- wikilivres now bibliowiki
{ 'bibliowiki', 'bibliowiki', 'ബിബ്ലിയോവിക്കി', '' },
{ 'm', 'meta', 'മെറ്റാ', 'metawiki' }
}
function p.interprojetPart( frame )
local frame = frame:getParent()
local item = mw.wikibase.getEntityObject()
local links = {}
for _, site in pairs( sites ) do
local val = frame.args[site[2]] -- link provided as input parameter
if val == '' then
val = nil;
end
if not val and site[4] ~= '' and item then -- fetch it from wikidata
val = item:getSitelink( site[4] )
if site[4] == 'wikidatawiki' then
val = item.id
elseif site[4] == 'commonswiki' and val then -- we have link to commons
local catFlag = (#val>9 and string.sub(val,1,9) == 'Category:')
if (site[2]=='commonscat' and catFlag==false) or (site[2]=='commons' and catFlag==true) then
val = nil -- link is to a wrong namespace so let's nuke it
elseif (site[2]=='commonscat' and catFlag==true) then
val = string.sub(val,10) -- trim 'Category:' from the front
end
end
end
if not val and site[2] == 'commons' and item then
local statements = item:getBestStatements('P935' ) -- get commons gallery page from P935 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
if not val and site[2] == 'commonscat' and item then
local statements = item:getBestStatements('P373' ) -- get commons category page from P373 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
if val then
table.insert( links, '[[' .. site[1] .. ':' .. val .. '|' .. site[3] .. ']]' )
end
end
if #links == 0 then -- links table length is zero
return ''
end
return '<li class="sisitem">'
.. '<span class="sisicon" style="padding-right:1ex;">[[Image:Wikimedia-logo.svg|frameless|18px|link=Special:sitematrix|alt=സഹോദര സംരംഭങ്ങൾ.]]</span>'
.. '[[Special:sitematrix|സഹോദര സംരംഭങ്ങൾ]]: ' .. table.concat( links, ', ' )
.. '.</li>'
end
return p