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:32 et modifiée en dernier par Od1n (discuter | contributions) (pour essayer de rendre cela plus clair ; aussi test si l'objet mw.title a bien été créé, des fois que cela échoue pour encore une autre raison). 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">' .. souspage .. '</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