Module:Image4

La bibliothèque libre.

La documentation pour ce module peut être créée à Module:Image4/Documentation

local p = {}
local szMsg = ''
local szCode = ''

function p.Construire( frame )

    ------------------------------------------------------------
    -- Noter les paramètres nommés dans le code du modèle :
    --    |namespace=
    ------------------------------------------------------------
    local szModeleNamespace = frame.args.namespace

    local args = mw.getCurrentFrame():getParent().args

    -------------------------------------------------------
    -- Noter les paramètres sans nom dans l'appel du modèle
    -------------------------------------------------------
    local aParamSansNom = {}
    local nCnt = 0
    local szInfo = ''
    for i, v in ipairs(args) do
      aParamSansNom[i] = mw.text.trim(v)
      if string.len( mw.text.trim(v) ) ~= 0  then
        aParamSansNom[i] = mw.text.trim(v)
        nCnt = nCnt + 1
        szInfo = szInfo .. 'Paramètre ' .. i .. ' : ' .. aParamSansNom[i] .. '<br>\n'
      end
szCode = szCode .. i .. ' : ' .. aParamSansNom[i] .. '<br>\n'
    end
   
   local bIsLeft = false
   local bIsCenter = false
   local bIsRight = false
   for i = 1, #aParamSansNom do
     if (aParamSansNom[i] == 'left'   or aParamSansNom[i] == 'gauche') then bIsLeft = true end
     if (aParamSansNom[i] == 'center' or aParamSansNom[i] == 'centré') then bIsCenter = true end
     if (aParamSansNom[i] == 'right'  or aParamSansNom[i] == 'droite') then bIsRight = true end
   end

    -----------------------------------------------------
    -- Noter les paramètres nommés dans l'appel du modèle
    --    |alt=    |upright=   |link=  |class=  |page= 
    -- |rotation=
    -----------------------------------------------------
    local szParamAlt = '';     if ( args.alt ~= nil ) then szParamAlt = args.alt end
-- szCode = szCode .. 'alt=' .. szParamAlt .. '++<br>\n'
    local szParamUpright = ''; if ( args.upright ~= nil ) then szParamUpright = args.upright end
-- szCode = szCode .. 'upright=' .. szParamUpright .. '++<br>\n'
    local szParamLink = '';    if ( args.link ~= nil ) then szParamLink = args.link end
-- szCode = szCode .. 'link=' .. szParamLink .. '++<br>\n'
    local szParamClass = '';   if ( args.class ~= nil ) then szParamClass = args.class end
-- szCode = szCode .. 'class=' .. szParamClass .. '++<br>\n'
    local szParamPage = '';    if ( args.page ~= nil ) then szParamPage = args.page end
-- szCode = szCode .. 'page=' .. szParamPage .. '++<br>\n'
    local szParamRotation = '';    if ( args.rotation ~= nil ) then szParamRotation = args.rotation end
-- szCode = szCode .. 'page=' .. szParamPage .. '++<br>\n'
    local szParamMargin = '';    if ( args.m ~= nil ) then szParamMargin = args.m end
-- szCode = szCode .. 'page=' .. szParamMargin .. '++<br>\n'
    local szParamMarginTop = '';    if ( args.mt ~= nil ) then szParamMarginTop = args.mt end
-- szCode = szCode .. 'page=' .. szParamMarginTop .. '++<br>\n'
    local szParamMarginBottom = '';    if ( args.mb ~= nil ) then szParamMarginBottom = args.mb end
-- szCode = szCode .. 'page=' .. szParamMarginBottom .. '++<br>\n'

    -------------------------
    -- Créer le wikicode/HTML
    -------------------------
    szCode = '<div style="'
    szCode = szCode .. 'break-inside:avoid; '
    if bIsLeft == true then szCode = szCode .. 'text-align:left; margin-left:0em; ' end
    if bIsCenter == true then szCode = szCode .. 'text-align:center; clear:both; ' end
    if bIsRight == true then szCode = szCode .. 'text-align:right; margin-right:0em; ' end
    if szParamRotation ~= '' then szCode = szCode .. 'rotate(' .. szParamRotation .. 'deg); ' end
    if szParamMargin ~= '' then szCode = szCode .. 'margin:' .. szParamMargin .. '; ' end
    if szParamMarginTop ~= '' then szCode = szCode .. 'margin-top:' .. szParamMarginTop .. '; ' end
    if szParamMarginBottom ~= '' then szCode = szCode .. 'margin-bottom:' .. szParamMarginBottom .. '; ' end
    szCode = szCode .. '">'
    
    szCode = szCode .. '[[File:'
    if aParamSansNom[1] ~= nil then szCode = szCode .. aParamSansNom[1] end
    for i = 2, #aParamSansNom do
      szCode = szCode .. '|' .. aParamSansNom[i]
    end
    if szParamAlt ~= ''     then szCode = szCode .. '|alt=' .. szParamAlt else end
    if szParamUpright ~= '' then szCode = szCode .. '|upright=' .. szParamUpright end
    if szModeleNamespace == 'Page' then  -- Lien dans l'espace de noms Page, sinon pas de lien
      if szParamLink ~= ''  then szCode = szCode .. '|link=' .. szParamLink end
    else
      szCode = szCode .. '|link='
    end
    if szParamClass ~= ''   then szCode = szCode .. '|class=' .. szParamClass end
    if szParamPage ~= ''    then szCode = szCode .. '|page=' .. szParamPage end
    szCode = szCode .. ']]'

    szCode = szCode .. '</div>'

    if string.len( szMsg ) ~= 0 then
      szCode = szMsg
    end

    return szCode
end

return p