<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://baripedia.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata%2FR%C3%A9f%C3%A9rences</id>
	<title>Module:Wikidata/Références - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://baripedia.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata%2FR%C3%A9f%C3%A9rences"/>
	<link rel="alternate" type="text/html" href="https://baripedia.org/index.php?title=Module:Wikidata/R%C3%A9f%C3%A9rences&amp;action=history"/>
	<updated>2026-05-08T19:05:08Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.38.6</generator>
	<entry>
		<id>https://baripedia.org/index.php?title=Module:Wikidata/R%C3%A9f%C3%A9rences&amp;diff=30898&amp;oldid=prev</id>
		<title>Arthur : 1 révision importée</title>
		<link rel="alternate" type="text/html" href="https://baripedia.org/index.php?title=Module:Wikidata/R%C3%A9f%C3%A9rences&amp;diff=30898&amp;oldid=prev"/>
		<updated>2016-01-27T20:14:13Z</updated>

		<summary type="html">&lt;p&gt;1 révision importée&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;reference = {}&lt;br /&gt;
&lt;br /&gt;
wd = wd or require &amp;quot;Module:Wikidata&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local article = require &amp;quot;Module:Wikidata/Références/classes d'articles&amp;quot;&lt;br /&gt;
local book = require &amp;quot;Module:Wikidata/Références/classes d'ouvrages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local linguistic = require &amp;quot;Module:Linguistique&amp;quot;&lt;br /&gt;
local cite = require &amp;quot;Module:Biblio&amp;quot;&lt;br /&gt;
local langcodes = mw.loadData &amp;quot;Module:Dictionnaire Wikidata/Codes langue&amp;quot;&lt;br /&gt;
local tools = require 'Module:Wikidata/Outils'&lt;br /&gt;
local entities = require 'Module:Wikidata/Formatage entité'&lt;br /&gt;
local getData = require 'Module:Wikidata/Récup'&lt;br /&gt;
&lt;br /&gt;
local function getStringStatementValues(entity, propertyId)&lt;br /&gt;
	local statements = entity:getBestStatements(propertyId)&lt;br /&gt;
	for i,statement in pairs(statements) do&lt;br /&gt;
		statements[i] = tools.getValue(statement.mainsnak)&lt;br /&gt;
	end&lt;br /&gt;
	return statements&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getStringStatementValue(entity, propertyId)&lt;br /&gt;
	local statements = getStringStatementValues(entity, propertyId)&lt;br /&gt;
	if #statements &amp;gt; 0 then&lt;br /&gt;
		return statements[1]&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getDirectItemLang(workentity, property)&lt;br /&gt;
	itemlangs = getData.getClaims{entity = workentity, property = property}&lt;br /&gt;
	if itemlangs ~= nil then&lt;br /&gt;
		return langcodes[tools.getNumericId(itemlangs[1].mainsnak)]&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasRole(statement, roleId)&lt;br /&gt;
	return statement.qualifiers and (statement.qualifiers['P518'] and tools.getId(statement.qualifiers['P518'][1]) == roleId or statement.qualifiers['P794'] and tools.getId(statement.qualifiers['P794'][1]) == roleId)&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
