در حال ویرایش پودمان:Message box

هشدار: شما وارد نشده‌اید. نشانی آی‌پی شما برای عموم قابل مشاهده خواهد بود اگر هر تغییری ایجاد کنید. اگر وارد شوید یا یک حساب کاربری بسازید، ویرایش‌هایتان به نام کاربری‌تان نسبت داده خواهد شد، همراه با مزایای دیگر.

این ویرایش را می‌توان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که می‌خواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثی‌سازی ویرایش را به پایان ببرید.

نسخهٔ فعلی متن شما
خط ۳: خط ۳:


-- Load necessary modules.
-- Load necessary modules.
require('strict')
require('Module:No globals')
local getArgs
local getArgs
local yesno = require('Module:Yesno')
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()


-- Get a language object for formatDate and ucfirst.
-- Get a language object for formatDate and ucfirst.
خط ۷۸: خط ۷۷:
if args.demospace and args.demospace ~= '' then
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
-- implement demospace parameter of mbox
local demospace = mw.ustring.lower(args.demospace)
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif mw.ustring.find( demospace, 'بحث' ) then
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
-- demo as a talk page
obj.cfg = cfg.tmbox
obj.cfg = cfg.tmbox
خط ۱۳۴: خط ۱۳۳:
end
end
if sort then
if sort then
cat = mw.ustring.format('[[رده:%s|%s]]', cat, sort)
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
else
cat = mw.ustring.format('[[رده:%s]]', cat)
cat = string.format('[[Category:%s]]', cat)
end
end
self.hasCategories = true
self.hasCategories = true
خط ۱۷۷: خط ۱۷۶:
self.name = args.name
self.name = args.name
if self.name then
if self.name then
self:addClass('box-' .. mw.ustring.gsub(self.name,' ','_'))
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
end
if yesno(args.plainlinks) ~= false then
if yesno(args.plainlinks) ~= false then
خط ۲۰۷: خط ۲۰۶:
local templateName = mw.ustring.match(
local templateName = mw.ustring.match(
self.name,
self.name,
'^([tT][eE][mM][pP][lL][aA][tT][eE]|الگو)[%s_]*:[%s_]*(.*)$'
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
) or self.name
templateName = 'الگو:' .. templateName
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
self.templateTitle = getTitleObject(templateName)
end
end
خط ۲۲۵: خط ۲۲۴:
local sect
local sect
if args.sect == '' then
if args.sect == '' then
sect = 'این ' .. (cfg.sectionDefault or 'صفحه')
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
elseif type(args.sect) == 'string' then
sect = 'این ' .. args.sect
sect = 'This ' .. args.sect
end
end
local issue = args.issue
local issue = args.issue
خط ۲۶۹: خط ۲۶۸:
end
end
if talkTitle and talkTitle.exists then
if talkTitle and talkTitle.exists then
                local talkText
local talkText = 'Relevant discussion may be found on'
                if self.isSmall then
if talkArgIsTalkPage then
                    local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format(
                    talkText = mw.ustring.format('([[%s|بحث]])', talkLink)
'%s [[%s|%s]].',
                else
talkText,
                    talkText = 'گفتگوی مربوطه ممکن است در'
talk,
                    if talkArgIsTalkPage then
talkTitle.prefixedText
                        talkText = mw.ustring.format(
)
                            '%s [[%s|%s]] %s',
else
                            talkText,
talkText = string.format(
                            talk,
'%s the [[%s#%s|talk page]].',
                            talkTitle.prefixedText,
talkText,
'یافت شود'
talkTitle.prefixedText,
                        )
talk
                    else
)
                        talkText = mw.ustring.format(
end
                            '%s [[%s#%s|صفحهٔ بحث]] %s.',
                            talkText,
                            talkTitle.prefixedText,
                            talk,
'یافت شود'
                        )
                    end
                end
self.talk = talkText
self.talk = talkText
end
end
خط ۳۰۳: خط ۲۹۴:
date = args.date
date = args.date
elseif args.date == '' and self.isTemplatePage then
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y') -- استفاده از تاریخ میلادی مرسوم است و نه تاریخ شمسی
date = lang:formatDate('F Y')
end
end
if date then
if date then
self.date = mw.ustring.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
end
self.info = args.info
self.info = args.info
خط ۳۴۲: خط ۳۳۳:
and (cfg.imageSmallSize or '30x30px')
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
or '40x40px'
self.imageLeft = mw.ustring.format('[[پرونده:%s|%s|link=|alt=]]', self.typeImage
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
or 'Imbox notice.png', imageSize)
end
end
خط ۳۵۲: خط ۳۴۳:
self.imageRight = imageRight
self.imageRight = imageRight
end
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
end


خط ۳۷۵: خط ۳۶۲:
local date = args.date
local date = args.date
date = type(date) == 'string' and date
date = type(date) == 'string' and date
local preposition = 'از'
local preposition = 'from'
for _, num in ipairs(nums) do
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
local mainCat = args['cat' .. tostring(num)]
خط ۳۸۳: خط ۳۷۰:
allCat = type(allCat) == 'string' and allCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
if mainCat and date and date ~= '' then
local catTitle = mw.ustring.format('%s %s %s', mainCat, preposition, date)
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
self:addCat(0, catTitle)
catTitle = getTitleObject('رده:' .. catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
if not catTitle or not catTitle.exists then
self:addCat(0, 'مقاله‌های دارای پارامتر تاریخ نادرست در الگو')
self:addCat(0, 'Articles with invalid date parameter in template')
end
end
elseif mainCat and (not date or date == '') then
elseif mainCat and (not date or date == '') then
خط ۴۳۳: خط ۴۲۰:
if self.categoryNums and #self.categoryNums > 0 then
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateCat = templateErrorCategory
templateSort = 'ر'
templateSort = 'C'
end
end
end
end
خط ۴۴۴: خط ۴۳۱:
if self.invalidTypeError then
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'پارامتر نیازمند اصلاح الگوی پیامی ویکی‌پدیا', allSort)
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
if self.isSubstituted then
if self.isSubstituted then
self:addCat('all', 'صفحه‌های همراه با الگوی نادرست جانشین‌شده')
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
end
end
خط ۴۸۵: خط ۴۷۲:
root:tag('b')
root:tag('b')
:addClass('error')
:addClass('error')
:wikitext(mw.ustring.format(
:wikitext(string.format(
'الگوی <code>%s[[الگو:%s|%s]]%s</code> اشتباه جانشین شده‌است.',
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
end


خط ۵۲۸: خط ۵۰۱:
-- image width to 52px. If any images in a div are wider than that,
-- 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.
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
end
imageLeftCell:wikitext(self.imageLeft or nil)
imageLeftCell:wikitext(self.imageLeft or nil)
خط ۵۳۸: خط ۵۱۱:
row:tag('td')
row:tag('td')
:addClass('mbox-empty-cell')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
end


خط ۵۵۰: خط ۵۲۴:
:addClass('mbox-text-span')
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
textCellDiv:tag('span')
:addClass('hide-when-compact')
:addClass('hide-when-compact')
خط ۵۶۴: خط ۵۳۸:
end
end
if self.removalNotice then
if self.removalNotice then
textCellDiv:tag('span')
textCellDiv:tag('small')
:addClass('hide-when-compact')
:addClass('hide-when-compact')
:tag('i')
:tag('i')
:wikitext(mw.ustring.format(" (%s)", self.removalNotice))
:wikitext(string.format(" (%s)", self.removalNotice))
end
end
else
else
خط ۵۸۲: خط ۵۵۶:
-- If we are using a div, redefine imageRightCell so that the image
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
end
imageRightCell
imageRightCell
خط ۶۰۱: خط ۵۷۵:
if self.invalidTypeError then
if self.invalidTypeError then
root:tag('div')
root:tag('div')
:addClass('mbox-invalid-type')
:css('text-align', 'center')
:wikitext(mw.ustring.format(
:wikitext(string.format(
'این جعبه پیام از پارامتر نامعتبر «type=%s» استفاده می‌کند و نیازمند اصلاح است.',
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
self.type or ''
))
))
لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در ویکی حج منتشرشده تحت Creative Commons Attribution-NonCommercial-ShareAlike در نظر گرفته‌می‌شوند (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). اگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش و توزیع شوند؛ بنابراین، آنها را اینجا ارائه نکنید.
شما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!
لغو راهنمای ویرایش‌کردن (در پنجرهٔ تازه باز می‌شود)

الگوی به‌کاررفته در این صفحه: