Modification de Module:Référence

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.

Version actuelle Votre texte
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


-- Adapte le style de la citation en fonction de la langue
--------------------------------------
function sentence_lang(sentence, lang)
-----    Fonctions communes    -----
if lang ~= "fr" then
--------------------------------------
return string.format("''%s''", sentence)
 
function formatSentence(sentence, lang)
if lang ~= 'fr' then
return "''" .. sentence .. "''"
else
else
return sentence
return sentence
Ligne 10 : Ligne 13 :
end
end


-- Retourne les arguments entrés par l'utilisateur
function getArgs(frame)
function get_args(frame)
local args = {}
local args = {}


Ligne 24 : Ligne 26 :
end
end


-- Génère une référence mise en forme automatiquement en
--------------------------------------
-- fonction du type sélectionné par l'utilisateur.
function p._dialogue(args)
local lang = args["langue"] or "fr"


local source = args["source"]
function p.buildOneReference(frame)
if not source then
local args = getArgs(frame)
error("Paramètre source absent")
end
local game = args["jeu"]
local type = args['type']
if game then
if not type then
game = require("Module:Abréviation").name(game)
return 'Le paramètre type n\'est pas renseigné.'
if not game or game == "" then
error("Valeur inconnue du paramètre jeu")
end
else
error("Paramètre jeu absent")
end
end
local type = type:lower()
local characters = {}
local attributes = {}
local character
 
for i = 1, 6 do
local name = args['nom']
character = args['personnage' .. i]
if name then
if not character then
attributes['name'] = name
break
end
table.insert(characters, character)
end
end
if #characters == 0 then
local group = args['groupe']
error("Paramètre personnage absent")
if group then
attributes['group'] = group
end
end
local sentences = ""
local content = ''
local sentence
local lang = args['langue'] or 'fr'
local character_index
 
if type == 'conversation' then
-- Maximum de 10 phrases possibles
local game = args['jeu']
for i = 1, 10 do
if game then
-- phrasei.p indique l'index du personnage
game = require( 'Module:Abréviation' ).name(game)
-- phrasei.p indique le texte
if game == '' then
character_index = args[string.format("phrase%d.p", i)]
game = 'jeu ?'
sentence = args[string.format("phrase%d.t", i)]
else
game = "''[[" .. game .. "]]''"
end
else
game = 'jeu ?'
end
 
local character1 = args['personnage1'] or 'personnage1 ?'
local character2 = args['personnage2'] or 'personnage2 ?'
 
content = content .. 'Conversation entre ' .. character1 .. ' et ' .. character2 .. ' :'
content = content .. '<br/>'
if not sentence or not character_index then
for i = 1, 6 do
break
local sentence = args['phrase' .. i]
if sentence then
content = content .. '— ' .. formatSentence(sentence, lang) .. '<br/>'
else
break
end
end
end
character_index = tonumber(character_index)
if not character_index then
local file = args['fichier'] or 'fichier ?'
error(string.format("Paramètre phrase%d.p doit être un nombre", i))
 
content = content .. 'Extrait du fichier ' .. file .. ', ' .. game
elseif type == 'document' then
local quotation = args['citation']
if quotation then
content = content .. '«&nbsp;' .. formatSentence(quotation, lang) .. '&nbsp;»<br/>'
end
end
character = characters[character_index]
 
if not character then
local document = args['ouvrage'] or 'ouvrage ?'
error("Personnage non reconnu")
local author = args['auteur'] or 'auteur ?'
end
local date = args['date'] or 'date ?'
local publisher = args['éditeur'] or 'éditeur ?'
sentences = sentences .. tostring(mw.html.create("li")
local page = args['page'] or 'page ?'
:addClass("reference-dial-row")
:tag("span")
:addClass("reference-dial-character")
:wikitext(character .. " —&nbsp;")
:done()
:tag("span")
:addClass("reference-dial-text")
:wikitext(sentence_lang(sentence, lang))
:done()
:allDone()
)
end
if sentences == "" then
content = content .. author .. '. \'\'' .. document .. '\'\'. ' .. publisher .. ', ' .. date .. '. pp. ' .. page
error("Paramètre phrase absent")
end
end
sentences = '<ul class="reference-dial">' .. sentences .. "</ul>"
local header = string.format(
"Conversation extraite du fichier %s, ''[[%s]]''.",
source,
game
)
return header .. sentences
end


function p.dialogue(frame)
return frame:extensionTag( 'ref', content, attributes )
return p._dialogue(get_args(frame))
end
end


return p
return p
Notez bien que toutes les contributions à Les Archives de Vault-Tec sont considérées comme publiées sous les termes de la creative Commons - CC BY-NC-SA 3.0 (voir Les Archives de Vault-Tec:Copyrights pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source placée dans le domaine public ou d’une ressource libre similaire. N’utilisez aucun travail sous droits d’auteur sans autorisation expresse !
Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)

Modèle utilisé par cette page :