Модуль:External links: различия между версиями

Содержимое удалено Содержимое добавлено
Быстрофикс проблемы с символом %8A, % считается как вставка захваченного значения, см. Шмигун-Вяхи, Кристина
передача таблицы значений квалификаторов вторым параметром в функцию формирования ссылки
Строка 102:
end
 
function getQualifierValues( statement, qualifierName )
local result = {}
if (statement ~= nil and statement.qualifiers ~= nil ) then
andfor qualifierName, qualifiers in pairs( statement.qualifiers ~=) nildo
for _, qualifier in pairs( qualifiers ) do
and statement.qualifiers[qualifierName] ~= nil) then
andif (qualifier.datavalue.type ~= nil
local qualifiers = statement.qualifiers[qualifierName];
for _, and qualifier.datavalue.type in pairs( qualifiers )~= donil
if and (qualifier.datavalue.value ~= nil) then
and if statement.qualifiers( not result[qualifierName] ~= nil) then
and qualifier.datavalue.type ~= nil
result[qualifierName] = {}
and qualifier.datavalue.value ~= nil) then
end
 
if ( qualifier.datavalue.type == "string" ) then
table.insert( result[ #result + 1 qualifierName] =, qualifier.datavalue.value );
elseif ( qualifier.datavalue.type == "wikibase-entityid" ) then
table.insert( result[ #result + 1 qualifierName] =, qualifier.datavalue.value.id );
else
mw table.loginsert( 'Unknown qualifier type: ' ..result[qualifierName], qualifier.datavalue.typevalue );
end
result[ #result + 1 ] = qualifier.datavalue.value;
end
end
Строка 148:
if (itemId ~= nil) then
-- language
local languagesqualifiers = getQualifierValues( statement, 'P407' );
local languages = qualifiers['P407'];
if ( not languages ) then
languages = {}
end
local resourceId = statement.mainsnak.datavalue.value.id;
if (data[resourceId] == nil) then
data[resourceId] = {};
end
table.insert( data[resourceId], { itemId = itemId, qualifiers = qualifiers, languages = languages, rank = rank} );
end
end
Строка 169 ⟶ 173 :
if ( rank ~= 'deprecated' and statement.mainsnak.datavalue) then
local itemId = statement.mainsnak.datavalue.value;
local languagesqualifiers = getQualifierValues( statement, 'P407' );
local languages = qualifiers['P407'];
if ( not languages ) then
languages = {}
end
if (data[resourceId] == nil) then
data[resourceId] = {};
end
table.insert( data[resourceId], { itemId = itemId, qualifiers = qualifiers, languages = languages, rank = rank} );
end
end
Строка 219 ⟶ 227 :
link = replace( params[3], '$1', itemId );
else
link = params[3] ( itemId, resourceData.qualifiers );
end
local linkFirstChar;
Строка 307 ⟶ 315 :
if ( rank ~= 'deprecated' ) then
local resourceId = statement.mainsnak.datavalue.value.id;
local languagesqualifiers = getQualifierValues( statement, 'P407' );
local languages = qualifiers['P407'];
if ( not languages ) then
languages = {}
end
 
-- Wikisource link ?
Строка 315 ⟶ 327 :
sourceToElementLinks[resourceId] = {};
end
table.insert( sourceToElementLinks[resourceId], { entityId = entityId, qualifiers = qualifiers, languages = languages, rank = rank } );
end
 
Строка 349 ⟶ 361 :
url = description.linkF( value );
end
local languagesqualifiers = getQualifierValues( statement, 'P407' );
local languages = qualifiers['P407'];
if ( not languages ) then
languages = {}
end
if ( sourceToElementLinks[description.id] == nil) then
sourceToElementLinks[description.id] = {};
end
table.insert( sourceToElementLinks[description.id], { url = url, qualifiers = qualifiers, languages = languages, rank = rank} );
end
end