Модуль:Wikidata.sort
Игътибар! Бу иң еш кулланылган модульләрнең берсе. Аның һәр үзгәртелүе «Викимедиа Фондының» серверларына эш өсти. Зинһар, нәрсә эшләгәнегезне аңлагыз һәм махсус өйрәнү урыннарында татып карагыз.
|
Бу — мәкалә төпчеге. Сез мәкаләне үзгәртеп һәм мәгълүмат өстәп, Википедия проектына ярдәм итә аласыз. Мөмкинлек булса, бу искәрмәне төгәлрәккә алыштырырга кирәк.
|
local p={}
-- делаем из snak строку для сравнения
function p.renderSnak(snak)
return (snak and snak.datavalue and snak.datavalue.value and snak.datavalue.value.time) or mw.wikibase.renderSnak(snak)
end
-- запускаем selectClaims стандартный, а потом сортировку
function p.selectClaims( context, options, propertySelector )
local claims= context.selectClaimsDefault( options, propertySelector );
if claims ~= nil then
table.sort(claims, function (a,b) return p.renderSnak(a.qualifiers[options.sort][1])<p.renderSnak(b.qualifiers[options.sort][1]) end );
end
return claims;
end
-- замена selectClaims
function p.changeselectClaims(context, options)
options.sort = string.upper(options.sort)
context.selectClaimsDefault = context.selectClaims
context.selectClaims = function( options, propertyId ) return p.selectClaims( context, options, propertyId ) end;
end
-- для тестовых целей
function p.formatSortProperty( context, options )
if(options.sort) then p.changeselectClaims(context,options) end
return context.formatPropertyDefault(context,options);
end
return p