Ce module réunit des fonctions pour afficher les modèles {{voir}}
, {{voir autres systèmes}}
et {{voir autres scripts}}
.
Fonctions :
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:voir/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- Avant de publier toute modification, testez l’affichage dans ]
local m_bases = require("Module:bases")
local p = {}
--- Parses the raw arguments.
--- @param rawTable table Raw parameters table.
--- @param title string Current page’s title.
--- @return table The parsed list.
local function _toTable(rawTable, title)
local i = 1
local maxLinks = 200
local paramsTable = {}
while rawTable and i <= maxLinks do
local item = mw.text.trim(rawTable)
-- Pour traiter ]
local description = (mw.ustring.match(item, " %((*)%)$")) or ""
if description ~= "" then
description = " ''(" .. description .. ")''"
item = mw.ustring.gsub(item, " %(*%)$", "")
end
-- Caractères spéciaux non représentables avec une page : à écrire comme Lien{{!}}Caractère
-- (Bricolage : pas possible de faire mieux ?)
local link = mw.ustring.gsub(item, "|.*", "")
if link ~= "" and link ~= title then
table.insert(paramsTable, "]" .. description)
end
i = i + 1
end
return paramsTable
end
local function containsDuplicates(list)
local maxLinks = 200
local i = 1
while list and i <= maxLinks do
local j = i + 1
while list and j <= maxLinks do
if list == list then
return true
end
j = j + 1
end
i = i + 1
end
return false
end
--- Actually builds the list of values. The entry corresponding to the title of
--- the current page is hidden.
--- @param values table The values to display as a list.
--- @return string The formatted list.
local function _makeText(values)
local title = mw.title.getCurrentTitle().fullText
local list = _toTable(values, title)
local text = ''
if #list > 0 then
text = table.concat(list, ", ")
if containsDuplicates(list) then
text = text .. '<br><span style="color: red">Le modèle voir contient des doublons. Merci de les retirer.</span>]'
end
else
text = "(Merci de rajouter les articles en paramètres, ou à défaut d’enlever ce modèle)"
text = text .. m_bases.fait_categorie_contenu('Modèle voir sans paramètre valide')
end
return text
end
--- Builds the list for ] and ].
function p.templateSee(frame)
return _makeText(frame:getParent().args)
end
--- Builds the list for ].
function p.templateSeeOtherScripts(frame)
local args = frame:getParent().args
local values = {}
local i = 1
while args do
table.insert(values, args .. " (" .. args .. ")")
i = i + 2
end
return _makeText(values)
end
--- Builds the list for ].
function p.templateSeeOtherSystems(frame)
local args = frame:getParent().args
local values = {}
local lang_code = args
local i = 2
while args do
table.insert(values, args .. "#" .. lang_code .."|" .. args)
i = i + 1
end
return _makeText(values)
end
return p