Заглавная
Случайная
Войти
Настройки
О Валленланд Вики
Отказ от ответственности
Валленланд Вики
Найти
Редактирование:
Модуль:Wikidata/Interproject
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
local p = {} function p.getWikivoyageLink( context ) return p.getSisterProjectLink( 'voy', 'wikivoyage', context ) end function p.getWikibooksLink( context ) return p.getSisterProjectLink( 'b', 'wikibooks', context ) end function p.getWikiquoteLink( context ) return p.getSisterProjectLink( 'q', 'wikiquote', context ) end function p.getWikisourceLink( context ) return p.getSisterProjectLink( 's', 'wikisource', context ) end function p.getWikipediaLink( context ) return p.getSisterProjectLink( 'w', 'wiki', context ) end function p.getWiktionaryLink( context ) return p.getSisterProjectLink( 'wikt', 'wiktionary', context ) end function p.getSisterProjectLink( projectInterwikiPrefix, projectName, context ) -- проброс параметра from откуда угодно local entityId = nil local p_context = context while p_context do if p_context.args and p_context.args.from and p_context.args.from ~= '' then if p_context.args.from == '-' then return '' end entityId = p_context.args.from else entityId = mw.wikibase.getEntityIdForCurrentPage() end p_context = p_context:getParent() end -- По умолчанию старается достать ссылку на русском, иначе - на родном (P103) local wbStatus, sitelink = pcall( mw.wikibase.getSitelink, entityId, 'ru' .. projectName ) if wbStatus and sitelink then return projectInterwikiPrefix .. ':' .. sitelink end local wbStatus, langClaims = pcall( mw.wikibase.getBestStatements, entityId, 'P103' ) if wbStatus ~= true or not langClaims then return '' end local codes = mw.loadData( 'Module:Wikidata:Dictionary/P424' ) for _, claim in ipairs( langClaims ) do if claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id then local codesById = codes[ claim.mainsnak.datavalue.value.id ] if codesById then for _, code in ipairs( codesById ) do wbStatus, sitelink = pcall( mw.wikibase.getSitelink, entityId, code .. projectName ) if wbStatus and sitelink then return projectInterwikiPrefix .. ':' .. code .. ':' .. sitelink end end end end end return '' end return p
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Валленланд Вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Валленланд Вики:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Шаблон, используемый на этой странице:
Модуль:Wikidata/Interproject/doc
(
править
)