Tu banner alternativo

Module:Fix/Bac à sable

Aujourd'hui, Module:Fix/Bac à sable reste un sujet pertinent et intéressant un grand nombre de personnes. Avec les progrès de la technologie et la mondialisation, Module:Fix/Bac à sable est devenu un point central de discussion dans différents domaines. Tant sur le plan personnel que professionnel, les gens continuent de rechercher des informations, des conseils et des opinions sur Module:Fix/Bac à sable. À mesure que la société évolue, la manière dont Module:Fix/Bac à sable affecte nos vies évolue également. Il est donc important d’explorer en profondeur les différents aspects liés à Module:Fix/Bac à sable, pour comprendre son influence sur notre vie quotidienne et sur le monde qui nous entoure.

Tu banner alternativo

 Documentation[voir] [modifier] [historique] [purger]

Module utilisé par le métamodèle {{Fix}}, et indirectement par le modèle {{Référence nécessaire}} et dérivés.

local p = {}

function p.affichageBloc( args )
	local background = args.background or ''
	if background == '' then
		background = 'white'
	end
	
	local html = mw.html.create( '' )
		:wikitext( '\n' )
		:tag( 'div' )
			:cssText( 'position:relative; margin-top:0.8em;')
			:tag( 'div' )
				:addClass( 'need_ref' )
				:cssText( 'cursor:help; overflow:hidden; padding-bottom:0;' )
				:css{ background = background }
				:attr{ title = args.titre }
				:wikitext( args, '\n' )
				:done()
			:tag( 'div' )
				:addClass( 'need_ref_tag' )
				:cssText( 'position:absolute; top:-0.6em; left:1em; padding:0 0.5em; font-size:80%; line-height:1em;')
				:css{ background = background }
				:wikitext( args.message2 )
		:allDone()
		
	return tostring( html )
end

function p.affichageInline( args , ajouterinfobulle )
	local html = mw.html.create( '' )
	
	if args and mw.text.trim(args) ~= '' then
		html:tag( 'span' )
				:addClass( 'need_ref' )
				:cssText( 'cursor:help;' )
				:attr{ title = args.titre }
				:wikitext( mw.text.trim(args) )
				:done()
		ajouterinfobulle=false--Facultatif, on pourrait accepter l'infobulle sur l'exposant quel que soit le cas.
	end
	if ajouterinfobulle then
		html:tag( 'sup' )
			:addClass( 'need_ref_tag' )
			:cssText ( 'padding-left:2px;' )
			:attr{ title = args.titre2 }
			:wikitext( args.message2 )
		:allDone()
	else
		html:tag( 'sup' )
			:addClass( 'need_ref_tag' )
			:cssText ( 'padding-left:2px;' )
			:wikitext( args.message2 )
		:allDone()
	end

	return tostring( html )
end

function p.generateMessage( args, nommodele, modeinfobulle)-- Le dernier paramètre sert de booléen pour forcer une infobulle dans le lien interne.
	local modeinfobulle = modeinfobulle or false
	local messageloc=''
	local infobulle_mise=false
	if args.message and  args.message ~= '' then
    	if args.message_lien and  args.message_lien ~= '' then
    		if args.message_lien=='non' then
				messageloc= "[" .. args.message .. "]"
				if not args.message:find("%[%[") then
					args.titre2=args.titre
				end
			else
				if modeinfobulle==true then-- On force l'infobulle à l'intérieur. Il y aurait peut-être plus smple, avec un seul message et l'ajout d'une classe désactivant les infobulles sur les liens internes
					--messageloc= "[]]"--CHOIX
					messageloc= "]"
					infobulle_mise=true
				else
					--messageloc= "[]]"--CHOIX
					messageloc= "]"
					infobulle_mise=true--Facultatif mais on peut bien considérer inutile d'ajouter une autre infobulle autour de ce contenu. Cela est encore plus vrai si lien interne créé à la ligne précédente est sur l'intégralité du message.
				end
			end
		else
			if modeinfobulle==true then
				--messageloc= "[]]" .. tostring(table.concat(args))--CHOIX
				messageloc= "]" .. tostring(table.concat(args))
				infobulle_mise=true
			else
				--messageloc= "[]]"--CHOIX
				messageloc= "]"
				infobulle_mise=true--Facultatif, idem plus haut
			end
		end
		-- trois lignes qui suivent : test temporaire à activer lors de la transition d'affichage pour les appels qui introduisent déjà un lien via le paramètre message
		if (args.message:find("%")) and (args.message_lien or '')~='non' then
			messageloc= args.message
		end
	else
		messageloc= '<span class="error">argument « message » manquant dans le modèle ' .. nommodele .. '.</span>'
		args.titre2="Erreur dans l'appel du modèle Fix"
	end
    
	return messageloc, infobulle_mise
end


function p.affichageFix( frame )
	local args = frame.getParent and frame:getParent().args or frame
	local nommodele = frame.getParent and frame:getParent():getTitle() or frame:getTitle()
	local messageDate = ''
	local messageAide = ' ; v'
	local ponctuation="."
	if args.date and args.date ~= '' then
		messageDate = ' (demandé le ' .. args.date .. ')'
	else
		local infobulle_texte= mw.text.trim((args.infobulle or ''):gsub( '%b<>', '' ))
		if infobulle_texte ~= '' then
			if infobulle_texte:match( '$' ) then
				messageAide = ' V'
				ponctuation=""
			end
		else
			messageAide = 'V'
			ponctuation=""
		end
	end
	messageAide = messageAide .. 'oir l\'aide.'
	args.titre = mw.text.trim(( args.infobulle or '' ):gsub( '$', '' )) .. messageDate .. ponctuation
	args.titre2 = mw.text.trim(( args.infobulle or '' ):gsub( '$', '' )) .. messageDate .. messageAide

	if args and mw.text.trim(args) ~= '' then
		args.message2, infobulle_mise =p.generateMessage(args, nommodele)
		if args:match('\n*\n')
			or args:match('\n')
			or args.bloc and args.bloc ~= ''
		then
			return p.affichageBloc( args )
		end
	else
		args.message2, infobulle_mise =p.generateMessage(args, nommodele, true)
	end

	return p.affichageInline( args, not infobulle_mise )
end

return p