<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nb">
	<id>https://wiki.judoinfo.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata</id>
	<title>Modul:Wikidata - Revisjonshistorikk</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.judoinfo.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata"/>
	<link rel="alternate" type="text/html" href="https://wiki.judoinfo.no/index.php?title=Modul:Wikidata&amp;action=history"/>
	<updated>2026-04-19T21:00:11Z</updated>
	<subtitle>Revisjonshistorikk for denne siden</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.judoinfo.no/index.php?title=Modul:Wikidata&amp;diff=335&amp;oldid=prev</id>
		<title>Kristoffer-halmoy: Importerte én revisjon</title>
		<link rel="alternate" type="text/html" href="https://wiki.judoinfo.no/index.php?title=Modul:Wikidata&amp;diff=335&amp;oldid=prev"/>
		<updated>2015-04-05T22:44:03Z</updated>

		<summary type="html">&lt;p&gt;Importerte én revisjon&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local i18n = {&lt;br /&gt;
    [&amp;quot;errors&amp;quot;] = {&lt;br /&gt;
        [&amp;quot;property-param-not-provided&amp;quot;] = &amp;quot;Parámetro de la propiedad no proporcionado.&amp;quot;,&lt;br /&gt;
        [&amp;quot;entity-not-found&amp;quot;] = &amp;quot;Entrada no encontrada.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-claim-type&amp;quot;] = &amp;quot;Tipo de notificación desconocida.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-snak-type&amp;quot;] = &amp;quot;Tipo de snak desconocido.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-datavalue-type&amp;quot;] = &amp;quot;Tipo datavalue desconocido.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-entity-type&amp;quot;] = &amp;quot;Tipo de entrada desconocido.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-value-module&amp;quot;] = &amp;quot;Debe ajustar ambos parámetros de valor y el valor del módulo de funciones.&amp;quot;,&lt;br /&gt;
        [&amp;quot;value-module-not-found&amp;quot;] = &amp;quot;No se ha encontrado el módulo apuntado por value-module.&amp;quot;,&lt;br /&gt;
        [&amp;quot;value-function-not-found&amp;quot;] = &amp;quot;No se ha encontrado la función apuntada por value-function.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    [&amp;quot;somevalue&amp;quot;] = &amp;quot;''valor desconocido''&amp;quot;,&lt;br /&gt;
    [&amp;quot;novalue&amp;quot;] = &amp;quot;''sin valor''&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function getEntityFromId( id )&lt;br /&gt;
    if id then&lt;br /&gt;
        return mw.wikibase.getEntityObject( id )&lt;br /&gt;
    end&lt;br /&gt;
    return mw.wikibase.getEntityObject()&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function getEntityIdFromValue( value )&lt;br /&gt;
    local prefix = ''&lt;br /&gt;
    if value['entity-type'] == 'item' then&lt;br /&gt;
        prefix = 'Q'&lt;br /&gt;
    elseif value['entity-type'] == 'property' then&lt;br /&gt;
        prefix = 'P'&lt;br /&gt;
    else&lt;br /&gt;
        return formatError( 'unknown-entity-type' )&lt;br /&gt;
    end&lt;br /&gt;
    return prefix .. value['numeric-id']&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatError( key )&lt;br /&gt;
    return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. i18n.errors[key] .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
