Aller au contenu
 







Menu principal
   


Navigation  



Accueil
Portails thématiques
Article au hasard
Contact
 




Contribuer  



Débuter sur Wikipédia
Aide
Communauté
Modifications récentes
Faire un don
 








Rechercher  

































Créer un compte

Se connecter
 









Créer un compte
 Se connecter
 




Pages pour les contributeurs déconnectés en savoir plus  



Contributions
Discussion
 



















Sommaire

   



Début
 


1 Utilisation  



1.1  Fonctions exportables  





1.2  Modules externes et autres éléments dont ce module a besoin pour fonctionner  







2 Exemples  





3 Voir aussi  














Module:Palette






Ελληνικά
فارسی
Occitan
Português
 

Modifier les liens
 









Module
Discussion
 

















Lire
Voir le texte source
Voir lhistorique
 








Outils
   


Actions  



Lire
Voir le texte source
Voir lhistorique
 




Général  



Pages liées
Suivi des pages liées
Téléverser un fichier
Pages spéciales
Lien permanent
Informations sur la page
Obtenir l'URL raccourcie
Télécharger le code QR
Élément Wikidata
 




Imprimer/exporter  



Télécharger en PDF
Version imprimable
 




Dans dautres projets  



Wikiquote
Wikiversité
Wikivoyage
 
















Apparence
   

 





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]

Utilisation

Ce module permet l'implémentation de l'ensemble des palettes de navigation sur Wikipédia français. Il est l'équivalent du module nommé Navbox en anglais.

Ce module ne suffit pas à implémenter les palettes. La fonction Afficher / Masquer est permise par un code JavaScript présent dans MediaWiki:Common.js#L-233. La mise en forme css est gérée par MediaWiki:Common.css#L-1061, ainsi que par MediaWiki:Vector-2022.css#L-237 pour le mode sombre.

Fonctions exportables

Modules externes et autres éléments dont ce module a besoin pour fonctionner

Exemples

Dans Modèle:Palette, ce module est appelé de la façon suivante :

