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 18 mars 2021 à 03:26 et modifiée en dernier par Od1n (discuter | contributions) (comme évoqué sur la DIPP : pour les projets, liens vers les PdQ/BP du portail de même nom ; utile car souvent la pdd du portail est une redirection vers la pdd du projet de même nom). 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

    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 .. '/Suppression'              , 'Suppression'     ) .. '</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>',
    }

    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