
![]() | Dieses Modul ist als Alpha eingestuft. Es ist in der Phase der Entwicklung und kann zu Testzwecken eingesetzt werden. Daten von anderen Autoren können eingegeben werden um festzustellen, ob Probleme auftauchen. Fehlermeldungen, Vorschläge und Wünsche können auf der Diskussionsseite vorgebracht werden. |
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Quickbar/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
local yesno = require( 'Module:Yesno' ) local images = require( 'Module:GetImage' ) local locMap = require( 'Module:Location map' ) -- returns nil, if both values are equal, otherwise the value -- similar to the SQL function nullif() local function nilIf ( value, equalValue ) if ( value == nil ) then return nil elseif ( tostring ( value ) == tostring ( equalValue ) ) then return nil else return value end end -- returns the first value that is not nil -- similar to the SQL function coalesce() local function coalesce ( value1, value2, value3 ) return value1 or value2 or value3 end -- lowering all parameters local function lowerArgs( templateFrame ) local templateArgs = {} for key,value in pairs ( templateFrame.args ) do templateArgs[string.lower(key)] = value end for key,value in pairs ( templateFrame:getParent().args ) do templateArgs[string.lower(key)] = value end return templateArgs end -- generiert Attibute für die Tabelle der Quickbar local function theadAttr ( class, style ) local tableAttr = 'cellspacing="0" class="' .. class ..'"' if coalesce ( style, '' ) ~= '' then tableAttr = tableAttr .. ' style="' .. style .. '"' end return tableAttr end local quickbar = {} -- erzeugt einen Überschrifteneintrag in der Quickbar function quickbar.theader ( colSpan, text, rowClass ) local class = rowClass or '' local tr = mw.html.create ( 'tr' ) tr:addClass( class ) tr:tag('td') :attr('colspan', colSpan ) :addClass('voy-qb-header' ) :wikitext(text) return tostring ( tr ) end -- creates a row with a key column and up to three value columns function quickbar.trItemTH ( className, text1, text2, text3, text4 ) local tr = mw.html.create ( 'tr' ) tr:addClass('voy-qb-item ' .. className ) :tag('th') :addClass('voy-qb-item-key') :wikitext(text1) if ( nilIf ( text2, '' ) ~= nil ) then tr:tag('td'):addClass('voy-qb-item-value1'):wikitext(text2) end if ( nilIf ( text3, '' ) ~= nil ) then tr:tag('td'):addClass('voy-qb-item-value2'):wikitext(text3) end if ( nilIf ( text4, '' ) ~= nil and nilIf ( text3, '' ) ~= nil ) then tr:tag('td'):addClass('voy-qb-item-value3'):wikitext(text4) end return tostring ( tr ) end -- creates a row with an image function quickbar.trImage ( className, imageFile, colSpan ) if coalesce ( imageFile, '' ) == '' then return '' end local tr = mw.html.create ( 'tr' ) tr:addClass('voy-qb-item ' .. className ) :tag('td') :attr('colspan', colSpan) :addClass('voy-qb-imagecell') :tag('div') :addClass('voy-qb-image') :wikitext(imageFile) return tostring ( tr ) end function quickbar.trTwoImages ( className, className1, className2, imageFile1, imageFile2, colSpan ) if ( not colSpan ) then colSpan = 2 end local td1 = mw.html.create ( 'td' ) td1:addClass( className1 ) :tag('div') :addClass('voy-qb-image') :wikitext(imageFile1) local td2 = mw.html.create ( 'td' ) td2:addClass( className2 ) :tag('div') :addClass('voy-qb-image') :wikitext(imageFile2) local tr = mw.html.create ( 'tr' ) tr:addClass('voy-qb-item ' .. className ) :tag('td') :attr('colspan', colSpan) :addClass('voy-qb-imagecell') :tag('table') :addClass('voy-qb-twoimages') :tag('tr') :node(td1) :node(td2) return tostring ( tr ) end function quickbar.locmap ( colSpan, map, rowClass ) local class = rowClass or '' local tr = mw.html.create ( 'tr' ) tr:addClass('voy-qb-locmap '..class) :tag('td') :attr('colspan', colSpan) :wikitext(locMap.locationMap(map)) return tostring ( tr ) end function quickbar.hr ( colSpan, rowClass ) local class = rowClass or '' local hr = mw.html.create ( 'tr' ) hr:addClass('voy-qb-line '..class) :tag('td') :attr('colspan', colSpan) :tag('hr') return tostring ( hr ) end -- Functions te be usen in Templates -- Creates the Attributes of a infobox table -- used in Vorlage:Quickbar table begin -- it creates the attributes only, because the templates creates just the opening tag function quickbar.qb_table ( frame ) local args = lowerArgs ( frame ) local pos = coalesce ( nilIf ( args.pos, '' ), 'right' ) local classes = 'voy-qb ' .. coalesce ( args.tableclass, '' ) if pos == 'right' then classes = classes .. ' voy-qb-right' end if pos == 'rechts' then classes = classes .. ' voy-qb-right' end if pos == 'left' then classes = classes .. ' voy-qb-left' end if pos == 'links' then classes = classes .. ' voy-qb-left' end if yesno ( coalesce ( args.topborder, 'no' ), false ) then classes = classes .. ' voy-qb-topborder' end return theadAttr ( classes, coalesce ( args["1"], '' ) ) end -- adds a header row to the infobox function quickbar.qb_header ( frame ) local args = lowerArgs ( frame ) return quickbar.theader ( coalesce ( args.colspan, '2' ), coalesce ( args["1"], args.text, 'Titel' ), coalesce ( args.rowclass, '' ) ) end -- adds a row to the info box containing a key column and up to three value columns function quickbar.qb_item ( frame ) local args = lowerArgs ( frame ) return quickbar.trItemTH ( coalesce ( args.rowclass, '' ), coalesce ( args.heading, '' ), coalesce ( args.value, '' ), coalesce ( args.value2, '' ), coalesce ( args.value3, '' ) ) end -- adds a row with an immage an image and an optoinal heading -- if no image is defined, Wikidata can optinally be used function quickbar.qb_image( frame ) local args = lowerArgs ( frame ) local display = '' local image = '' -- is a heading defined? if ( coalesce ( args.heading, '' ) ~= '' ) then display = quickbar.theader ( coalesce ( args.colspan, '2' ), coalesce ( args.heading, '' ), coalesce ( args.rowclass, '' ) ) end image = coalesce ( args.image, '' ) if image == '' then local wdImage = coalesce ( images.GetImage().getImage ( args.id, coalesce ( args.wikidataproperty, 'P18' ) ), '' ) if wdImage ~= '' then image = '[[File:' .. wdImage .. '|' .. coalesce ( args.wikidatafileparameter, '296px' ) .. ']]' end end if image ~= '' then return display .. quickbar.trImage ( coalesce ( args.rowclass, '' ), image, coalesce ( args.colspan, '2' ) ) else return display end end -- adds a horizonal line to separate entries visually function quickbar.qb_line ( frame ) local args = lowerArgs ( frame ) return quickbar.hr ( coalesce ( args.colspan, '2' ), coalesce ( args.rowclass, '' ) ) end return quickbar