Module:Message box/div: Difference between revisions

Content deleted Content added
start process to allow div styles to be output
leftimage
 
(15 intermediate revisions by 2 users not shown)
Line 155:
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
 
-- Find if the box has been wrongly substituted.
Line 187 ⟶ 188:
-- Set text style.
self.textstyle = args.textstyle
 
-- Set image classes.
self.imageRightClass = args.imagerightclass or args.imageclass
self.imageLeftClass = args.imageleftclass or args.imageclass
 
-- Find if we are on the template page or not. This functionality is only
Line 263 ⟶ 268:
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
Line 276 ⟶ 281:
else
talkText = string.format(
'%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].',
talkText,
talkTitle.prefixedText,
Line 329 ⟶ 334:
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=%s|alt=]]', self.typeImage
or 'ImboxInformation noticeicon4.pngsvg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
Line 342 ⟶ 347:
-- set templatestyles
-- DIV MIGRATION CONDITIONAL
if cfg.div_structurediv_templatestyles then
self.base_templatestyles = cfg.div_templatestyles
else
Line 500 ⟶ 505:
 
-- Create the box table.
local boxTablembox = root:tag('tablediv')
boxTablembox:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTablembox:addClass(class or nil)
end
mbox
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
 
if self.attrs then
boxTablembox:attr(self.attrs)
end
 
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = rowmbox:tag('tddiv'):addClass('mbox-image')
imageLeftCell
if self.imageCellDiv then
:addClass('mbox-empty-cell'self.imageLeftClass)
-- If we are using a div, redefine imageLeftCell so that the image
imageLeftCell :wikitext(self.imageLeft or nil)
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
 
-- Add the text.
local textCell = rowmbox:tag('tddiv'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
Line 572 ⟶ 563:
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = rowmbox:tag('tddiv'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
Line 584 ⟶ 571:
-- Add the below row.
if self.below then
boxTablembox:tag('trdiv')
:tagaddClass('tdmbox-text')
:attrcssText('colspan', self.imageRight and '3'textstyle or '2'nil)
:wikitext(self.below or nil)
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
 
Line 609 ⟶ 594:
 
function MessageBox:export()
-- DIV MIGRATION CONDITIONAL
if cfg.div_structure then
return MessageBox:exportDiv()
end
-- END DIV MIGRATION CONDITIONAL
 
local root = mw.html.create()
Line 667 ⟶ 647:
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
:addClass('mbox-text'self.imageLeftClass)
:cssTextwikitext(self.textstyleimageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
Line 722 ⟶ 704:
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
Line 768 ⟶ 751:
box:setParameters()
box:setCategories()
-- DIV MIGRATION CONDITIONAL
if box.cfg.div_structure then
return MessageBoxbox:exportDiv()
end
-- END DIV MIGRATION CONDITIONAL
return box:export()
end