{{#invoke:Palette | listePalette | maxPalette = 20
|{{Palette {{{1}}} |{{{parametre palette1|}}}| nocat={{{nocat1|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{2}}} |{{{parametre palette2|}}}| nocat={{{nocat2|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{3}}} |{{{parametre palette3|}}}| nocat={{{nocat3|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{4}}} |{{{parametre palette4|}}}| nocat={{{nocat4|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{5}}} |{{{parametre palette5|}}}| nocat={{{nocat5|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{6}}} |{{{parametre palette6|}}}| nocat={{{nocat6|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{7}}} |{{{parametre palette7|}}}| nocat={{{nocat7|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{8}}} |{{{parametre palette8|}}}| nocat={{{nocat8|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{9}}} |{{{parametre palette9|}}}| nocat={{{nocat9|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{10}}} |{{{parametre palette10|}}}| nocat={{{nocat10|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{11}}} |{{{parametre palette11|}}}| nocat={{{nocat11|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{12}}} |{{{parametre palette12|}}}| nocat={{{nocat12|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{13}}} |{{{parametre palette13|}}}| nocat={{{nocat13|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{14}}} |{{{parametre palette14|}}}| nocat={{{nocat14|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{15}}} |{{{parametre palette15|}}}| nocat={{{nocat15|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{16}}} |{{{parametre palette16|}}}| nocat={{{nocat16|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{17}}} |{{{parametre palette17|}}}| nocat={{{nocat17|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{18}}} |{{{parametre palette18|}}}| nocat={{{nocat18|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{19}}} |{{{parametre palette19|}}}| nocat={{{nocat19|{{{nocat|}}}}}} | parent=bandeau}}
|{{Palette {{{20}}} |{{{parametre palette20|}}}| nocat={{{nocat20|{{{nocat|}}}}}} | parent=bandeau}}
}}

Voir aussi

local mwTrim = mw.text.trim

local p = {}

function p.listePalette( frame )
 local args = frame.args

 local parentArgs = {}
 for k, v in pairs( frame:getParent().args ) do
  -- effectue un trim sur les paramètres non nommés
  if type( k ) == 'number' then
   v = mwTrim( v )
  end
  parentArgs[ k ] = v
 end

 local wikiTable = { '<div class="navbox-container" style="clear:both;">\n' }
 setmetatable( wikiTable, { __index = table } )   -- permet d'utiliser les fonctions de table comme des méthodes
 local palettesVerticales = ''

 local maxPalette = tonumber( args.maxPalette ) or 4
 local categoriePaletteInconnue = '[[Catégorie:Modèle Palette - Palette inconnue]]'
 local categorieTropDePalette = '[[Catégorie:Modèle Palette - Page contenant trop de palettes]]'
 local categoriePaletteEnDouble = '[[Catégorie:Modèle Palette - Palette affichée en double]]'

 local categories = {}

 local function _erreur( texte, param, ... )
  if param then texte = texte:format( param, ... )
  end
  local sep = #wikiTable > 1 and '<hr>' or ''
  return sep .. '<p><strong class="error" style="padding-left:.5em;">' .. texte .. '</strong></p>\n'
 end
 local function _pasDePalette()
  return _erreur( 'Erreur dans l’utilisation du [[Modèle:Palette]] : paramètre obligatoire absent.' )
 end

 local function _paletteInconnue( i )
  categories.paletteInconnue = categoriePaletteInconnue
  local nomPalette = parentArgs[i]
  return _erreur( 'Erreur : il n’existe pas de modèle {{[[Modèle:Palette %s|Palette %s]]}} [[Aide:Palette de navigation|(aide)]]', nomPalette, nomPalette )
 end

 local function _paletteEnDouble ( i )
  categories.paletteEnDouble = categoriePaletteEnDouble
  return "" -- inutile d'afficher une erreur visible pour ce cas puisque la mise en page n'est pas cassée
 end

 local function _paletteAvecParametres( i )
  local argsPalette = {}
  for n, v in pairs( parentArgs ) do
   if not tonumber(n) then
    if n:match( ' ' .. i .. '$' ) then
     argsPalette[ n:sub(1, n:len() - 1 - tostring(i):len() ) ] = v
    elseif n == 'nocat' .. i then
     argsPalette.nocat = v
    elseif not argsPalette[n] and n ~= 'stylecorps' then
     argsPalette[n] = v
    end
   end
  end
  return frame:expandTemplate{ title = 'Palette ' .. parentArgs[i], args = argsPalette }
 end

 local function _tropDePalettes()
  categories.tropDePalette = categorieTropDePalette
  return _erreur( 'Erreur dans le [[Modèle:Palette]] : trop de palettes (maximum : %s)', maxPalette )
 end


 local boite = parentArgs['titre boîte déroulante'] or parentArgs['titre boite déroulante']
 if boite then
  wikiTable[1] = '<div class="NavFrame navbox-container" style="clear:both;" >\n'
   .. '<div class="NavHead" style="text-align:center; height:1.6em; background-color:'
   .. ( parentArgs.couleurFondT or '#CCF' )
   .. '; color:' .. ( parentArgs.couleurTexteT or 'black' ) .. ';">'
   .. boite
   .. '</div>\n<div class="NavContent" style="margin-top:2px;">\n'
 end
 local i = 1
 local palettesValides = {}

 while parentArgs[i] and i <= maxPalette do
  if parentArgs[i] ~= '' then
   for _, j in ipairs( palettesValides ) do
    if args[i] == args[j] and not args[i]:match('^palette ') then
     wikiTable:insert ( _paletteEnDouble(i))
    end
   end
   table.insert( palettesValides, i )
   if parentArgs[i]:match( '^<' ) then
    wikiTable:insert( parentArgs[i] )
   elseif parentArgs[i]:match( '^{|' ) then
    wikiTable:insert( '\n' )
    wikiTable:insert( parentArgs[i] )
   else
    local codePalette = args[i]
    if codePalette:match( '^%[%[:Modèle:' ) then                  -- La palette n'existe pas
     wikiTable:insert( _paletteInconnue( i ) )
     table.remove( palettesValides )
    elseif codePalette:match( '^palette avec paramètres' ) then  -- C'est une palette nécessitant des paramètres nommés
     wikiTable:insert( _paletteAvecParametres( i ) )
    elseif codePalette:match( '^palette verticale avec paramètres' ) then  -- C'est une palette verticale nécessitant des paramètres nommés
     palettesVerticales = palettesVerticales .. ( _paletteAvecParametres( i ) )
    elseif codePalette:match( '^palette verticale' ) then        -- C'est une palette verticale
     palettesVerticales = palettesVerticales .. codePalette:sub( 18 )
    else
     wikiTable:insert( (codePalette:gsub( '^<div class="navbox%-container"', '<div' ) ) )
    end
   end
  end
  i = i + 1
 end

 if i == 1 then
  wikiTable:insert( _pasDePalette() )
 elseif i > maxPalette and parentArgs[i] and parentArgs[i] ~= '' then
  wikiTable:insert( _tropDePalettes() )
 end
 if #wikiTable == 1 then
  wikiTable[1] = palettesVerticales
 else
  if boite then
   wikiTable:insert( '</div>' )
  end
  wikiTable:insert( '</div>' .. palettesVerticales )
 end
 if mw.title.getCurrentTitle().namespace == 0 then
  for i, v in pairs( categories ) do
   wikiTable:insert( v )
  end
 end

 return wikiTable:concat()
end

return p

Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Module:Palette&oldid=216234450 ».

Catégories: 
Module en semi-protection étendue
Module appelé directement par un modèle
 



La dernière modification de cette page a été faite le 24 juin 2024 à 22:42.

Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les mêmes conditions ; dautres conditions peuvent sappliquer. Voyez les conditions dutilisation pour plus de détails, ainsi que les crédits graphiques. 
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le paragraphe 501(c)(3) du code fiscal des États-Unis.



Politique de confidentialité

À propos de Wikipédia

Avertissements

Contact

Code de conduite

Développeurs

Statistiques

Déclaration sur les témoins (cookies)

Version mobile



Wikimedia Foundation
Powered by MediaWiki