ru>Putnik (оптимизация потребления памяти за счёт замены mw.wikibase.getEntity() на mw.wikibase.getBestStatements()) |
Admin (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 10:05, 29 июня 2023
Для документации этого модуля может быть создана страница Модуль:Wikidata/url/doc
local p = {} local function formatLangRefs( options ) local langRefs = {} if options.qualifiers and options.qualifiers.P407 then for _, qualifier in ipairs( options.qualifiers.P407 ) do if ( qualifier and qualifier.datavalue and qualifier.datavalue.type == 'wikibase-entityid' ) then local qualifierId = qualifier.datavalue.value.id local wbStatus, langRefCodeClaims = pcall( mw.wikibase.getBestStatements, qualifierId, 'P218' ) if wbStatus and langRefCodeClaims then for _, claim in ipairs( langRefCodeClaims ) do if ( claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.type == 'string' ) then local langRefCode = claim.mainsnak.datavalue.value table.insert( langRefs, options.frame:expandTemplate{ title = 'ref-' .. langRefCode } ) end end end end end end return table.concat( langRefs, '​' ) end function p.formatUrlValue( context, options, value ) local moduleUrl = require( 'Module:URL' ) local langRefs = formatLangRefs( options ) if not options.length or options.length == '' then options.length = math.max( 18, 25 - #langRefs ) end return moduleUrl.formatUrlSingle( context, options, value ) .. langRefs end return p