Дополнительные действия
ru>Putnik (исправление проверки на бейджи для статей, не привязанных к элементу) |
м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 09:53, 24 октября 2023
Для документации этого модуля может быть создана страница Модуль:Wikidata/littleutils/doc
local p = {} -- Возращает ID значения свойства (Qxxx) -- Аргументы: id элемента (Qxxx), id свойства (Pxxx) function p.getValueId( frame ) local entityId, propertyId = frame.args[ 1 ], frame.args[ 2 ] local statements = mw.wikibase.getBestStatements( entityId, propertyId ) if statements and statements[ 1 ] then return statements[ 1 ].mainsnak.datavalue.value.id end end -- Возращает имя категории, фильтруя вывод шаблонов {{wikidata/}}. Например: {{wikidata/p19}}, {{wikidata/p20}} -- Аргумент: номер свойства в названии шаблона ('p19' и т.п.) function p.filterCategoryName( frame ) local s = mw.getCurrentFrame():expandTemplate { title='wikidata/' .. frame.args[ 1 ] } s = s:gsub( '^.-(Категория:[^]]+).-$', '%1' ) return s end -- Логика проверки на наличие нужного значка для текущей страницы, может использоваться из других модулей function p.checkBadgeImpl( badgeId ) local entityId = mw.wikibase.getEntityIdForCurrentPage() if not entityId then return false end local badges = mw.wikibase.getBadges( entityId, 'ruwiki' ) for _, valueId in ipairs( badges ) do if valueId == badgeId then return true end end return false end -- Проверяет на наличие нужного значка для текущей страницы и выводит штрафную категорию, если его нет -- Аргументы: id значка (Qxxx), название категории без пространства имён function p.checkBadge( frame ) local badgeId, penaltyCategory = frame.args[ 1 ], frame.args[ 2 ] if p.checkBadgeImpl( badgeId ) then return '' end return '[[Категория:' .. penaltyCategory .. ']]' end return p