function formatStatements( options )&lt;br /&gt;
    if options.property == 'precisión' or options.property == 'breddegrad' or options.property == 'lengdegrad'  then&lt;br /&gt;
        propiedad = 'P625'&lt;br /&gt;
    else &lt;br /&gt;
        propiedad = options.property&lt;br /&gt;
    end&lt;br /&gt;
    if not propiedad then&lt;br /&gt;
        return formatError( 'property-param-not-provided' )&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    --Get entity&lt;br /&gt;
    local entity = getEntityFromId( options.entityId )&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return  ''--formatError( 'entity-not-found' )&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    if (entity.claims == nil) or (not entity.claims[propiedad]) then&lt;br /&gt;
        return '' --TODO error?&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    --Declaración de formato y concatenado limpio&lt;br /&gt;
 &lt;br /&gt;
    local propiedad = {}&lt;br /&gt;
    if options.property == 'breddegrad' or options.property == 'lengdegrad' or options.property == 'precisión' then&lt;br /&gt;
        propiedad = 'P625'&lt;br /&gt;
    else &lt;br /&gt;
        propiedad = options.property&lt;br /&gt;
    end &lt;br /&gt;
    local cadena = entity.claims[propiedad]&lt;br /&gt;
    local s = {} -- Esto es para que el índice 0 pase a ser 1. Necesario para que todo quede en el mismo orden que en ítem&lt;br /&gt;
    for k, v in pairs(cadena) do&lt;br /&gt;
        s[k+1] = v&lt;br /&gt;
    end &lt;br /&gt;
    local formattedStatements = {}&lt;br /&gt;
    for i, statement in pairs(s) do&lt;br /&gt;
        table.insert( formattedStatements, formatStatement( statement, options ) )&lt;br /&gt;
    end&lt;br /&gt;
    return mw.text.listToText( formattedStatements, options.separator, options.conjunction )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatStatement( statement, options )&lt;br /&gt;
    if not statement.type or statement.type ~= 'statement' then&lt;br /&gt;
        return formatError( 'unknown-claim-type' )&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return formatSnak( statement.mainsnak, options )&lt;br /&gt;
    --TODO reference and qualifiers&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatSnak( snak, options )&lt;br /&gt;
    if snak.snaktype == 'somevalue' then&lt;br /&gt;
        return i18n['somevalue']&lt;br /&gt;
    elseif snak.snaktype == 'novalue' then&lt;br /&gt;
        return i18n['novalue']&lt;br /&gt;
    elseif snak.snaktype == 'value' then&lt;br /&gt;
        return formatDatavalue( snak.datavalue, options )&lt;br /&gt;
    else&lt;br /&gt;
        return formatError( 'unknown-snak-type' )&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatDatavalue( datavalue, options )&lt;br /&gt;
    --Use the customize handler if provided&lt;br /&gt;
    if options['value-module'] or options['value-function'] then&lt;br /&gt;
        if not options['value-module'] or not options['value-function'] then&lt;br /&gt;
            return formatError( 'unknown-value-module' )&lt;br /&gt;
        end&lt;br /&gt;
        local formatter = require ('Module:' .. options['value-module'])&lt;br /&gt;
        if formatter == nil then&lt;br /&gt;
            return formatError( 'value-module-not-found' )&lt;br /&gt;
        end&lt;br /&gt;
        local fun = formatter[options['value-function']]&lt;br /&gt;
        if fun == nil then&lt;br /&gt;
            return formatError( 'value-function-not-found' )&lt;br /&gt;
        end&lt;br /&gt;
        return fun( datavalue.value, options )&lt;br /&gt;
    end&lt;br /&gt;
    --Default formatters&lt;br /&gt;
    if options.property == 'breddegrad' then --Para las coordenadas&lt;br /&gt;
        return datavalue.value['breddegrad']&lt;br /&gt;
    elseif options.property == 'lengdegrad' then&lt;br /&gt;
        return datavalue.value['lengdegrad']&lt;br /&gt;
     elseif options.property == 'precisión' then&lt;br /&gt;
        return datavalue.value['precision']&lt;br /&gt;
 &lt;br /&gt;
    elseif datavalue.type == 'wikibase-entityid' then&lt;br /&gt;
        return formatEntityId( getEntityIdFromValue( datavalue.value ), options )&lt;br /&gt;
    elseif datavalue.type == 'string' then&lt;br /&gt;
        return datavalue.value --TODO ids + media&lt;br /&gt;
    elseif  datavalue.value['breddegrad']  and datavalue.value['lengdegrad'] then &lt;br /&gt;
        return  marco:preprocess('{{coord|' .. datavalue.value['breddegrad'] .. '|' .. &lt;br /&gt;
                   datavalue.value['lengdegrad'] .. '|type:' .. options.tipo .. '|display=' .. &lt;br /&gt;
                   options.display ..'|format=' .. options.formato..'}}')&lt;br /&gt;
    else&lt;br /&gt;
        return formatError( 'unknown-datavalue-type' )&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatEntityId( entityId, options )&lt;br /&gt;
    local label = mw.wikibase.label( entityId )&lt;br /&gt;
 &lt;br /&gt;
    local link = mw.wikibase.sitelink( entityId )&lt;br /&gt;
    if link and  options['link'] ~=  'no' then&lt;br /&gt;
        if label then&lt;br /&gt;
            return '[[' .. link .. '|' .. label .. ']]'&lt;br /&gt;
        else&lt;br /&gt;
            return '[[' .. link .. ']]'&lt;br /&gt;
        end&lt;br /&gt;
    elseif label then&lt;br /&gt;
        return label --TODO what if no links and label + fallback language?&lt;br /&gt;
    else&lt;br /&gt;
        return ''&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
