Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Module:MinecraftConnect » : différence entre les versions

De Nefald
Hiob (discussion | contributions)
m échappement
Hiob (discussion | contributions)
m preprocess
Ligne 4 : Ligne 4 :
     local args = frame:getParent().args
     local args = frame:getParent().args
      
      
    -- 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 12 : Ligne 11 :
     local align = mw.text.trim(args.align or '')
     local align = mw.text.trim(args.align or '')
      
      
    -- Construction de la classe CSS
     local classWrapper = 'mc-connect-wrapper mc-connect--' .. color
     local classWrapper = 'mc-connect-wrapper mc-connect--' .. color
     if align ~= '' then
     if align ~= '' then
Ligne 18 : Ligne 16 :
     end
     end
      
      
    -- Adresse serveur complète
     local serverAddress = serveur .. port
     local serverAddress = serveur .. port
      
      
     -- Construction du HTML
    -- Image Wikitext
     local wrapper = mw.html.create('div')
    local imageWikitext = frame:preprocess('[[Fichier:' .. image .. '|40px|link=|alt=Minecraft]]')
         :attr('class', classWrapper)
   
     -- Construction HTML
     local html = mw.html.create('div')
         :addClass(classWrapper)
         :attr('data-server', serverAddress)
         :attr('data-server', serverAddress)
        :node(
            mw.html.create('button')
                :addClass('mc-connect-btn')
                :attr('onclick', 'copyMinecraftServer(this)')
                :attr('aria-label', "Copier l'adresse du serveur")
                :node(
                    mw.html.create('div')
                        :addClass('mc-connect-content')
                        :wikitext(imageWikitext .. " '''" .. texte .. "'''")
                )
        )
        :node(
            mw.html.create('span')
                :addClass('mc-connect-feedback')
                :wikitext('✓ Copié !')
        )
      
      
    -- 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'})
     local styles = frame:extensionTag('templatestyles', '', {src='MinecraftConnect/styles.css'})
      
      
    -- IMPORTANT : Retourner le HTML avec tostring()
     return styles .. tostring(html)
     return styles .. tostring(wrapper)
end
end


return p
return p

Version du 10 novembre 2025 à 08:40

La documentation pour ce module peut être créée à Module:MinecraftConnect/doc

local p = {}

function p.render(frame)
    local args = frame:getParent().args
    
    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 '')
    
    local classWrapper = 'mc-connect-wrapper mc-connect--' .. color
    if align ~= '' then
        classWrapper = classWrapper .. ' mc-connect--align-' .. align
    end
    
    local serverAddress = serveur .. port
    
    -- Image Wikitext
    local imageWikitext = frame:preprocess('[[Fichier:' .. image .. '|40px|link=|alt=Minecraft]]')
    
    -- Construction HTML
    local html = mw.html.create('div')
        :addClass(classWrapper)
        :attr('data-server', serverAddress)
        :node(
            mw.html.create('button')
                :addClass('mc-connect-btn')
                :attr('onclick', 'copyMinecraftServer(this)')
                :attr('aria-label', "Copier l'adresse du serveur")
                :node(
                    mw.html.create('div')
                        :addClass('mc-connect-content')
                        :wikitext(imageWikitext .. " '''" .. texte .. "'''")
                )
        )
        :node(
            mw.html.create('span')
                :addClass('mc-connect-feedback')
                :wikitext('✓ Copié !')
        )
    
    local styles = frame:extensionTag('templatestyles', '', {src='MinecraftConnect/styles.css'})
    
    return styles .. tostring(html)
end

return p
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.