Модуль:Wikidata/url

Материал из Тептар — свободной энциклопедии
< Модуль:Wikidata
Версия от 12:07, 8 февраля 2022; Adam (обсуждение | вклад) (Новая страница: «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...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Модуль используется для форматирования значений свойств с типом «url» из ТП:Тептар-данных.

Методы[править код]

formatUrlValue[править код]

  • Используется в свойствах:
  • Формат возвращаемого значения:
    <url>[' ('<язык>')']
    
  • Примеры:

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 .. '&#8203;' .. 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