Modifications

Sauter à la navigation Sauter à la recherche

Module:Infobox

23 835 octets supprimés, 10 juillet 2019 à 02:28
m
Revert consecutive edits by Nixinova (talk)
local p = {}
local lang = 'fr'function p.infobox( f ) local item args = nil -- lrequire( 'élément Wikidata liélocal localdata = {}-- données concernant les paramètres passés au modèlelocal page = { -- données concernant la page où est affichée lModule:ProcessArgs'infobox name = mw).title.getCurrentTitlemerge(true ).prefixedText, namespace local titleObject = mw.title.getCurrentTitle().namespace} local maincolor, secondcolor, thirdcolor = '#E1E1E1', '#E1E1E1', '#000000'-- l'objet principal à retournerlocal infobox title = mwargs.htmltitle or titleObject.create('div')baseText -- objets secondaires à retourner local maintenance imageArea = '' -- chaîne retournée avec le module : cats de maintenanceargs.imagearealocal externaltext if not imageArea and imageArea ~= 'none' -- par exemple coordonnées en titre-- modules importésthen local linguistic images = require "Module:Linguistique"{} local wd invImages = require 'Module:Wikidata'{} local valueexpl defaultImageSize = wdargs.translate("activate-query") local i18n = { ['see doc'] = defaultimagesize or 'Documentation du modèle150px', ['edit'] args.image1 = args.image1 or args.image or 'modifiertitle', ['edit code'] args.image1size = 'modifier le code',args.image1size or args.imagesize ['edit item'] args.invimage1 = args.invimage1 or args.invimage or 'modifier Wikidatatitle', ['tracking cat'] = "Page utilisant des données de Wikidata", ['invalid block type'] local imgCount = "Bloc de données invalide dans le module d'infobox",{} ['default cat'] local invImgCount = "Maintenance des infobox",{local function addWikidataCat for k, v in pairs(propargs )do maintenance = maintenance .. wd.addTrackingCat if type(propk )end local function expandQuery(query) local value, number -- valeur à retourner, nombre de valeurs pour accorder le libellé if not query.entity then query.entity = localdata.item end if not query.conjtype then query.conjtype = 'commastring'then end local claims image, num = wd.getClaimsk:match(query) if '^(not claimsimage) then return nil end return wd.formatAndCat(query%d+), #claims -- pour l$'accord au plurielend) local function getWikidataValueinvImage, invNum = k:match( '^(invimage)(params, wikidataparam%d+)$' ) -- Récupère la valeur Wikidata pour la valeur, soit dans le paramètre "wikidata" soit dans le paramètre "property" if not localdata.item v:lower() ~= 'none' then return nil end  if params.blockers image then -- blockers are local parameters that disable the wikidata query local blockers = params table.blockers if insert(typeimgCount, tonumber(blockersnum ) == 'string') elseif invImage then blockers = {blockers} end for i table.insert( invImgCount, blocker in ipairstonumber(blockersinvNum ) ) do if localdata[blocker] then end return nilend
end
end
end table.sort( imgCount ) local animate for k, v, valnum -- la valeur à retourner, et le nombre de de valeurs in ipairs(pour l'accord grammaticalimgCount )do if not wikidataparam then -- par défaut la valeur wikidata est dans le paramètre "wikidata" mais dans les structures composées comme "title", il y a plusieurs paramètres wikidata wikidataparam local image = args['wikidataimage'.. v] end  if params local size = args[wikidataparam'image' .. v .. 'size'] thenor defaultImageSize if type(params[wikidataparam]) image == 'functiontitle' then v, valnum local imageTitle = params[wikidataparam]mw.title.new(localdata'Media:' .. title .. '.itempng' ) elseif type(params if imageTitle and imageTitle.exists then image = '[[wikidataparamFile:' .. title .. '.png|' .. size .. ']]) ' elseif titleObject.namespace == 'table' 0 then v, valnum image = expandQuery(params'[[wikidataparamFile:No image.svg|' .. size .. '|link=File:' .. title .. '.png|Upload ' .. title .. '.png]])' else v, valnum image = params'[[wikidataparamFile:No image.svg|' .. size .. '|link=]]' end end elseif image:match( ';' ) then if not v animate then return nil end v animate = linguistic.ucfirstrequire(v'Module:Animate' ).animate return v, valnum end image = animate{ image, size }local function getValue(val, params) else if type(val) = image = 'string[[File:' then return localdata[val] elseif type(val) == .. image .. 'function|' then return val(localdata, localdata.item, params) elseif type(val) == 'table. size .. ' then for i, j in pairs(val) do -- si plusieurs paramètres possibles (legacy de vieux code), prendre le premier non vide if localdata[j] then return localdata[j]'
end
table.insert( images, '<div>' .. image .. '</div>' )
end
endend local function addMaintenanceCat(cat, sortkey) if page.namespace ~= 0 then return '' end if cat then maintenance images = maintenance .. '[[Category:' .. cat .. '|' .table. concat(sortkey or page.name) .. ']]' endend function p.separator(params) local style = params['separator style'] or {} style.height = style.height or '2px' style['background-color'] = style['background-color'] or maincolor return mw.html.create('hr'):css( style ) end function p.buildtitle(params) local text = getValue(params.value, params) or params.textdefaultvalue or getWikidataValue(params) or mw.title.getCurrentTitle().text local subtext = getValue(params.subtitle) or getWikidataValue(paramsimages, 'wikidatasubtitle\n') or params.subtitledefaultvalue if subtext and (subtext ~= text) then text = text .. '<br /if #invImgCount ><small>' .. subtext .. '</small>' end local icon = params.icon or '' if icon ~= '' and icon ~= 'defaut' 0 then text = text .. mw table.getCurrentFramesort(invImgCount ):extensionTag('templatestyles', '', {src = 'Infobox/Pictogramme/' .. mw.text.trim(icon) .. '.css'}) if not params.large then icon = 'icon ' .. icon end end local class = 'entete ' .. icon -- overwrites with those provided in the module local style = {} style['background-color'] = maincolor style['color'] = thirdcolor if params.style then for i, j in pairs(params.style) doslot style[i] = j end end local title invIds = mw.html.createloadData('div') :addClass(class) :css(style) Module:tag('divInvSprite').ids :wikitext(text) :allDone() return titleendp.buildTitle = p.buildtitle function p.buildnavbox(params) -- définition du style local class = "overflow nav " .. (params.class or '') local style = params.style or {}  if params.separated then -- options pour ajouter une ligne de séparation au dessus class = class .. ' bordered' style['border-top'] = '1px solid' .. maincolor end  -- ajustement des paramètres de données params.previousval = params.previousval or params.previousparameter -- nom de paramètre obsolète params.nextval = params.nextval or params.nextparameter if params.previousproperty then params.previouswikidata = {property = params.previousproperty} end if params.nextproperty then params.nextwikidata = {property = params.nextproperty} end   local previousval = getValue(params.previousval, params) or getWikidataValue(params, 'previouswikidata') local nextval = getValue(params.nextval, params) or getWikidataValue(params, 'nextwikidata') local navbox if params.inner then -- pour celles qui sont à l'intérieur d'une table navbox invAliases = mw.html.create('tr'):tagloadData('th')Module:attr('colspan', 2) style['font-weight'] = style['font-weight'] or 'normal' else navbox = mw.html.create('div') end navbox :addClass(class) :css(style) :tag('divInventory slot/Aliases') :addClass('prev_bloc') :wikitext(previousval) :done() :tag('div') :addClass('next_bloc') :wikitext(nextval) :done() :allDone() return navboxendp.buildNavbox = p.buildnavbox function p.buildimages(params) local images = {} local upright, link, caption, alt, size -- size is deprecated if type(params.imageparameters) == 'string' then params.imageparameters = {params.imageparameters} end if not params.imageparameters then -- s'il n'y a pas de paramètre image, continuer, peut-être y a-t-il une image par défaut définie dans le module d'infobox params.imageparameters = {} end for jk, k v in ipairs(params.imageparametersinvImgCount ) do table.insert(images, localdata[k]) end -- Images de Wikidata if #images == 0 and localdata.item then if params.property then params.wikidata = {entity = localdata.item, property = params.property} end if params.wikidata then local wdq = params.wikidata wdq.excludespecial = true if type(wdq) =image = args['tableinvimage' then wdq.entity = wdq.entity or localdata.item wdq.numval = wdq.numval or params.numval or 1v] images = wd.getClaims(wdq) end if type(wdq) image == 'function' then images = params.wikidata() if type(images) == 'stringtitle' then return images end --c'est probablement une erreur dans la requête => afficher le message end if (not images) then images = {} end if (#images > 0) and (params.wikidata.property) then addWikidataCat(params.wikidata.property) end  if type(imagesinvIds[title] or invAliases[1title]) == 'table' then for i, image in pairs(images) do = title if else image.mainsnak.snaktype ~= 'value' then returnfalse
end
end if #images image == 1 then '---- si une seule image, on utilise la légende (si deux plusieurs images, comment mettre en forme ?)' then caption = wd table.getFormattedQualifiersinsert(images[i]invImages, {'P2096'}, {isinlang </div><div style= "padding-top:.5em">'fr'}) or wd.getFormattedQualifiers elseif image then if not slot then slot = require(images[i], {'P805Module:Inventory slot'}).slot
end
images[i] table.insert( invImages, slot{ image, link = image.mainsnak.datavalue.value'none' } )
end
end
end end  -- Images par défaut if slot and #images == invImages > 0 then if params invImages = '<div class="infobox-invimages"><div>' .. table.maintenancecat then addMaintenanceCatconcat(params.maintenancecatinvImages, params'' ) .sortkey) end if params.defaultimages then'</div></div>' images = params.defaultimageselse if type(images) = invImages = 'string' then images = {images}
end
upright = params.defaultimageupright caption = params.defaultimagecaption link = params.defaultimagelink alt = params.defaultimagealt if not alt and ( images[1] == 'Defaut.svg' or images[1] == 'Defaut 2.svg' ) then alt = 'une illustration sous licence libre serait bienvenue' end end end if #images == 0 then return nil end upright = upright or getValue(params.uprightparameter) or params.defaultupright or "1.2" link = link or getValue(params.linkparameter) or params.defaultlink caption = caption or getValue(params.captionparameter) or params.defaultcaption alt = alt or getValue( params.altparameter) or params.defaultalt  -- taille avec "size" (obsolète) size = size or getValue(params.sizeparameter) or params.defaultsize -- deprecated if size then local numsize = size:gsub('px', '') numsize = mw.ustring.gsub(numsize, 'x.*', '') numsize = tonumber(numsize) if type(numsize) ~= 'number' or numsize > 280 then addMaintenanceCat("taille d'image invalide") end if tonumber(size) then size = size .. 'px' end size = '|' .. size else size = '' end if tonumber(upright) then upright = tostring(tonumber(upright) ) / #images end if tonumber(size) then size = tostring(tonumber(size) ) / #images end  local style = params.style or {padding ='2px 0',}  -- Partie image  local imagesString = '' for i,image in pairs(images) do if image == '-' then return end imagesString = imagesString .. '[[Fichier:' .. image .. size .. '|frameless' if alt then imagesString = imagesString .. '|alt=' .. alt end if link then imagesString = imagesString .. '|link=' .. link end if upright then imagesString = imagesString .. '|upright=' .. upright elseif #images > 1 then imagesString = imagesString .. '|upright=' .. ( 1 / #images ) end imagesString = imagesString .. ']]' end  local image = mw.html.create('div') :addClass("images") :css(style) :wikitext(imagesString)  -- Partie légende local captionobj if caption then captionobj = mw.html.create('div') :wikitext(caption) :css(params.legendstyle or {}) :addClass("legend") :done() end -- séparateur local separator if params.separator then separator = separator(params) end return mw.html.create('div') :node(image) :node(captionobj) :node(separator) :done()endp.buildImages = p.buildimages function p.buildtext(params) local class = params.class or '' local style = { ['text-align'] = 'center', ['font-weight'] = 'bold' } if params.style then for i, j in pairs(params.style) do style[i] = j end end local text = getValue(params.value, params) or getWikidataValue(params) or params.defaultvalue if text =invImages = '-' then return end if not text then addMaintenanceCat(params.maintenancecat, params.sortkey) return nil end local formattedtext = mw.html.create('p') :addClass(class) :css(style) :wikitext(text) :done() return formattedtextendp.buildText = p.buildtext function p.buildrow(params) local class = params.class or '' local style = params.style or {} local value, number = getValue(params.value, params) if (value == valueexpl) then value = nil params.wikidata.expl = false end if (not value) then value, number = getWikidataValue(params, 'wikidata') end if (not value) and (params.property) then value, number = expandQuery{ property = params.property, ucfirst = params.ucfirst } end if not value then value = params.defaultvalue end if value == '-' then return nil end if not number then number = 0 -- == indéfini end  if not value then if params.maintenancecat then local maintenancecat = getValue(params.maintenancecat, params) addMaintenanceCat(maintenancecat, params.sortkey)
end
return nil
end
 
local label = params.label
if number > 1 and (params.plurallabel) then
label = params.plurallabel
elseif number == 1 and (params.singularlabel) then
label = params.singularlabel
end
if type(label) == 'function' then
label = label(localdata, localdata.item)
end
 
-- format
local formattedvalue = mw.html.create('div')
:wikitext('\n' .. value) -- Le '\n' est requis lorsque value est une liste commençant par '*' ou '#'
if (params.hidden == true)then
formattedvalue
:attr({class="NavContent", style="display: none; text-align: left;"})
formattedvalue = mw.html.create('div')
:attr({class="NavFrame", title="[Afficher]/[Masquer]", style="border: none; padding: 0;"})
:node(formattedvalue)
end
formattedvalue = mw.html.create('td')
:node(formattedvalue)
:allDone()
local formattedlabel
if label then
formattedlabel = mw.html.create('th')
:attr('scope', 'row')
:wikitext(label)
:done()
end
local row = mw.html.create('tr')
:addClass(class)
:css(style)
:node(formattedlabel)
:node(formattedvalue)
:done()
return row
end
p.buildRow = p.buildrow
 
function p.buildsuccession(params)
if not params.value then
return nil
end
--local style = params.style or {}
--style['text-align'] = style['text-align'] or 'center'
--style['color'] = style['color'] or '#000000'
--style['background-color'] = style['background-color'] or '#F9F9F9'
local rowI = mw.html.create('tr')
local colspan = '2'
cellI = mw.html.create('td')
:attr({colspan = colspan})
:attr({align = 'center'})
local styleT = {}
styleT['background-color'] = 'transparent'
styleT['width'] = '100%'
tabC = mw.html.create('table')
:attr({cellspacing = '0'})
:addClass('navigation-not-searchable')
:css(styleT)
local row = mw.html.create('tr')
 
local color = params.color
 
local style = {}
local arrowLeft
local arrowRight
if color == 'default' then
style['background-color'] = '#E6E6E6'
arrowLeft = '[[Fichier:Fleche-defaut-gauche.png|13px|alt=Précédent|link=]]'
arrowRight = '[[Fichier:Fleche-defaut-droite.png|13px|alt=Précédent|link=]]'
else
style['background-color'] = color
arrowLeft = '[[Fichier:Fleche-defaut-gauche-gris-32.png|13px|alt=Suivant|link=]]'
arrowRight = '[[Fichier:Fleche-defaut-droite-gris-32.png|13px|alt=Suivant|link=]]'
end
local styleTrans = {}
styleTrans['background-color'] = '#F9F9F9'
local values = params.value
local before = values['before']
local center = values['center']
local after = values['after']
local widthCell = '44%'
if center then
widthCenter = '28%'
widthCell = '29%'
end
local formattedbefore
if before then
formattedbefore = mw.html.create('td')
:attr({valign = 'middle'})
:attr({align = 'left'})
:attr({width = '5%'})
:css(style)
:wikitext(arrowLeft)
:done()
row:node(formattedbefore)
formattedbefore = mw.html.create('td')
:attr({width = '1%'})
:css(style)
:wikitext('')
:done()
row:node(formattedbefore)
formattedbefore = mw.html.create('td')
:attr({align = 'left'})
:attr({valign = 'middle'})
:attr({width = widthCell})
:css(style)
:wikitext(before)
:done()
row:node(formattedbefore)
else
formattedbefore = mw.html.create('td')
:attr({valign = 'middle'})
:attr({align = 'left'})
:attr({width = '5%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedbefore)
formattedbefore = mw.html.create('td')
:attr({width = '1%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedbefore)
formattedbefore = mw.html.create('td')
:attr({align = 'left'})
:attr({valign = 'middle'})
:attr({width = widthCell})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedbefore)
end
local formattedcenter
formattedcenter = mw.html.create('td')
:attr({width = '1%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedcenter)
if center then
formattedcenter = mw.html.create('td')
:attr({align = 'center'})
:attr({valign = 'middle'})
:attr({width = widthCenter})
:css(style)
:wikitext(center)
:done()
row:node(formattedcenter)
formattedcenter = mw.html.create('td')
:attr({width = '1%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedcenter)
end
local formattedafter
if after then
formattedafter = mw.html.create('td')
:attr({align = 'right'})
:attr({valign = 'middle'})
:attr({width = widthCell})
:css(style)
:wikitext(after)
:done()
row:node(formattedafter)
formattedbefore = mw.html.create('td')
:attr({width = '1%'})
:css(style)
:wikitext('')
:done()
row:node(formattedbefore)
formattedafter = mw.html.create('td')
:attr({align = 'right'})
:attr({valign = 'middle'})
:attr({width = '5%'})
:css(style)
:wikitext(arrowRight)
:done()
row:node(formattedafter)
else
formattedafter = mw.html.create('td')
:attr({align = 'right'})
:attr({valign = 'middle'})
:attr({width = widthCell})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedafter)
formattedbefore = mw.html.create('td')
:attr({width = '1%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedbefore)
formattedafter = mw.html.create('td')
:attr({align = 'right'})
:attr({valign = 'middle'})
:attr({width = '5%'})
:css(styleTrans)
:wikitext('')
:done()
row:node(formattedafter)
end
row:done()
tabC:node(row)
tabC:done()
cellI:node(tabC)
cellI:done()
rowI:node(cellI)
rowI:allDone()
return rowI
end
p.buildSuccession = p.buildsuccession
 
function p.buildrow1col(params)
if not params.value then
return nil
end
--local style = params.style or {} --style['text-align'] = style['text-align'] or 'center' --style['color'] = style['color'] or '#000000' --style['background-color'] = style['background-color'] or '#F9F9F9' local class = params.class local rowcolor if params.color =images ~= 'secondcolor' then rowcolor = secondcolor else rowcolor = params.color end local style = {} style['padding'] = '4px' style['text-align'] = 'center' style['background-color'] = rowcolor or '#F9F9F9' style['color'] = '#000000' local text = params.value  local colspan ='2'  local formattedlabel formattedlabel = mw.html.create('th') :attr({colspan = colspan}) :css(style) :wikitext(text) :done()  local row = mw.html.create('tr') :addClass(class) :css(style) :node(formattedlabel) :done() return rowendp.buildRow1Col = p.buildrow1col function p.buildtable(params) local tab invImages ~= mw.html.create('table'):css(params.style or {})  local rows = params.rows -- expand parameters so that we have a list of tables local i = 1  while (i <= #rows) do local l = rows[i] if type(l) == 'function' then l imageArea = l(localdata, localdataimages .item) end if (type(l) == 'table') and (l.type == 'multi') then table.remove(rows, i) for j, row in ipairs(l.rows) do table.insert(rows, i + j - 1, row) end elseif type(l) == 'nil' then table.remove(rows, i) elseif type(l) ~= 'table' then return error('les lignes d\'infobox ("rows") doivent être des tables, est n' .. type(l))invImages
else
i imageArea = i + 1'none'
end
end
 
-- CREATE ROW
local expandedrows = {}
for k, row in ipairs(rows) do
local v = p.buildblock(row)
if v then
table.insert(expandedrows, v)
end
end
if (#expandedrows == 0) then
return nil
end
rows = expandedrows
 
-- ADD TITLE
local title
if params.title or params.singulartitle or params.pluraltitle then
local text
if #rows > 1 and params.pluraltitle then
text = params.pluraltitle
elseif #rows == 1 and params.singulartitle then
text = params.singulartitle
else
text = params.title
end
 
local style = params.titlestyle or {}
style['text-align'] = style['text-align'] or 'center'
style['color'] = style['color'] or thirdcolor
style['background-color'] = style['background-color'] or maincolor
 
local colspan ='2'
title = mw.html.create('caption')
:attr({colspan = colspan})
:css(style)
:wikitext(text)
:done()
end
if title then
tab:node(title)
end
for i, j in pairs (rows) do
tab:node(j)
end
if params.separator then
local separator = p.separator(params)
tab:node(separator)
end
tab:allDone() return tabendp.buildTable = p.buildtable function p.buildinvalidblock(args) addMaintenanceCat(defaultcat) local text = '' if type(args) imageArea and imageArea ~= 'tablenone' then text imageArea = '<div class= "Les blocs d'infobox doivent être des tables-imagearea animated-container">' .. imageArea .. '</div>'
else
text imageArea = i18n["invalid block type"] .. ' : ' .. (args.type or '??') end return textendp.buildInvalidBlock = p.buildinvalidblock function p.buildmap(params)  -- paramètre d'affichage local maplist = getValue(params.maps) local pointtype = params.pointtype local maptype = params.maptype -- choisit le type de carte le plus approprié (relief, administratif, etc.) if type(maplist) == 'function' then maplist = maplist(localdata, localdata.item) end local width = tonumber(params.width) or 280 if width > 280 then addMaintenanceCat("Erreur d'Infobox/Image trop grande") return 'image trop grande, la largeur doit être inférieure ou égale à 280px' end  -- récupération des données locales local pointtable = {} local globe = params.globe if params.latitude then local lat, long if type(params.latitude) == 'function' then lat, long = params.latitude(localdata, localdata.item), params.longitude(localdata, localdata.item) else lat, long = localdata[params.latitude], localdata[params.longitude] end if lat then table.insert(pointtable, {latitude = lat, longitude = long}) end end  -- récupération des données wikidata local function processWDval(claim, displayformat) if not claim then return nil end local val = wd.formatSnak( claim.mainsnak ) return {latitude = val.latitude, longitude = val.longitude, globe = val.globe, marker = displayformat.marker} end local function getWDvals(query) query.excludespecial = true query.numval = query.numval or 1 query.entity = query.entity or localdata.item local claims = wd.getClaims(query) if (not claims) then return end for i, claim in ipairs(claims) do claim = processWDval(claim, query) table.insert(pointtable, claim) end end if (#pointtable == 0) and localdata.item and params.wikidata and (params.wikidata ~= '-') then for i, query in ipairs(params.wikidata) do if type(query) == 'function' then query = query() end if query then getWDvals(query) end end end if (not pointtable) or (#pointtable == 0) then return nil
end
local newparams footer = {maplist = maplist, pointtype = pointtype, maptype = maptype, width = width, item = localdataargs.item, pointtable = pointtable, globe = globe, marker=params.marker, default_zoom=params.default_zoom, ids = params.ids, markercolor = params.markercolor, shapecolor = params.shapecolor }footer if params.params and type(params.params) == 'table' footer then -- paramètres additionnels for i, j in pairs(params.params) do newparams[i] footer = j end end return require('Module:Carte').multimap(newparams)endp.buildMap = p.buildmap function p.buildexternaltext(params) local value = getValue(params.value) if value and (type(value) | class="infobox-footer" colspan= "2" | 'string') then externaltext = externaltext .. value endendp.buildExternalText = p.buildexternaltext function p.buildfooter(params) if not params then params = {}footer
end
local class = 'navbar noprint bordered ' .. (params.class or '') local style html = params.style or {} style['border-top'] = style['border-top'] or '1px solid ' .. maincolor local backlinkstr = '[' .. tostring( mw.uri.fullUrl( page.name, 'veaction=edit&section=0' ) ) .. ' ' .. i18n['edit'] .. ']' .. ' - [' .. tostring( mw.uri.fullUrl( page.name, 'action=edit&section=0' ) ) .. ' ' .. i18n['edit code'] .. ']'  local itemlinkstr if localdata.item then itemlinkstr = '[[d:' .. localdata.item.id .. '|' .. i18n['edit item'] .. ']]' end local editstr = backlinkstr if itemlinkstr then editstr = editstr .. ' - ' .. itemlinkstr end local editlinkspan = mw.html.create('span') :css({['text-align'] <div class= "leftnotaninfobox"}) :addClass(>'plainlinks'), :wikitext(editstr) :done() local doclinkstr = '[[Image:Info Simple.svg|12px|link<div class=' .. localdata.templatename .. '|' .. i18n['see doc'] .. ']]' -"mcwiki- si ce lien ne marche pas toujours, il faut ajouter un variable pour le nom de l'header infobox récupéré par le frame local doclinkspan = mw.html.create('span') :css({['text-align'] = title"right"}) :wikitext(doclinkstr) :done() local footer = mw.html.create(>'p') :addClass(class) :css(style) :node(editlinkspan) :node(doclinkspan) return footerendp.buildFooter = p.buildfooter function ptitle .buildblock(block) if type(block) == 'function' then block = block( localdata ) end  local blocktypes = { -- list of functions for block buildings ['invalid'] = p.buildinvalidblock, ['external text</div>'] = p.buildexternaltext, ['footer'] = p.buildfooter imageArea, [ 'images'] {| class= p.buildimages, ['map']"infobox-rows" cellspacing= p.buildmap, ['mixed'] "1" cellpadding= p.buildrow, ["4"'navbox'] = p.buildnavbox, [ 'table|-'] = p.buildtable, ['row'] = p args.buildrow, [rows or 'row1col'] = p.buildrow1col, [ footer or 'succession'] = p.buildnavbox, [ 'text|}'] = p.buildtext, ['title</div>'] = p.buildtitle,
}
if type(block) ~= 'table' or (not block.type) or (not blocktypes[block.type]) then
return blocktypes['invalid'](block)
end
return blocktypes[block.type](block)
end
p.buildBlock = p.buildblock
 
function p.build()
localdata = requirereturn table.concat( 'Module:Infobox/Localdata' ) item = localdata.item  -- assign rank to the infoboxhtml, "secondary" means special formatting like no displaytitle for coordinates local infoboxrank = 'main' -- main infobox of the page, with coordinates displayed in title etc. if page.namespace ~= 0 then infoboxrank = 'secondary' end -- if infobox is linked to another item: rank = secondary if localdata.item then local itemlink = mw.wikibase.sitelink(localdata.item.id) local pagetitle = mw.title.getCurrentTitle().text if (itemlink or '') ~= pagetitle then infoboxrank = 'secondary' end end localdata.infoboxrank = infoboxrank  -- load infobox module page local moduledata = require('Module:Infobox/' .. localdata.modulename) moduledata.name = localdata.modulename -- defines main color maincolor = localdata['couleur infobox'] or localdata['couleur boîte'] or moduledata.maincolor or maincolor secondcolor = moduledata.secondcolor or secondcolor thirdcolor = localdata['texte noir'] or localdata['couleur texte'] or moduledata.thirdcolor or thirdcolor if maincolor:match( '^%x%x%x%x%x%x$\n' ) or maincolor:match( '^%x%x%x$' ) then maincolor = '#' .. maincolor end if thirdcolor:match ('oui') or thirdcolor:match( 'true' ) then thirdcolor = '#000' end if thirdcolor:match ('non') or thirdcolor:match( 'false' ) then thirdcolor = '#fff' end -- class local class = 'infobox_v3 large' if moduledata.class then class = class .. ' ' .. moduledata.class end -- style local style = moduledata.style or {} -- build infobox infobox :addClass(class) :css(style) for i, j in pairs( moduledata.parts ) do infobox:node( p.buildblock(j) ) end infobox :node(p.buildfooter(moduledata.footer)) :done()  return tostring(infobox) .. externaltext, maintenance
end
return p
Utilisateur anonyme

Menu de navigation