« Module:MinecraftConnect » : différence entre les versions
De Nefald
Autres actions
Page créée avec « local p = {} function p.render(frame) local args = frame:getParent().args -- Récupération des paramètres local serveur = mw.text.trim(args.serveur or '') local port = mw.text.trim(args.port or ':25565') local texte = mw.text.trim(args.texte or "Copier l'adresse") local image = mw.text.trim(args.image or 'Minecraft-icon.svg') local color = mw.text.trim(args.color or 'minecraft') local align = mw.text.trim(args.align or '')... » |
m échappement |
||
| Ligne 4 : | Ligne 4 : | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
-- Récupération des paramètres | -- Récupération des paramètres avec trim | ||
local serveur = mw.text.trim(args.serveur or '') | local serveur = mw.text.trim(args.serveur or '') | ||
local port = mw.text.trim(args.port or ':25565') | local port = mw.text.trim(args.port or ':25565') | ||
| Ligne 21 : | Ligne 21 : | ||
local serverAddress = serveur .. port | local serverAddress = serveur .. port | ||
-- Construction du HTML | -- Construction du HTML | ||
local | local wrapper = mw.html.create('div') | ||
: | :attr('class', classWrapper) | ||
:attr('data-server', serverAddress) | :attr('data-server', serverAddress) | ||
-- Bouton | -- Bouton principal | ||
local button = | local button = wrapper:tag('button') | ||
: | :attr('class', 'mc-connect-btn') | ||
:attr('onclick', 'copyMinecraftServer(this)') | :attr('onclick', 'copyMinecraftServer(this)') | ||
:attr('aria-label', "Copier l'adresse du serveur") | :attr('aria-label', "Copier l'adresse du serveur") | ||
-- | -- Div interne du bouton | ||
local content = button:tag('div') | local content = button:tag('div') | ||
: | :attr('class', 'mc-connect-content') | ||
-- | -- Ajout de l'image et du texte | ||
content:wikitext('[[Fichier:' .. image .. '|40px|link=|alt=Minecraft]] ') | content:wikitext('[[Fichier:' .. image .. '|40px|link=|alt=Minecraft]]') | ||
content:wikitext(" '''") | |||
content:wikitext(texte) | |||
content:wikitext("'''") | |||
-- | -- Fermeture explicite des tags | ||
content: | content:done() | ||
button:done() | |||
-- Message de feedback | -- Message de feedback | ||
wrapper:tag('span') | |||
: | :attr('class', 'mc-connect-feedback') | ||
:wikitext('✓ Copié !') | :wikitext('✓ Copié !') | ||
-- | -- TemplateStyles | ||
local styles = frame:extensionTag('templatestyles', '', {src='MinecraftConnect/styles.css'}) | local styles = frame:extensionTag('templatestyles', '', {src='MinecraftConnect/styles.css'}) | ||
return styles .. tostring( | -- IMPORTANT : Retourner le HTML avec tostring() | ||
return styles .. tostring(wrapper) | |||
end | end | ||
return p | return p | ||
Version du 10 novembre 2025 à 08:38
La documentation pour ce module peut être créée à Module:MinecraftConnect/doc
local p = {}
function p.render(frame)
local args = frame:getParent().args
-- Récupération des paramètres avec trim
local serveur = mw.text.trim(args.serveur or '')
local port = mw.text.trim(args.port or ':25565')
local texte = mw.text.trim(args.texte or "Copier l'adresse")
local image = mw.text.trim(args.image or 'Minecraft-icon.svg')
local color = mw.text.trim(args.color or 'minecraft')
local align = mw.text.trim(args.align or '')
-- Construction de la classe CSS
local classWrapper = 'mc-connect-wrapper mc-connect--' .. color
if align ~= '' then
classWrapper = classWrapper .. ' mc-connect--align-' .. align
end
-- Adresse serveur complète
local serverAddress = serveur .. port
-- Construction du HTML
local wrapper = mw.html.create('div')
:attr('class', classWrapper)
:attr('data-server', serverAddress)
-- Bouton principal
local button = wrapper:tag('button')
:attr('class', 'mc-connect-btn')
:attr('onclick', 'copyMinecraftServer(this)')
:attr('aria-label', "Copier l'adresse du serveur")
-- Div interne du bouton
local content = button:tag('div')
:attr('class', 'mc-connect-content')
-- Ajout de l'image et du texte
content:wikitext('[[Fichier:' .. image .. '|40px|link=|alt=Minecraft]]')
content:wikitext(" '''")
content:wikitext(texte)
content:wikitext("'''")
-- Fermeture explicite des tags
content:done()
button:done()
-- Message de feedback
wrapper:tag('span')
:attr('class', 'mc-connect-feedback')
:wikitext('✓ Copié !')
-- TemplateStyles
local styles = frame:extensionTag('templatestyles', '', {src='MinecraftConnect/styles.css'})
-- IMPORTANT : Retourner le HTML avec tostring()
return styles .. tostring(wrapper)
end
return p