« Module:TableBuilder » et « Modèle:Raccourci/Documentation » : différence entre les pages

(Différence entre les pages)
Aller à la navigation Aller à la recherche
m
1 version
imported>T12
m (1 version)
 
imported>T12
m (1 version)
 
Ligne 1 : Ligne 1 :
--Module appliquant aux fonctions de la librairie Table une inteface fluide.
{{Sous-page de documentation}}


local meta = {
== Utilisation ==
Ce modèle permet de créer une boîte affichant la liste du (des) raccourci(s) pointant vers elle. La boîte peut contenir jusqu’à 20 raccourcis.


    insert = function ( t, ... )
Seul le premier lien est obligatoire, les autres sont facultatifs. Par défaut le texte est automatiquement converti en lien, et lorsqu’on survole le lien une bulle apparait et affiche ''Les minuscules : « wp:xx » aussi sont acceptées par la boîte « rechercher »''. Si l’on désactive cette fonction pour par exemple, afficher un code avec "subst:", il faut passer le paramètre <code>nolien</code> avec une valeur non vide.
        table.insert( t, ... )
        return t
    end,
   
    remove = function ( t, ... )
        table.remove( t, ... )
        return t
    end,
   
    sort = function ( t, ... )
        table.sort( t, ... )
        return t
    end,
   
    maxn = function ( t )
        return table.maxn( t )
    end,
   
    concat = function ( t, ... )
        return table.concat( t, ... )
    end,
   
    minsert = function( t, ... )
        local sel
        for i = 1, select( '#', ... ) do
            sel = select( i, ... )
            if sel then
                table.insert( t, sel )
            end
        end
        return t
    end,
   
    tinsert = function( t, tab, first, last )
        if type( tab ) == 'table' then
            for i = ( tonumber( first ) or 1 ), ( tonumber( last ) or #tab ) do
                table.insert( t, tab[i] )
            end
        end
        return t
    end,


meta.__index = function ( t, key )
Note : Il ne faut pas indiquer les redirects pointant vers un modèle. En effet, ces redirects-là ne doivent rester que de simples redirections de précaution vers le modèle par suite d'une fusion de modèles, d'un renommage, etc. Ils ne sont gardés que parce que certaines pages font appel à ce modèle avec ces redirects. À terme, ces redirects doivent disparaitre.  
    local metafunc = meta[key]
    if type( metafunc ) == 'function' then
        return function ( ... ) return metafunc( t, ... ) end
    end
end
       
-- fin des fonctions de la meta-table


== Exemples ==
{{Entête tableau "Code Rendu"}}
|-
|<pre>{{Raccourci|WP:LB}}</pre>
|{{Raccourci|WP:LB}}
|-
|<pre>{{Raccourci|{{subst|Bienvenue}}|nolien=oui|align=left}}
Exemple de placement à gauche</pre>
|{{Raccourci|{{subst|Bienvenue}}|nolien=oui|align=left}}
Exemple de placement à gauche
|-
|<pre>{{Navigation Monobook}}{{Raccourci|WP:MB|WP:Monobook|Aide:MB}}
Exemple de cohabitation avec un autre "flottant".
Notez que l’ordre se trouve inversé entre le code et son rendu.</pre>
|{{Navigation Monobook}}{{Raccourci|WP:MB|WP:Monobook|Aide:MB}}
Exemple de cohabitation avec un autre "flottant".
Notez que l’ordre se trouve inversé entre le code et son rendu.
|}


local TableBuilder = {
== Paramètres facultatifs ==
    new = function( ... )
Trois autres paramètres possibles :
        local t = { ... }
* <code>align</code> : alignement de la boîte <code>left</code>, <code>right</code> ou <code>center</code>. Par défaut : <code>right</code>
        setmetatable( t, meta )
* <code>{{Lien doc CSS|visuren.html#propdef-clear|clear}}</code>. Par défaut : <code>none</code>
        return t
* <code>margin</code> : marge extérieure du cadre. Par défaut : <code>0</code>
    end,
   
    set = function( t )
        if type( t ) == 'table' then
            setmetatable( t, meta )
        end
        return t
    end,


    clone = function ( t )
== Voir aussi ==
        local tableRefs = { }
* {{m|Raccourci de modèle}}, pour les raccourcis de modèles.
        local function recursiveClone( val )
            if type( val ) == 'table' then
                -- Encode circular references correctly
                if tableRefs[val] ~= nil then
                    return tableRefs[val]
                end
   
                local retVal = { }
                tableRefs[val] = setmetatable( retVal, meta )
   
                for key, elt in pairs( val ) do
                    retVal[key] = recursiveClone( elt )
                end
                return retVal
            else
                return val
            end
        end
        return recursiveClone( t )
    end,
}


return TableBuilder
<includeonly>
[[Catégorie:Modèle encadré|Raccourci]]
[[Catégorie:Modèle des espaces non encyclopédiques|Raccourci]]
[[Catégorie:Raccourci|!]]
</includeonly>
Utilisateur anonyme

Menu de navigation