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:Joueur » : différence entre les versions

De Nefald
Hiob (discussion | contributions)
Page créée avec « local p = {} function p.carte(frame) local args = frame:getParent().args local pseudo = args[1] or args.pseudo or "steve" local affich = args.affichage or pseudo local grade = args.grade or "" local texte = args.texte or "" local hauteur = tonumber(args.hauteur) or 60 local uuid = args.uuid or "" -- URL de l'avatar local img_url if uuid ~= "" then img_url = "https://crafatar.com/avatars/" .. uuid... »
 
Hiob (discussion | contributions)
Aucun résumé des modifications
 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


function p.carte(frame)
function p.main(frame)
    local args = frame:getParent().args
local args = frame:getParent().args
   
local pseudo = mw.text.trim(args[1] or '')
    local pseudo = args[1] or args.pseudo or "steve"
local affichage = mw.text.trim(args['affichage'] or pseudo)
    local affich  = args.affichage or pseudo
local alias = mw.text.trim(args['alias'] or '')
    local grade   = args.grade or ""
local grade = mw.text.trim(args['grade'] or '')
    local texte   = args.texte or ""
local texte = mw.text.trim(args['texte'] or '')
    local hauteur = tonumber(args.hauteur) or 60
local taille = mw.text.trim(args['taille'] or '60')
    local uuid    = args.uuid or ""
local position = mw.text.trim(args['position'] or '')
   
local mode = mw.text.trim(args['mode'] or '')
    -- URL de l'avatar
local lien = mw.text.trim(args['lien'] or '')
    local img_url
if pseudo == '' then
    if uuid ~= "" then
return '<span class="joueur-erreur">Pseudo requis</span>'
        img_url = "https://crafatar.com/avatars/" .. uuid .. "?size=120&default=MHF_Steve&overlay"
end
    else
local posClass = ''
        img_url = "https://minotar.net/avatar/" .. pseudo .. "/120"
if position == 'droite' then
    end
posClass = ' joueur-droite'
   
elseif position == 'gauche' then
    local imgsize = hauteur - 8
posClass = ' joueur-gauche'
    local font_nom  = math.floor((hauteur - 8) / 2.6)
end
    local font_grade = math.floor((hauteur - 8) / 3.8)
local lienClass = ''
   
if lien ~= '' then
    -- Construction HTML
lienClass = ' joueur-lien'
    local html = mw.html.create("div")
end
    html:addClass("joueur-banniere")
local url_avatar = 'https://minotar.net/avatar/' .. mw.uri.encode(pseudo, 'PATH') .. '/' .. taille .. '?.png'
        :css("height", hauteur .. "px")
local avatar = '[' .. url_avatar .. ' ' .. url_avatar .. ']'
   
if mode == 'avatar' then
    -- Avatar
local result = {}
    html:tag("img")
table.insert(result, '<div class="joueur-avatar-seul plainlinks' .. posClass .. '" style="--joueur-h:' .. taille .. 'px">')
        :addClass("joueur-avatar")
table.insert(result, avatar)
        :attr("src", img_url)
table.insert(result, '</div>')
        :attr("width", imgsize)
return frame:preprocess(table.concat(result))
        :attr("height", imgsize)
end
        :attr("alt", pseudo)
local aliasHtml = ''
        :done()
if alias ~= '' then
   
aliasHtml = ' <span class="joueur-alias">' .. alias .. '</span>'
    -- Bloc infos
end
    local infos = html:tag("span")
local result = {}
        :addClass("joueur-infos")
table.insert(result, '<div class="joueur-banniere plainlinks' .. posClass .. lienClass .. '" style="--joueur-h:' .. taille .. 'px">')
   
if lien ~= '' then
    -- Nom avec lien
table.insert(result, '[[' .. lien .. '|<span class="joueur-lien-overlay"></span>]]')
    local lien_nom = "[[Utilisateur:" .. pseudo .. "|" .. affich .. "]]"
end
    infos:tag("span")