function reference.citeitem(entity, options)&lt;br /&gt;
	if not entity then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	entity = tools.getEntity(entity)&lt;br /&gt;
	if not entity then&lt;br /&gt;
		return &amp;quot;invalid entity id&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--work entity if it exists&lt;br /&gt;
	local workEntity = nil&lt;br /&gt;
	local workClaims = getData.getClaims{entity = entity, property = 'P629'}&lt;br /&gt;
	if workClaims ~= nil then&lt;br /&gt;
		workEntity = tools.getEntity(tools.getMainId(workClaims[1]))&lt;br /&gt;
	end&lt;br /&gt;
	local journalEntity = nil&lt;br /&gt;
	local journalClaims = getData.getClaims{entity = entity, property = 'P1433'}&lt;br /&gt;
	if journalClaims ~= nil then&lt;br /&gt;
		journalEntity = tools.getEntity(tools.getMainId(journalClaims[1]))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local translator = wd.formatStatements{entity = entity, property = 'P655', defaultlink = '-'}&lt;br /&gt;
	local illustrator = wd.formatStatements{entity = entity, property = 'P110', defaultlink = '-'}&lt;br /&gt;
	local preface = ''&lt;br /&gt;
	local postface = ''&lt;br /&gt;
	local photographe = ''&lt;br /&gt;
	local authors = {}&lt;br /&gt;
	local are_director = {}&lt;br /&gt;
	local responsability = {}&lt;br /&gt;
	for _,statement in pairs(entity:getBestStatements('P50')) do&lt;br /&gt;
		table.insert(authors, wd.formatStatement(statement, {defaultlink = '-'}))&lt;br /&gt;
		table.insert(are_director, '')&lt;br /&gt;
		--qualifier pour la responsabilité&lt;br /&gt;
		if statement.qualifiers and statement.qualifiers['P518'] then&lt;br /&gt;
			table.insert(responsability, wd.formatSnak(statement.qualifiers['P518'][1], {defaultlink = '-'}))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(responsability, '')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for _,statement in pairs(entity:getBestStatements('P98')) do&lt;br /&gt;
		table.insert(authors, wd.formatStatement(statement, {defaultlink = '-'}))&lt;br /&gt;
		table.insert(are_director, 'y')&lt;br /&gt;
		table.insert(responsability, '')&lt;br /&gt;
	end&lt;br /&gt;
	for _,statement in pairs(entity:getBestStatements('P767')) do&lt;br /&gt;
		if hasRole(statement, 'Q670787') or hasRole(statement, 'Q19839393') then --préface/préfacier&lt;br /&gt;
			preface = wd.formatStatement(statement, {defaultlink = '-'})&lt;br /&gt;
		elseif hasRole(statement, 'Q7234272') then --postface&lt;br /&gt;
			postface = wd.formatStatement(statement, {defaultlink = '-'})&lt;br /&gt;
		elseif hasRole(statement, 'Q33231') or hasRole(statement, 'Q125191') then --photographe/photographie&lt;br /&gt;
			photographe = wd.formatStatement(statement, {defaultlink = '-'})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local isbns = getStringStatementValues(entity, 'P212')&lt;br /&gt;
	for _,isbn in pairs(getStringStatementValues(entity, 'P957')) do&lt;br /&gt;
		table.insert(isbns, isbn)&lt;br /&gt;
	end&lt;br /&gt;
	local issns = {}&lt;br /&gt;
	if journalEntity then&lt;br /&gt;
		issns = getStringStatementValues(journalEntity, 'P236')&lt;br /&gt;
	end&lt;br /&gt;
	if #issns == 0 then&lt;br /&gt;
		issns = getStringStatementValues(entity, 'P236')&lt;br /&gt;
	end&lt;br /&gt;
	local oclc = getStringStatementValue(entity, 'P243')&lt;br /&gt;
	local bnf = getStringStatementValue(entity, 'P268')&lt;br /&gt;
	local lccn = getStringStatementValue(entity, 'P1144')&lt;br /&gt;
	local dnb = getStringStatementValue(entity, 'P1292')&lt;br /&gt;
	local doi = getStringStatementValue(entity, 'P356')&lt;br /&gt;
	local pmid = getStringStatementValue(entity, 'P698')&lt;br /&gt;
	local jstor = getStringStatementValue(entity, 'P888')&lt;br /&gt;
	local bibcode = nil&lt;br /&gt;
	if journalEntity then&lt;br /&gt;
		bibcode = getStringStatementValues(entity, 'P1300')&lt;br /&gt;
	end&lt;br /&gt;
	if not bibcode then&lt;br /&gt;
		bibcode = getStringStatementValues(entity, 'P1300')&lt;br /&gt;
	end&lt;br /&gt;
	local arxiv = getStringStatementValue(entity, 'P818')&lt;br /&gt;
	local pmcid = getStringStatementValue(entity, 'P932')&lt;br /&gt;
	&lt;br /&gt;
	local ednumber = wd.formatStatements{entity = entity, property = 'P393'}&lt;br /&gt;
	local publisher = wd.formatStatements{entity = entity, property = 'P123', defaultlink = '-'}&lt;br /&gt;
	local journal = wd.formatStatements{entity = entity , property = 'P1433', defaultlink = '-'}&lt;br /&gt;
	--TODO fix local journalnumber = wd.formatStatements{entity = entity, property = 'P433'}&lt;br /&gt;
	--TODO fix local volume = wd.formatStatements{entity = entity, property = 'P478'}&lt;br /&gt;
	local publishdate = wd.formatStatements{entity = entity, property = 'P577', linktopic = '-'}&lt;br /&gt;
	local publishplace = wd.formatStatements{entity = entity, property = 'P291', defaultlink = '-'}&lt;br /&gt;
	local pagenum = wd.formatStatements{entity = entity, property = 'P1104'}&lt;br /&gt;
	local title = wd.formatStatements{entity = entity, property = 'P1476', numval = 1 } or entities.getLabel(entity)&lt;br /&gt;
	local titlelink = entities.getLink(entity)&lt;br /&gt;
	if not titlelink and workEntity then -- si pas de lien, on peut essayer de voir si c'est l'édition de quelque chose d'autre&lt;br /&gt;
		titlelink = entities.getLink(workEntity)&lt;br /&gt;
	end&lt;br /&gt;
	if title and titlelink then&lt;br /&gt;
		title = '[[' .. titlelink .. '|' .. title .. ']]'&lt;br /&gt;
	end&lt;br /&gt;
	local subtitle = wd.formatStatements{entity = entity, property = 'P1680'}&lt;br /&gt;
	local url = wd.formatStatements{entity = entity, property = 'P854', numval = 1} or wd.formatStatements{entity = entity, property = 'P953', numval = 1 }&lt;br /&gt;
	local wikisource = entity:getSitelink('frwikisource')&lt;br /&gt;
	local language = getDirectItemLang(entity, 'P407')&lt;br /&gt;
	if not language and journalEntity then&lt;br /&gt;
		language = getDirectItemLang(journalEntity, 'P407')&lt;br /&gt;
	end&lt;br /&gt;
	local originalLanguage = getDirectItemLang(entity, 'P364') --TODO: be clever? or getDirectItemLang(workEntity, 'P407') or getDirectItemLang(workEntity, 'P364')&lt;br /&gt;
	local originalTitle = nil&lt;br /&gt;
	if workEntity and originalLanguage then&lt;br /&gt;
		originalTitle = wd.formatStatements{entity = workEntity, property = 'P1476', numval = 1 } or workEntity:getLabel(originalLanguage)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- choose relevant cite type&lt;br /&gt;
	local entitytype = wd.formatStatements{property = 'P31', entity = entity, numval = 1, displayformat = 'raw'}&lt;br /&gt;
	local funtype&lt;br /&gt;
