« Module:Boîte de contenu de jeu » : différence entre les versions

De Les Archives de Vault-Tec
Kharmitch (discussion | contributions)
mAucun résumé des modifications
Kharmitch (discussion | contributions)
mAucun résumé des modifications
 
(16 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


function addItem(item)
function addItem(item)
local type = type(item)
if item.type == 'item' then
return '<li>' .. item.value .. '</li>'
if type == 'string' then
elseif item.type == 'sublist' then
return '<li>' .. item .. '</li>'
local sublist = item.value .. '<ul class="liste-horizontale">'
elseif type == 'table' then
for i, subitem in pairs(item.items) do
local sublist = '<ul>'
for i, subitem in pairs(item) do
sublist = sublist .. addItem(subitem)
sublist = sublist .. addItem(subitem)
end
end
list = list .. '</ul>'
sublist = sublist .. '</ul>'
return list
return '<li>' .. sublist .. '</li>'
end
end
end
end


function p.build(frame)
function p.build(frame)
local args = require('Module:Outils').extractArgs(frame)
-- chargement du module de paramétrage
-- chargement du module de paramétrage
local moduledata = require('Module:Boîte de contenu de jeu/' .. args.nom)
local moduledata = require('Module:Boîte de contenu de jeu/' .. frame.args.nom)
local list = '<ul class="avt-content-game-box-list" aria-labelledby="avt-content-game-box-title">'
local list = '<ul class="avt-content-game-box-list mw-collapsible-content" aria-labelledby="avt-content-game-box-title">'
for i, item in pairs(moduledata.items) do
for i, item in pairs(moduledata.items) do
list = list .. addItem(item)
list = list .. addItem(item)
Ligne 28 : Ligne 24 :
local list = list .. '</ul>'
local list = list .. '</ul>'
local contentBox = mw.html.create('aside')
local contentBox = mw.html.create('div')
:addClass('avt-content-game-box')
:addClass('avt-content-game-box mw-collapsible')
:tag('div')
:tag('div')
:att('id', 'avt-content-game-box-title')
:attr('id', 'avt-content-game-box-title')
:wikitext('Contenu de \'\'[[' .. moduledata.game .. ']]\'\'')
:wikitext('[[Portail:' .. moduledata.portal .. '|Contenu de \'\'' .. moduledata.portal .. '\'\']]')
:done()
:done()
:node(list)
:node(list)

Dernière version du 11 octobre 2021 à 08:43

La documentation pour ce module peut être créée à Module:Boîte de contenu de jeu/doc

local p = {}

function addItem(item)
	if item.type == 'item' then
		return '<li>' .. item.value .. '</li>'
	elseif item.type == 'sublist' then
		local sublist = item.value .. '<ul class="liste-horizontale">'
		for i, subitem in pairs(item.items) do
			sublist = sublist .. addItem(subitem)
		end
		sublist = sublist .. '</ul>'
		return '<li>' .. sublist .. '</li>'
	end
end

function p.build(frame)
	-- chargement du module de paramétrage
	local moduledata = require('Module:Boîte de contenu de jeu/' .. frame.args.nom)
	
	local list = '<ul class="avt-content-game-box-list mw-collapsible-content" aria-labelledby="avt-content-game-box-title">'
	for i, item in pairs(moduledata.items) do
		list = list .. addItem(item)
	end
	local list = list .. '</ul>'
	
	local contentBox = mw.html.create('div')
		:addClass('avt-content-game-box mw-collapsible')
		:tag('div')
			:attr('id', 'avt-content-game-box-title')
			:wikitext('[[Portail:' .. moduledata.portal .. '|Contenu de \'\'' .. moduledata.portal .. '\'\']]')
			:done()
		:node(list)

	return tostring(contentBox)
end

return p