Moduulin Fr:Wikidata/Formatage entité käyttöohje
Tämä sivu on kopio. Tätä ohjetta muokataan muokkaamalla suomenkielisessä Wikipediassa olevaa alkuperäistä versiota jonka muutokset kopioituvat automaattisesti tälle sivulle. Tämä moduuli on osa ranskankielisestä Wikipediasta kopioitua Wikidata ja Interface Wikidata -moduulikokonaisuutta (ks. ohjeet ja esimerkit). Listauksen kaikista tähän liittyvistä moduuleista löydät Ranskankielisen Wikipedian Wikidata-moduulit -sivulta.
|
local p = {}
local defaultlang = mw.getContentLanguage():getCode()
local tools = require 'Module:Fr:Wikidata/Outils'
-- local getClaims = require "Module:Fr:Wikidata/Récup".getClaims -- chargé uniquement si nécessaire
local i18n = tools.i18n
local formatError = tools.formatError
function p.getLabel(entity, lang, labelformat)
if (not entity) then
return nil -- ou option de gestion des erreurs ?
end
lang = lang or defaultlang
if type(labelformat) == 'function' then
return labelformat(entity)
end
if (type(entity) == 'string') and (lang == defaultlang) then -- le plus économique
local str = mw.wikibase.label(entity)
if str then -- mw.wikibase.label() ne fonctionne pas avec les redirect https://phabricator.wikimedia.org/T157868
return str
end
end
if type(entity) == 'string' then
entity = mw.wikibase.getEntityObject(entity)
end
if entity and entity.labels and entity.labels then
return entity.labels.value, true
end
end
function p.formatEntity( entity, params )
if (not entity) then
return nil --formatError('entity-not-found')
end
local id = entity
if type(id) == 'table' then
id = id.id
end
params = params or {}
local lang = params.lang or defaultlang
local speciallabels = params.speciallabels
local displayformat = params.displayformat
local labelformat = params.labelformat
local defaultlabel = params.defaultlabel or id
local linktype = params.link
local defaultlinktype = params.defaultlink
local defaultlinkquery = params.defaultlinkquery
if speciallabels and speciallabels then --speciallabels override the standard label + link combination
return speciallabels
end
if params.displayformat == 'raw' then
return id
end
if params.displayformat == 'none' then
return ""
end
local link, label
local str = '' -- l'intégralité du text à retourner
label = p.getLabel(entity, lang, labelformat)
-- détermination du fait qu'on soit ou non en train de rendre l'élément sur la page de son article
local rendering_entity_on_its_page = tools.is_page_of_qid(id)
if not label then
if (defaultlabel == '-') then
return nil
end
link = tools.siteLink(id, 'wikidata')
return str .. ']' .. tools.addcat(i18n)
-- si pas de libellé, on met un lien vers Wikidata pour qu'on comprenne à quoi ça fait référence
end
if (linktype == '-') or rendering_entity_on_its_page then
return str .. label
end
local link = tools.siteLink(entity, linktype, lang)
if (not link) and defaultlinkquery then
defaultlinkquery.excludespecial = true
defaultlinkquery.entity = entity
local getClaims = require("Module:Fr:Wikidata/Récup").getClaims
local claims = getClaims(defaultlinkquery)
if claims then
for i, j in pairs(claims) do
local id = tools.getMainId(j)
link = tools.siteLink(id, linktype, lang)
if link then
break
end
end
end
end
if link then
return str .. ']'
end
-- on est pas sur l'article de l'entité, et on a pas de lien de site
if (defaultlinktype ~= '-') then
local linktype
local sidelink, site, langcode
if defaultlinktype then
sidelink, site, langcode = tools.siteLink(entity, linktype, lang)
else
sidelink, site, langcode = tools.siteLink(entity, 'wiki', 'en')
end
if not sidelink then
sidelink, site = tools.siteLink(entity, 'wikidata')
end
local icon, class, title = site, nil, nil -- le texte affiché du lien
if site == 'wiki' then
icon, class, title = langcode, "indicateur-langue", tools.translate('see-another-language', mw.language.fetchLanguageName(langcode, defaultlang))
elseif site == 'wikidata' then
icon, class, title = 'd', "indicateur-langue", tools.translate('see-wikidata')
else
title = tools.translate('see-another-project', site)
end
local val = ']'
return str .. label .. '<small> (' .. val .. ')</small>'
end
return str .. label
end
-- Fonction dépréciée
function p.getLink(entity, linktype, lang)
return tools.siteLink(entity, linktype, lang)
end
return p