Cette page est protégée.

Module:Lien

Aller à la navigation Aller à la recherche
 Documentation[modifier] [purger]

Le module : Lien sert à faire fonctionner le modèle : Article (ou modèle : A) et le modèle : Filtre, voir leurs documentations.

À faire

  • Le modèle : Article2 a été créé pour les quelques pages qui utilisent abondamment le modèle : A, car celui-ci a été rendu trop gourmand par le passage au lua.
  • Le lien Wikipédia du modèle : A devrait peut-être n’être affiché que si l’article a un interwiki.
  • La fonction implémentant le modèle : A devrait être appelable depuis d’autres modules, et le modèle devrait finir par être assez peu utilisé.
local p = {}

--
-- Fonctions pour assembler le texte de retour
--

local function article( page )
	local puce = ' • '

	local titre = mw.title.new( page )

	local sujet = titre.subjectPageTitle.fullText
	local retour = '[[:'
	            .. sujet
	            .. ']]<small class="plainlinks">&nbsp;('

	local discussion = titre.talkPageTitle.fullText
	if discussion then -- certains espaces peuvent ne pas avoir de page de discussion
		retour = retour .. '[['
		                .. discussion
		                .. '|<span title="page de discussion">d</span>]]'
		                .. puce
	end

	if titre.exists then
		retour = retour .. '['
		                .. titre:fullUrl{ action = 'history' }
		                .. ' <span title="historique">h</span>]'
		                .. puce
	end

	retour = retour .. '[[Special:Log/'
	                .. page
	                .. '|<span title="journaux">j</span>]]'

	                .. puce

	                .. '[[Special:Whatlinkshere/'
	                .. page
	                .. '|<span title="pages liées">PL</span>]]'

	                .. puce

	                .. '[[Special:Index/'
	                .. page
	                .. '|<span title="Sous Pages">SP</span>]]'

	local suppression = mw.title.new( 'Vikidia:Pages à supprimer/' .. sujet )
	if suppression.exists then
		retour = retour .. puce
		                .. '[['
		                .. suppression.fullText
		                .. '|<span title="Débat de suppression">PàS</span>]]'
	end

	local superarticle = mw.title.new( 'Vikidia:Super article/Élection/' .. sujet )
	if superarticle.exists then
		retour = retour .. puce
		                .. '[['
		                .. superarticle.fullText
		                .. '|<span title="Super Article">SA</span>]]'
	end

	retour = retour .. puce
	                .. '[[:wp:'
	                .. page
	                .. '|<span title="Voir sur Wikipédia">WP</span>]]'

	                .. ')</small>'

	return retour
end

local function filtre( id )
	local puce = '&nbsp;&bull;&nbsp;' -- puce insécable

	local antiabus = mw.title.new( 'Special:Journal du filtre antiabus' )
	local retour = '[[Spécial:Filtre_antiabus/'
	            .. id
	            .. '|Filtre&nbsp;'
	            .. id
	            .. ']]<small class="plainlinks">&nbsp;([[Spécial:Filtre_antiabus/history/'
	            .. id
	            .. '|h]]'
	            .. puce
	            .. '[[Spécial:Filtre_antiabus/test/'
	            .. id
	            .. '|t]]'
	            .. puce
	            .. '['
	            .. antiabus:fullUrl{ wpSearchFilter = id }
	            .. ' '
	            .. 'j])</small>'

	return retour
end

--
-- Fonctions appelables depuis les modèles
--

-- pour le [[modèle : Article]]
function p.Article( frame )
	local args = frame:getParent().args
	local page = mw.text.trim( args[1] or '' ) and args[1] or error( 'une page doit être précisée pour le modèle : Article' )

	return article( page )
end

-- pour le [[modèle : Filtre]]
function p.Filtre( frame )
	local args = frame:getParent().args
	local id = mw.text.trim( args[1] or '' ) and args[1] or error( 'un numéro doit être précisé pour le modèle : Filtre' )

	return filtre( id )
end

return p