&lt;br /&gt;
	if (entitytype == &amp;quot;Q3331189&amp;quot;) then --book edition&lt;br /&gt;
		funtype = cite.ouvrage&lt;br /&gt;
		&lt;br /&gt;
		-- TODO : gérer l'édition et l'élément de l'oeuvre. &lt;br /&gt;
		&lt;br /&gt;
	elseif book.is_book_class(entitytype) then -- ouvrage sans édition connue ?&lt;br /&gt;
		&lt;br /&gt;
		-- TODO : gérer le cas ou un ouvrage est cité mais que Wikidata en connait des éditions.&lt;br /&gt;
		-- TODO : refuser ce genre d'items ?&lt;br /&gt;
		&lt;br /&gt;
		funtype = cite.ouvrage&lt;br /&gt;
		&lt;br /&gt;
	elseif article.is_article_class(entitytype) then -- article&lt;br /&gt;
		funtype = cite.article&lt;br /&gt;
	else -- default: output a very simple display&lt;br /&gt;
		local parameters = authors&lt;br /&gt;
		if title then &lt;br /&gt;
			 table.insert(parameters, '&amp;lt;i&amp;gt;' .. title .. '&amp;lt;/i&amp;gt;')&lt;br /&gt;
		end&lt;br /&gt;
		if publisher then&lt;br /&gt;
			table.insert(parameters, publisher)&lt;br /&gt;
		end&lt;br /&gt;
		if publishplace then&lt;br /&gt;
			table.insert(parameters, publishplace)&lt;br /&gt;
		end&lt;br /&gt;
		if publishdate then&lt;br /&gt;
			table.insert(parameters, publishdate)&lt;br /&gt;
		end&lt;br /&gt;
		if options['page'] then&lt;br /&gt;
			table.insert(parameters, 'p.' .. options['page'])&lt;br /&gt;
		end&lt;br /&gt;
		if options['accessdate'] then&lt;br /&gt;
			table.insert(parameters, 'consulté le ' .. options['accessdate'])&lt;br /&gt;
		end&lt;br /&gt;
		return linguistic.conj(parameters, 'comma')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local parameters = {&lt;br /&gt;
		['traducteur'] = translator,&lt;br /&gt;
		['illustrateur'] = illustrator,&lt;br /&gt;
		['préface'] = preface,&lt;br /&gt;
		['postface'] = postface,&lt;br /&gt;
		['photographe'] = photographe,&lt;br /&gt;
		['titre'] = title,&lt;br /&gt;
		['sous-titre'] = subtitle,&lt;br /&gt;
		--['volume'] = volume,&lt;br /&gt;
		['date'] = publishdate,&lt;br /&gt;
		['lieu'] = publishplace,&lt;br /&gt;
		['périodique'] = journal,&lt;br /&gt;
		--['numéro'] = journalnumber,&lt;br /&gt;
		[&amp;quot;numéro d'édition&amp;quot;] = ednumber,&lt;br /&gt;
		['éditeur'] = publisher,&lt;br /&gt;
		['pages totales'] = pagenum,&lt;br /&gt;
		['lire en ligne'] = url,&lt;br /&gt;
		['wikisource'] = wikisource,&lt;br /&gt;
		['isbn'] = isbn,&lt;br /&gt;
		['isbn2'] = isbn2,&lt;br /&gt;
		['issn'] = issn,&lt;br /&gt;
		['oclc'] = oclc,&lt;br /&gt;
		['bnf'] = bnf,&lt;br /&gt;
		['lccn'] = lccn,&lt;br /&gt;
		['dnb'] = dnb,&lt;br /&gt;
		['doi'] = doi,&lt;br /&gt;
		['pmid'] = pmid,&lt;br /&gt;
		['jstor'] = jstor,&lt;br /&gt;
		['bibcode'] = bibcode,&lt;br /&gt;
		['arxiv'] = arxiv,&lt;br /&gt;
		['pmcid'] = pmcid,&lt;br /&gt;
		['page'] = options['page'],&lt;br /&gt;
		['langue'] = language,&lt;br /&gt;
		['langue originale'] = originalLanguage,&lt;br /&gt;
		['titre original'] = originalTitle,&lt;br /&gt;
		['plume'] = options['plume']&lt;br /&gt;
	}&lt;br /&gt;
	for i,isbn in pairs(isbns) do&lt;br /&gt;
		parameters['isbn' .. i] = isbn&lt;br /&gt;
	end&lt;br /&gt;
	for i,issn in pairs(issns) do&lt;br /&gt;
		parameters['issn' .. i] = issn&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- try to find if there is an author set in options&lt;br /&gt;
	local setAuthors = true&lt;br /&gt;
	for i=1,15 do&lt;br /&gt;
		if options['auteur' .. i]  or options['directeur' .. i] or options['responsabilité' .. i] then&lt;br /&gt;
			authorsAlreadySets = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if setAuthors then&lt;br /&gt;
		for i,author in pairs(authors) do&lt;br /&gt;
			parameters['auteur' .. i] = author&lt;br /&gt;
			parameters['directeur' .. i] = are_director[i]&lt;br /&gt;
			parameters['responsabilité' .. i] = responsability[i]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for parameter,value in pairs(options) do&lt;br /&gt;
		parameters[parameter] = value&lt;br /&gt;
	end&lt;br /&gt;
	local val = funtype(parameters)&lt;br /&gt;
&lt;br /&gt;
	if val then&lt;br /&gt;
		return wd.addRefAnchor(wd.addLinkback(val, entity), tools.EntityId(entity))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tools.formatError()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- pour tester&lt;br /&gt;
function reference.citeItem(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	return reference.citeitem(args[1], args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return reference&lt;/div&gt;</summary>
		<author><name>Arthur</name></author>
	</entry>
</feed>