Aller au contenu

Module:Talkpageheader

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 2 décembre 2017 à 03:34 et modifiée en dernier par Od1n (discuter | contributions) (erreur de copier-coller). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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

Ce module est utilisé par plusieurs messages système.

Liste non exhaustive :

local p = {}

function p.main()

    local page = mw.title.getCurrentTitle()

    local base = page.text
    base = mw.ustring.gsub(base, '/Suppression$', '')
    base = mw.ustring.gsub(base, '/Neutralité$', '')
    base = mw.ustring.gsub(base, '/Droit d\'auteur$', '')
    base = mw.ustring.gsub(base, '/Article de qualité$', '')
    base = mw.ustring.gsub(base, '/Bon article$', '')
    base = mw.ustring.gsub(base, '/Lumière sur$', '')
    base = mw.ustring.gsub(base, '/À faire$', '')
    base = mw.ustring.gsub(base, '/[Aa]rchive.*$', '')

    local subjectPage
    if page.subjectNsText == '' then
        subjectPage = base
    else
        subjectPage = page.subjectNsText .. ':' .. base
    end

    local talkPage
    local namespace = mw.site.namespaces[page.namespace]
    if namespace.talk then
        talkPage = namespace.talk.name .. ':' .. base
    else
        talkPage = namespace.name .. ':' .. base
    end

    function lien(souspage)
        if #(base .. '/' .. souspage) > 255 then
            return '<span title="Cette page ne peut pas exister car son titre serait trop long">' .. souspage .. '</span>'
        end

        local pageLiee = mw.title.new(talkPage .. '/' .. souspage)
        if pageLiee and pageLiee.exists then
            return '[[' .. talkPage .. '/' .. souspage .. '|' .. souspage .. ']]'
        else
            return '<span title="Cette page n\'existe pas">' .. souspage .. '</span>'
        end
    end

    function lienLumiereSur()
        if #('Lumière sur/' .. subjectPage) > 255 then
            return '<span title="Cette page ne peut pas exister car son titre serait trop long">Lumière sur</span>'
        end

        local pageLiee = mw.title.new('Wikipédia:Lumière sur/' .. subjectPage)
        if pageLiee and pageLiee.exists then
            return '[[Wikipédia:Lumière sur/' .. subjectPage .. '|Lumière sur]]'
        else
            return '<span title="Cette page n\'existe pas">Lumière sur</span>'
        end
    end

    local lis = {
        '<li>' .. lien('Suppression')        .. '</li>',
        '<li>' .. lien('Neutralité')         .. '</li>',
        '<li>' .. lien('Droit d\'auteur')    .. '</li>',
        '<li>' .. lien('Article de qualité') .. '</li>',
        '<li>' .. lien('Bon article')        .. '</li>',
        '<li>' .. lienLumiereSur()           .. '</li>',
        '<li>' .. lien('À faire')            .. '</li>',
        '<li>' .. lien('Archives')           .. '</li>',
    }

    return '<div id="talkpageheader" class="fieldsetlike">'
               .. '<div class="legendlike">'
                   .. '<span class="legendtextlike">Autres discussions [[Spécial:Index/' .. talkPage .. '/|[liste]]]</span>'
               .. '</div>'
               .. '<ul>'
                   .. table.concat(lis, ' ')
               .. '</ul>'
           .. '</div>'
end

return p