table.insert(result, '<div class="joueur-avatar">')
        :addClass("joueur-nom")
table.insert(result, avatar)
        :css("font-size", font_nom .. "px")
table.insert(result, '</div>')
        :wikitext(lien_nom)
table.insert(result, '<div class="joueur-contenu">')
        :done()
table.insert(result, '<div class="joueur-nom">' .. affichage .. aliasHtml .. '</div>')
   
if grade ~= '' then
    -- Grade (optionnel)
table.insert(result, '<div class="joueur-grade">[[' .. grade .. ']]</div>')
    if grade ~= "" then
end
        infos:tag("span")
if texte ~= '' then
            :addClass("joueur-grade")
table.insert(result, '<div class="joueur-texte">' .. texte .. '</div>')
            :css("font-size", font_grade .. "px")
end
            :wikitext("[[" .. grade .. "]]")
table.insert(result, '</div>')
            :done()
table.insert(result, '</div>')
    end
return frame:preprocess(table.concat(result))
   
    -- Texte (optionnel)
    if texte ~= "" then
        infos:tag("span")
            :addClass("joueur-texte")
            :css("font-size", font_grade .. "px")
            :wikitext(texte)
            :done()
    end
   
    -- TemplateStyles
    local styles = frame:extensionTag("templatestyles", "", {src = "Modèle:Joueur/styles.css"})
   
    return styles .. tostring(html)
end
end


return p
return p

Dernière version du 20 février 2026 à 15:38

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

local p = {}

function p.main(frame)
local args = frame:getParent().args
local pseudo = mw.text.trim(args[1] or '')
local affichage = mw.text.trim(args['affichage'] or pseudo)
local alias = mw.text.trim(args['alias'] or '')
local grade = mw.text.trim(args['grade'] or '')
local texte = mw.text.trim(args['texte'] or '')
local taille = mw.text.trim(args['taille'] or '60')
local position = mw.text.trim(args['position'] or '')
local mode = mw.text.trim(args['mode'] or '')
local lien = mw.text.trim(args['lien'] or '')
if pseudo == '' then
return '<span class="joueur-erreur">Pseudo requis</span>'
end
local posClass = ''
if position == 'droite' then
posClass = ' joueur-droite'
elseif position == 'gauche' then
posClass = ' joueur-gauche'
end
local lienClass = ''
if lien ~= '' then
lienClass = ' joueur-lien'
end
local url_avatar = 'https://minotar.net/avatar/' .. mw.uri.encode(pseudo, 'PATH') .. '/' .. taille .. '?.png'
local avatar = '[' .. url_avatar .. ' ' .. url_avatar .. ']'
if mode == 'avatar' then
local result = {}
table.insert(result, '<div class="joueur-avatar-seul plainlinks' .. posClass .. '" style="--joueur-h:' .. taille .. 'px">')
table.insert(result, avatar)
table.insert(result, '</div>')
return frame:preprocess(table.concat(result))
end
local aliasHtml = ''
if alias ~= '' then
aliasHtml = ' <span class="joueur-alias">' .. alias .. '</span>'
end
local result = {}
table.insert(result, '<div class="joueur-banniere plainlinks' .. posClass .. lienClass .. '" style="--joueur-h:' .. taille .. 'px">')
if lien ~= '' then
table.insert(result, '[[' .. lien .. '|<span class="joueur-lien-overlay"></span>]]')
end
table.insert(result, '<div class="joueur-avatar">')
table.insert(result, avatar)
table.insert(result, '</div>')
table.insert(result, '<div class="joueur-contenu">')
table.insert(result, '<div class="joueur-nom">' .. affichage .. aliasHtml .. '</div>')
if grade ~= '' then
table.insert(result, '<div class="joueur-grade">[[' .. grade .. ']]</div>')
end
if texte ~= '' then
table.insert(result, '<div class="joueur-texte">' .. texte .. '</div>')
end
table.insert(result, '</div>')
table.insert(result, '</div>')
return frame:preprocess(table.concat(result))
end

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