Module:Message box: திருத்தங்களுக்கு இடையிலான வேறுபாடு

உள்ளடக்கம் நீக்கப்பட்டது உள்ளடக்கம் சேர்க்கப்பட்டது
imported>AGK
spread comment over two lines, as modules do not wrap lines
Allow passing attributes per protected edit request by Jackmcbarn. Also remove undocumented "hidden" parameter and format the module so it mostly fits within 80 chars.
வரிசை 1:
-- This is a meta-module for producing message box templates, including {{mbox}}, {{ambox}},
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
 
-- Require necessary modules.
வரிசை 122:
nsVals[i] = format('"%s"', val)
end
error(
error( 'invalid ns parameter passed to box:addCat; valid values are ' .. mw.text.listToText(nsVals, nil, ' or '))
.. mw.text.listToText(nsVals, nil, ' or ')
)
end
self[tname] = self[tname] or {}
வரி 136 ⟶ 139:
self.classes = self.classes or {}
tinsert(self.classes, class)
end
 
function box:addAttr(attr, val)
if type(attr) ~= 'string' or type(val) ~= 'string' then return end
self.attrs = self.attrs or {}
tinsert(self.attrs, attr)
end
 
வரி 158 ⟶ 167:
end
tinsert(boxTypes, '"mbox"')
error(format(
error(format( 'invalid message box type "%s"; valid types are %s', tostring(boxType), mw.text.listToText(boxTypes)), 2)
tostring(boxType),
mw.text.listToText(boxTypes)
), 2)
end
return cfg
வரி 164 ⟶ 177:
 
function box:removeBlankArgs(cfg, args)
-- Only allow blank arguments for the parameter names listed in cfg.allowBlankParams.
-- cfg.allowBlankParams.
local newArgs = {}
for k, v in pairs(args) do
வரி 181 ⟶ 195:
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData and true or false
and self.type
and not typeData
and true
or false
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
வரி 206 ⟶ 224:
self.id = args.id
end
self:addClass(
self:addClass( cfg.usePlainlinksParam and yesno(args.plainlinks or true) and 'plainlinks')
)
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
வரி 212 ⟶ 232:
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
if yesno(args.hidden) then
self:addClass('infobox editsection')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
 
-- Set text style.
self.textstyle = args.textstyle
 
-- Find if we are on the template page or not. This functionality is only used if useCollapsibleTextFields is set,
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory and cfg.templateCategoryRequireName are set.
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$') or self.name
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) or false
and (mw.title.equals(self.templateTitletitle, self.title) or self.title:isSubpageOf(self.templateTitle))
or false
end
 
-- Process data for collapsible text fields. At the moment these are only used in {{ambox}}.
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
வரி 261 ⟶ 289:
-- Get the self.talk value.
local talk = args.talk
if talk == '' -- Show talk links on the template page or template subpages if the talk parameter is blank.
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
and (mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle))
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
வரி 270 ⟶ 303:
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else assume that it's a section heading,
-- assume that it's a section heading, and make a link to the talk page of the current page with that section heading.
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(self.title.text, mw.site.namespaces[self.title.namespace].talk.id)
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = format('%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText)
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = format('%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk)
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
வரி 303 ⟶ 350:
end
 
-- Set the non-collapsible text field. At the moment this is used by all box types other than ambox,
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
வரி 328 ⟶ 375:
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px'
and (cfg.imageSmallSize or '30x30px')
self.imageLeft = format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize)
or '40x40px'
self.imageLeft = format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize)
or 'Imbox notice.png', imageSize)
end
end
வரி 360 ⟶ 410:
local preposition = 'from'
for _, num in ipairs(self.categoryParamNums) do
local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
வரி 369 ⟶ 420:
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat('main', 'Articles with invalid date parameter in template')
'main',
'Articles with invalid date parameter in template'
)
end
elseif mainCat and (not date or date == '') then
வரி 426 ⟶ 480:
end
 
-- Convert category tables to strings and pass them through [[Module:Category handler]].
-- [[Module:Category handler]].
self.categories = categoryHandler{
main = tconcat(self.mainCats or {}),
வரி 462 ⟶ 517:
.cssText(self.style)
.attr('role', 'presentation')
for attr, val in pairs(self.attrs or {}) do
boxTable
.attr(attr, val)
end
 
-- Add the left-hand image.
வரி 468 ⟶ 527:
local imageLeftCell = row.tag('td').addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image is inside it.
-- is inside it. Divs use style="width: 52px;", which limits the image width to 52px. If any
-- image width to 52px. If any images in a div are wider than that, they may overlap with the text or cause
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell.tag('div').css('width', '52px')
end
வரி 477 ⟶ 536:
.wikitext(self.imageLeft)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and some don't.
-- some don't. The old template code in templates where empty cells are specified gives the following hint:
-- specified gives the following hint: "No image. Cell with some width or padding necessary for text cell to have 100% width."
-- or padding necessary for text cell to have 100% width."
row.tag('td')
.addClass('mbox-empty-cell')
வரி 488 ⟶ 548:
local textCell = row.tag('td').addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be collapsible. At the
-- collapsible. At the moment, only ambox uses this.
textCell
.cssText(self.textstyle)
வரி 522 ⟶ 582:
local imageRightCell = row.tag('td').addClass('mbox-imageright')
if self.imageCellDiv then
imageRightCell = imageRightCell.tag('div').css('width', '52px') -- If we are using a div, redefine imageRightCell so that the image is inside it.
-- is inside it.
imageRightCell = imageRightCell.tag('div').css('width', '52px')
end
imageRightCell
வரி 543 ⟶ 605:
.tag('div')
.css('text-align', 'center')
.wikitext(format(
.wikitext(format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or ''))
self.type or ''
))
end
 
"https://tamilar.wiki/w/Module:Message_box" இலிருந்து மீள்விக்கப்பட்டது