Module:PageTitre
La documentation de ce module Scribunto écrit en Lua est incluse depuis sa sous-page de documentation.
Projet Scribunto : Aide · Catégorie:Modules · Index complet des modules et de leur documentation ·
{{Module|nom du module}}
· {{Modèle utilisant les modules Lua}}
Modules de base :
Documentation module
· String
· List
· Wikibase
· TNT
Le module:PageTitre contient le code pertinent au Modèle:PageTitre2 conçu pour construire une page titre à l'aide de quelques paramètres.
Exemples
modifierVoyez ces exemples :
Paramètres dans l'appel de modèle
modifierLe module accepte des commandes wsCss. Elles sont traduites en commandes CSS qui sont reconnues par les navigateurs Web. Le module:StyleM effectue la traduction wsCss en CSS.
Paramètres dans le code du modèle
modifierAucun
-- Le nombre de lignes peut être augmenté.
local nNombreLignes = 40
local p = {}
local szMsg = ''
local szCode = ''
local szParam = ''
local nNombreParam = 3 * nNombreLignes
function p.getOuvrirDivTitre()
szCode = szCode .. '<div class=titre>' .. '\n'
end
function p.getEspaceBasDePage(sz)
-- Si l'unité de l'espacement vertical a été indiquée, utiliser cette unité
---------------------------------------------------------------------------
local szUniteEspacementVertical = ''
if tonumber(sz) == nil then
szUniteEspacementVertical = ''
else
szUniteEspacementVertical = 'em'
end
szCode = szCode .. '<div style="padding-bottom:' .. sz .. szUniteEspacementVertical .. '}};"> </div>' .. '\n'
end
function p.getFermerDivTitre()
szCode = szCode .. '</div>' .. '\n'
end
function p.getLigne(sz0, sz1, sz2)
-- Si l'unité de l'espacement vertical a été indiquée, utiliser cette unité
---------------------------------------------------------------------------
local szUniteEspacementVertical = ''
if tonumber(sz0) == nil then
szUniteEspacementVertical = ''
else
szUniteEspacementVertical = 'em'
end
-- Si l'unité de la taille des caractères a été indiquée, utiliser cette unité
------------------------------------------------------------------------------
local szTailleCaracteres = ''
if tonumber(sz2) == nil then
szTailleCaracteres = ''
else
szTailleCaracteres = '%'
end
szCode = szCode .. '<div style="padding-bottom:' .. sz0 .. szUniteEspacementVertical .. ';"> </div>' .. '\n'
szCode = szCode .. '<div style="text-align:center;clear:both; font-size:' .. sz2 .. szTailleCaracteres .. '";>' .. sz1 ..'</div>' .. '\n'
end
function p.Construire( frame )
--------------------------------
-- Noter les paramètres sans nom
--------------------------------
local args = frame:getParent().args
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'
if nCnt % 3 == 0 then
szInfo = szInfo .. '<br>\n'
end
end
-- szCode = szCode .. i .. ' : ' .. aParamSansNom[i] .. '<br>\n'
end
if nCnt % 3 ~= 0 then
szMsg = '<span style="font-size:200%; color:red;">Prière de saisir 3 paramètres par ligne.</span>' .. '<br>\n' .. szInfo
end
------------------------------
-- Créer le code HTML/Wikicode
------------------------------
if mw.getCurrentFrame():getParent().args['titre'] then
p.getOuvrirDivTitre()
end
-- Pour chaque trio définissant une ligne, ajouter le code pertinent
--------------------------------------------------------------------
for n = 0, nNombreParam, 3 do
if aParamSansNom[n + 1] ~= nil and aParamSansNom[n + 2] ~= nil and aParamSansNom[n + 3] ~= nil then
p.getLigne(aParamSansNom[n + 1], aParamSansNom[n + 2], aParamSansNom[n + 3])
end
end
-- Bas de page
--------------
if mw.getCurrentFrame():getParent().args['bp'] then
p.getEspaceBasDePage(mw.getCurrentFrame():getParent().args['bp'])
end
if mw.getCurrentFrame():getParent().args['titre'] then
p.getFermerDivTitre()
end
if string.len( szMsg ) ~= 0 then
szCode = szMsg
end
return szCode
end
return p