Модуль:Wikidata/url
Перейти к навигации
Перейти к поиску
Модуль используется для форматирования значений свойств с типом «url
» из ТП:Тептар-данных.
Методы[править код]
formatUrlValue[править код]
- Используется в свойствах:
- Формат возвращаемого значения:
<url>[' ('<язык>')']
- Примеры:
- shaunmurphy.net (англ.)
formatLangRefs[править код]
- Используется в квалификаторах:
- Формат возвращаемого значения:
('<язык>')
- Примеры:
- (англ.)
local p = {}
local function formatLangRefs( options )
local langRefs = ''
if ( options.qualifiers and options.qualifiers.P407 ) then
for i, qualifier in pairs( options.qualifiers.P407 ) do
if ( qualifier
and qualifier.datavalue
and qualifier.datavalue.type == 'wikibase-entityid' ) then
local wbStatus, langRefEntity = pcall( mw.wikibase.getEntityObject, qualifier.datavalue.value.id )
if ( langRefEntity and langRefEntity.claims ) then
local WDS = require( 'Module:WikidataSelectors' );
local langRefCodeClaims = WDS.filter( langRefEntity.claims, 'P218' )
if langRefCodeClaims then
for _, claim in pairs( langRefCodeClaims ) do
if ( claim.mainsnak
and claim.mainsnak
and claim.mainsnak.datavalue
and claim.mainsnak.datavalue.type == 'string' ) then
local langRefCode = claim.mainsnak.datavalue.value
langRefs = langRefs .. '​' .. options.frame:expandTemplate{ title = 'ref-' ..langRefCode }
end
end
end
end
end
end
end
return 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