62 737
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
local p = {} | local p = {} | ||
-- | -- Adapte le style de la citation en fonction de la langue | ||
function sentence_lang(sentence, lang) | |||
if lang ~= "fr" then | |||
return string.format("''%s''", sentence) | |||
function | |||
if lang ~= | |||
return "'' | |||
else | else | ||
return sentence | return sentence | ||
Ligne 13 : | Ligne 10 : | ||
end | end | ||
function | -- Retourne les arguments entrés par l'utilisateur | ||
function get_args(frame) | |||
local args = {} | local args = {} | ||
Ligne 26 : | Ligne 24 : | ||
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(frame) | |||
local args = get_args(frame) | |||
-- Paramètres d'identification et de regroupement | |||
-- de la référence | |||
local attributes = { | |||
name = args["nom"], | |||
group = args["groupe"], | |||
} | |||
local lang = args["langue"] or "fr" | |||
local source = args["source"] | |||
local args | if not source then | ||
error("Paramètre source absent") | |||
end | |||
local | local game = args["jeu"] | ||
if not | if game then | ||
game = require("Module:Abréviation").name(game) | |||
if not game or game == "" then | |||
error("Valeur inconnue du paramètre jeu") | |||
end | |||
else | |||
error("Paramètre jeu absent") | |||
end | end | ||
local | local characters = {} | ||
local character | |||
for i = 1, 6 do | |||
character = args['personnage' .. i] | |||
if not character then | |||
break | |||
end | |||
table.insert(characters, character) | |||
end | end | ||
if #characters == 0 then | |||
error("Paramètre personnage absent") | |||
end | end | ||
local | local sentences = "" | ||
local | local sentence | ||
local character_index | |||
-- Maximum de 10 phrases possibles | |||
for i = 1, 10 do | |||
-- phrasei.p indique l'index du personnage | |||
-- phrasei.p indique le texte | |||
character_index = args[string.format("phrase%d.p", i)] | |||
sentence = args[string.format("phrase%d.t", i)] | |||
if not sentence or not character_index then | |||
break | |||
end | end | ||
character_index = tonumber(character_index) | |||
if not character_index then | |||
error(string.format("Paramètre phrase%d.p doit être un nombre", i)) | |||
end | end | ||
character = characters[character_index] | |||
if not character then | |||
error("Personnage non reconnu") | |||
if | |||
end | end | ||
sentences = sentences .. tostring(mw.html.create("li") | |||
:addClass("reference-dial-row") | |||
:tag("span") | |||
:addClass("reference-dial-character") | |||
:wikitext(character .. " — ") | |||
:done() | |||
:tag("span") | |||
:addClass("reference-dial-text") | |||
:wikitext(sentence_lang(sentence, lang)) | |||
:done() | |||
:allDone() | |||
) | |||
end | |||
if sentences == "" then | |||
error("Paramètre phrase absent") | |||
end | end | ||
return | sentences = '<ul class="reference-dial">' .. sentences .. "</ul>" | ||
local header = string.format( | |||
"<p>Conversation extraite du fichier %s, ''[[%s]]''.</p>", | |||
source, | |||
game | |||
) | |||
local content = header .. sentences | |||
return tostring(mw.getCurrentFrame():extensionTag( 'ref', content, attributes )) | |||
end | end | ||
return p | return p |
modifications