function p.formatStatements( frame )&lt;br /&gt;
    marco = frame&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local valorwikidata = formatStatements( frame.args )&lt;br /&gt;
    if args.prioridad == 'sí' and valorwikidata  ~= '' then&lt;br /&gt;
        return formatStatements( frame.args )&lt;br /&gt;
    elseif args.value and args.value ~= '' then&lt;br /&gt;
         return args.value&lt;br /&gt;
    else&lt;br /&gt;
        return formatStatements( frame.args )&lt;br /&gt;
  end  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Returns the page title of a linked page in another Wikimedia site as a string&lt;br /&gt;
-- If no wikidata page exists, or if no link exists to the given project, &lt;br /&gt;
-- the function returns nil&lt;br /&gt;
function p.sitelink(frame)&lt;br /&gt;
&lt;br /&gt;
	-- First argument is the site code ('enwiki', 'commonswiki', ...)&lt;br /&gt;
	local siteId = frame.args[1]&lt;br /&gt;
	&lt;br /&gt;
	-- Get Wikibase item connected to the current page&lt;br /&gt;
	local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
	if not entity then&lt;br /&gt;
		return nil -- no wikidata page for current item&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Get title the item is linked with in the given site&lt;br /&gt;
	return entity:getSitelink(siteId)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Returns Commons category, if any&lt;br /&gt;
function p.commonscat(frame)&lt;br /&gt;
	&lt;br /&gt;
	templateArgs = {}&lt;br /&gt;
&lt;br /&gt;
	-- if a category name is specified explicitly, we use that value&lt;br /&gt;
	if frame.args[1] and frame.args[1] ~= '' then&lt;br /&gt;
		templateArgs[1] = frame.args[1]&lt;br /&gt;
		if frame.args[2] and frame.args[2] ~= '' then&lt;br /&gt;
			templateArgs[2] = frame.args[2]&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
	-- otherwise, we fetch the category name from Wikidata&lt;br /&gt;
	else&lt;br /&gt;
&lt;br /&gt;
		-- Get Wikibase item connected to the current page&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
		if not entity then&lt;br /&gt;
			return '[[Kategori:Sider med Commonscat som mangler Wikidata-side]]'&lt;br /&gt;
		end  -- no wikidata page for current item&lt;br /&gt;
	&lt;br /&gt;
		-- Get formatted value&lt;br /&gt;
		local value = entity:formatPropertyValues( 'P373' )['value']&lt;br /&gt;
		if value == '' then  -- property not set&lt;br /&gt;
			-- Commons categories may also be stored as sitelinks&lt;br /&gt;
			value = p.sitelink({args = {'commonswiki'}})&lt;br /&gt;
			if value and mw.ustring.sub(value, 0, 9) == 'Category:' then&lt;br /&gt;
				value = mw.ustring.sub(value, 10)  -- remove namespace&lt;br /&gt;
			else&lt;br /&gt;
				value = ''  -- not a category, probably a gallery page&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if value == '' then  -- neither property nor sitelink available&lt;br /&gt;
			return '[[Kategori:Sider med Commonscat der Wikidata-siden mangler Commons-lenke]]'&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		templateArgs[1] = value&lt;br /&gt;
	&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Return formatted value using a template&lt;br /&gt;
	if frame.args['template'] then&lt;br /&gt;
		return frame:expandTemplate{&lt;br /&gt;
			title = frame.args['template'],&lt;br /&gt;
			args = templateArgs&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- or just return plain category name&lt;br /&gt;
	return templateArgs[1]&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Kristoffer-halmoy</name></author>
	</entry>
</feed>