Module:Talkpageheader

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.

 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, '/Admissibilité$', '')
    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, '/Portail de qualité$', '')
    base = mw.ustring.gsub(base, '/Bon portail$', '')
    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

    local pageAdQ
    local pageBA
    local texteAdQ
    local texteBA
    if page.subjectNsText == 'Portail' or page.subjectNsText == 'Projet' then
        pageAdQ = 'Discussion Portail:' .. base .. '/Portail de qualité'
        pageBA = 'Discussion Portail:' .. base .. '/Bon portail'
        texteAdQ = 'Portail de qualité'
        texteBA = 'Bon portail'
    else
        pageAdQ = talkPage .. '/Article de qualité'
        pageBA = talkPage .. '/Bon article'
        texteAdQ = 'Article de qualité'
        texteBA = 'Bon article'
    end

    function lien(cible, texte)
        local pageLiee = mw.title.new(cible)
        if not pageLiee then
            return '<span title="Une erreur empêche l\'existence de cette page">' .. texte .. '</span>'
        end

        if pageLiee.exists then
            return '[[' .. cible .. '|' .. texte .. ']]'
        else
            return '<span title="Cette page n\'existe pas">' .. texte .. '</span>'
        end
    end

    local lis = {
        '<li>' .. lien( talkPage .. '/Admissibilité'            , 'Admissibilité'   ) .. '</li>',
        '<li>' .. lien( talkPage .. '/Neutralité'               , 'Neutralité'      ) .. '</li>',
        '<li>' .. lien( talkPage .. '/Droit d\'auteur'          , 'Droit d\'auteur' ) .. '</li>',
        '<li>' .. lien( pageAdQ                                 , texteAdQ          ) .. '</li>',
        '<li>' .. lien( pageBA                                  , texteBA           ) .. '</li>',
        '<li>' .. lien( 'Wikipédia:Lumière sur/' .. subjectPage , 'Lumière sur'     ) .. '</li>',
        '<li>' .. lien( talkPage .. '/À faire'                  , 'À faire'         ) .. '</li>',
        '<li>' .. lien( talkPage .. '/Archives'                 , 'Archives'        ) .. '</li>',
        '<li>' .. lien( talkPage .. '/Archive Commons'          , 'Commons'         ) .. '</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