وحدة:Icon
صُنّفت هذه الوحدة على أنها محمية. تصل الوحدة لهذه المرحلة عندما تستخدم في صفحات كثيرة جدًا. فيجب أن تحمى بسبب أن عمليات التخريب أو الأخطاء تطال الكثير من الصفحات. كما هناك تعديلات غير مجدية تتم على هذه الوحدات تكون عبارة عن حركات صبيانية تسبب تعب للخادم. |
هذه الوحدة مستخدمة في عدد كبير من الصفحات (96,839+) . لتفادي خلق بلبلة على نطاق واسع من الصفحات وزيادة الأعباء على الخوادم، يجب تجربة أي تعديل في هذه الصفحات الفرعية /ملعب أو /تجربة أو في ملعبك. بعدها يمكنك اضافة التعديلات دفعة واحدة، ورجاءً، لا تنسَ مناقشة أمر التعديلات أوّلًا قبل القيام بها. |
تعرض هذه الوحدة رمزًا اعتمادًا على الكود المعطى لها. تنفّذ قالب:أيقونة.
الاستخدام
عدلمن نص الويكي
عدلمن نص الويكي، يجب استخدام هذه الوحدة عبر قالب:أيقونة. يرجى الاطلاع على صفحة القالب للحصول على توثيق.
من لوا
عدللاستخدام هذه الوحدة من وحدة لوا أخرى، قم بتحميلها أولاً:
local mIcon = require('Module:Icon')
وبعد ذلك يمكنك إنشاء أيقونات باستخدام الوظيفة _main.
mIcon._main(args)
المتغير args هو جدول الحجج. يتوافق هذا مع المعلمات المقبولة بواسطة قالب:أيقونة - يرجى الاطلاع على صفحة القالب للحصول على وثائق المعلمات.
بيانات
عدليتم تخزين بيانات الأيقونة في وحدة:Icon/data. راجع الإرشادات الموجودة هناك لمعرفة كيفية إضافة الرموز وإزالتها.
-- تنفذ هذه الوحدة [[قالب:أيقونة]].
require("strict")
local yesNo = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local getPlain = nil
local p = {}
-- تحديد ما إذا كان يتم استدعاؤنا من الملعب
local sandbox = mw.getCurrentFrame():getTitle():find('ملعب', 1, true) and '/ملعب' or ''
-- تنفذ [[قالب:أيقونة]]
-- إرجاع صورة الأيقونة المقابلة لصنف (مثل 'ب')
function p._main(args, data)
local data_module = 'Module:Icon/data'..sandbox
data = data or mw.loadData(data_module)
local code
if args['صنف'] then
code = args['صنف']
else
code = args.class or args[1]
end
local iconData
if code then
code = code:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case
iconData = data[code]
end
if not iconData then
iconData = data._DEFAULT
end
return string.format(
'[[ملف:%s%s%s|%s|class=noviewer|alt=%s]]',
iconData.image,
iconData.tooltip and '|' .. iconData.tooltip or '',
iconData.link == false and '|link=' or '',
(args.size or args['حجم'] or args['قياس']) or '16x16px',
iconData.alt or ''
)
end
-- تنفذ [[قالب:أيقونة وصلة]]، مجموعة شاملة من [[قالب:أيقونة]]
-- إرجاع أيقونة، بالإضافة إلى وصلة ويكي منسقة بشكل مناسب
function p._link(args, data)
if args['حجم'] then
args.size = args['حجم']
else
args.size = args.size or args.iconsize
end
local icon = p._main(args, data)
-- If no link given in args[2], default back to [[قالب:Icon]]
if not args[2] then
return icon
end
-- Strip wiki markup out of link
getPlain = getPlain or require("Module:Text").Text().getPlain
local link = getPlain(args[2])
local display = args[3] or args[2]
-- italicize display string, if requested
if yesNo(args.i) or yesNo(args.italic) or yesNo(args.italics) then
display = '<i>'..display..'</i>'
end
-- if display is link, just use standard wlink
if link == display then
return icon..' [['..link..']]'
end
return icon..' [['..link..'|'..display..']]'
end
function p.main(frame)
local args = getArgs(frame,{parentFirst=true})
return p._main(args)
end
function p.link(frame)
local args = getArgs(frame,{parentFirst=true})
return p._link(args)
end
return p