« Module:Index template » : différence entre les versions

Contenu supprimé Contenu ajouté
m cosmétique
test de récupération des données de Wikidata
Ligne 1 :
function withWikidataLink(wikitext, item, property, category)
if wikitext == nil then
if item ~= nil and property ~= nil then
return nil
local links = {}
for _, statement in pairs(item:getBestStatements(property)) do
if statement.mainsnak.datavalue ~= nil then
local value = statement.mainsnak.datavalue.value.id
table.insert(links, displayWikidataLink(mw.wikibase.getSitelink(value), mw.wikibase.getLabel(value) or '?', category, value))
end
end
if links then
return mw.text.listToText(links)
else
return nil
end
else
return nil
end
end
new_wikitext = mw.ustring.gsub(wikitext, '%[%[([^|%]]*)%]%]', function(page)
Ligne 22 ⟶ 37 :
title = title.redirectTarget
end
localreturn itemIddisplayWikidataLink(title.fullText, label, =category, mw.wikibase.getEntityIdForTitle(title.fullText))
local tag = mw.html.create('span'):wikitext('[[:' .. title.fullText .. '|' .. label .. ']]')
end
local itemId = mw.wikibase.getEntityIdForTitle(title.fullText)
 
function displayWikidataLink(page, label, category, itemId)
local tag = mw.html.create('span')
if page == nil then
tag:wikitext(label)
else
local tag = mw.html.create('span'):wikitext('[[:' .. title.fullTextpage .. '|' .. label .. ']]')
end
if itemId ~= nil then
tag:wikitext(' [[Image:Blue pencil.svg|10px|link=d:' .. itemId .. '|Voir et modifier les données sur Wikidata]]')
Ligne 54 ⟶ 77 :
end
local item = nil
if args.wikidata_item then
item = mw.wikibase.getEntity(args.wikidata_item)
if item == nil then
mw.addWarning('L\'identifiant d\'entité Wikidata [[d:' .. args.wikidata_item .. '|' .. args.wikidata_item .. ']] mise dans le paramètre "entité Wikidata" de la page Livre: ne semble pas valide.')
end
end
 
local page = mw.title.getCurrentTitle()
local html = mw.html.create()
 
--Left part
local left = html:tag('div')
Ligne 94 ⟶ 125 :
addRow(metadataTable, 'Journal', args.titre)
else
addRow(metadataTable, 'Titre', withWikidataLink(args.titre, item, nil, 'Livres avec un lien Wikidata'))
end
else
Ligne 101 ⟶ 132 :
addRow(metadataTable, 'Sous-titre', args.sous_titre)
addRow(metadataTable, 'Volume', args.volume)
addRow(metadataTable, 'Auteur', withWikidataLink(args.auteur, item, 'P50'))
addRow(metadataTable, 'Traducteur', withWikidataLink(args.traducteur, item, 'P655'))
addRow(metadataTable, 'Éditeur', withWikidataLink(args.editeur_scientifique, item, 'P98'))
addRow(metadataTable, 'Illustrateur', withWikidataLink(args.illustrateur, item, 'P110'))
addRow(metadataTable, 'École', withWikidataLink(args.school, item, nil))
addRow(metadataTable, 'Maison d’édition', withWikidataLink(args.editeur, item, 'P123'))
addRow(metadataTable, 'Lieu d’édition', withWikidataLink(args.lieu, item, 'P291'))
addRow(metadataTable, 'Année d’édition', args.annee)
addRow(metadataTable, 'Publication originale', args.publication)