« Module:Biblio/Références » : différence entre les versions

Contenu supprimé Contenu ajouté
formatIsxn : ajout de paramètre 'sansLabel' pour désactiver le lien vers la page isxn, pour les modèles RechercheIsxn
Ajout sudoc et ismn
Ligne 1 :
-- Les fonctions de ce module sont destinées à être utilisées par un autre module.
-- Leur paramètre d'entrée est une table simple (args), voire une chaînechaine (oclc, bnf...)
 
local References = { }
Ligne 31 :
end
 
function References.isValidIsmn10( ismn )
local temp = 9
if ismn:match( 'M%d%d%d%d%d%d%d%d%d' ) then
for i = 2, 10 do
temp = temp + ( 1 + 2 * ( i % 2 ) ) * ismn:sub( i, i )
end
end
mw.log( temp )
return temp % 10 == 0
end
-- Teste si une chaine ISBN est valide
function References.checkisbn( isbn_str )
Ligne 69 ⟶ 80 :
issn_str = issn_str:gsub( '-', '' ) -- supprime les traits d’union et espaces
return References.is_valid_isxn( issn_str, 8 )
end
end
return false
end
 
-- Teste si une chaine ISMN est valide
function References.checkismn( ismn_str )
if type( ismn_str ) == 'string' then
ismn_str = ismn_str:gsub( '[-%s]', '' ) -- supprime les traits d’union et espaces
if ismn_str:len() == 10 then
return References.isValidIsmn10( ismn_str, 10 )
elseif ismn_str:match( '^9790' ) then
return References.checkean13( ismn_str )
end
end
Ligne 176 ⟶ 201 :
else
page = page .. ' '
end
return page .. mw.text.listToText( liste )
end
Ligne 232 ⟶ 257 :
'<span class="plainlinks noarchive">[http://worldcat.org/issn/%s&lang=fr %s]</span>',
'[[International Standard Serial Number#ISSN électronique|e-ISSN]]'
)
end
 
-- voir Modèle:ISMN
-- renvoie une liste de chaines formant le résultat du modèle une fois concaténées
function References.ismn( args, validArg )
return formatIsxn(
args,
validArg,
'ismn',
'[[:Catégorie:Ouvrage avec ISBN invalide|ISMN invalide]]',
References.checkismn,
'[[Spécial:Ouvrages de référence/%s|<span class="nowrap">%s</span>]]',
'[[International Standard Music Number|ISMN]]'
)
end
Ligne 359 ⟶ 398 :
function References.asin( asin )
return databaseExterne( asin, '[[Amazon Standard Identification Number|ASIN]]', 'www.amazon.fr/s/?url=search-alias&lang=fr&field-keywords=' )
end
 
function References.sudoc( sudoc )
return databaseExterne( sudoc, '[[Système universitaire de documentation|SUDOC]]', 'www.sudoc.fr/' )
end
 
Ligne 408 ⟶ 451 :
References.ean( args, validArg ),
References.issn( args, validArg ),
References.eissn( args, validArg ),
References.ismn( args, validArg )
)
Ligne 425 ⟶ 469 :
References.arxiv( args.arxiv ),
References.asin( args.asin ),
References.sudoc( args.sudoc ),
References.wikisource( args.wikisource )
)