إضافات

بالأسفل قائمة بالإضافات الخاصة التي يمكن أن يقوم المستخدمون بتفعيلها على صفحة تفضيلاتهم، معرفة بواسطة التعريفات. هذا العرض يوفر دخولا سهلا لصفحات رسائل النظام التي تعرف وصف وكود كل إضافة.

ابزارهای عمومی    [عرض الوصف]

ابزارهای بحث و گفتگو    [عرض الوصف]

تلفن همراه    [عرض الوصف]

رابط کاربری    [عرض الوصف]

پشتیبانی از زبان‌ها    [عرض الوصف]

نمای کلی ویکی‌شیعه    [عرض الوصف]

رابط کاربری در پنجرهٔ ویرایش    [عرض الوصف]

رابط کاربری در پنجرهٔ تاریخچه    [عرض الوصف]

ابزارهای گشت‌زنی و مقابله با خرابکاری    [عرض الوصف]

  • پیوند به تغییرات اخیر همراه با تنظیماتی که برای گشت‌زنی مناسب است (فقط ویرایش‌های گشت نخورده و مشکل‌دار نمایش داده می‌شود)(تصویر)  (عرض الوصف | صدّر)
    تستخدم: Gadget-RCForPatrollers.js

    يتطلب الحقوق التالية:

    • patrol
    تمكين الجميع بشكل افتراضي.
  • ابزار گشت‌زنی: فهرستی از جدیدترین مقالات ایجاد شده را نمایش می‌دهد و مواردی که بازبینی نشده‌اند نامشان را پررنگ‌تر می‌کند (پنجرهٔ تغییرات اخیر، پایین نوار سمت راست)  (عرض الوصف | صدّر)
    تستخدم: Gadget-patroller.js

    يتطلب الحقوق التالية:

    • patrol
    تمكين الجميع بشكل افتراضي.
  • پررنگ کردن برچسب‌ها (tags) در تغییرات اخیر  (عرض الوصف | صدّر)
    تستخدم: Gadget-taghighlighter.css

    يتطلب الحقوق التالية:

    • move
  • پنهان‌کردن برچسب‌هایی (tags) که مهم نیستند در تغییرات اخیر  (عرض الوصف | صدّر)
    تستخدم: Gadget-taghider.css

    يتطلب الحقوق التالية:

    • move
  • درخواست پنهان‌سازی ویرایش مقالات در تابلو اعلانات مدیران (دکمهٔ درخواست در حالت تفاوت، در کنار نوار جستجو)  (عرض الوصف | صدّر)
    تستخدم: Gadget-HideRequest.js
  • ابزار تمیزکاری اسپم  (عرض الوصف | صدّر)
    تستخدم: Gadget-AdsCleaner.js
  • ابزار کمک برای واگردانی خودکار  (عرض الوصف | صدّر)
    تستخدم: Gadget-rollback.js

    يتطلب الحقوق التالية:

    • rollback

منابع و پانویس‌ها    [عرض الوصف]

رده‌ها    [عرض الوصف]

میان‌ویکی    [عرض الوصف]

آمارها    [عرض الوصف]

برای مدیران    [عرض الوصف]

  • پاک کردن دلایل: این اسکریپت بصورت خودکار قسمت دلایل دیگر/اضافی را پاک می‌کند و سیاهه‌ها را مرتب‌تر می‌نماید. این اسکریپپ بر روی قسمت توضیح حذف تاثیری ندارد.  (عرض الوصف | صدّر)
    تستخدم: Gadget-CleanDeleteReasons.js

    يتطلب الحقوق التالية:

    • delete
  • افزودن زبانه اختیارات کاربر به نوار سمت راست  (عرض الوصف | صدّر)
    تستخدم: Gadget-UserRights.js

    يتطلب الحقوق التالية:

    • undelete
  • ابزاری برای نمایش دادن سیاهه بستن کاربر در صفحات (تاریخچه، ویژه مشارکت‌ها، تغییرات اخیر و...)  (عرض الوصف | صدّر)
    تستخدم: Gadget-markblocked.js

    يتطلب الحقوق التالية:

    • delete
    تمكين الجميع بشكل افتراضي.
  • خاموش و روشن کردن ResourceLoader (برای آزمودن تغییرات در کد ابزارها بدون معطلی)  (عرض الوصف | صدّر)
    تستخدم: Gadget-RLtoggle.js
  • پررنگ کردن خلاصه ویرایش هنگام ویرایش فضای نام مدیاویکی  (عرض الوصف | صدّر)
    تستخدم: Gadget-MediawikiEditSummary.js

    يتطلب الحقوق التالية:

    • undelete
    تمكين الجميع بشكل افتراضي.

توسط سایر افزونه‌ها استفاده می‌شود و در ترجیحات دیده نخواهند شد    [عرض الوصف]

قلم‌های کاربردی    [عرض الوصف]

ابزارهای آزمایشی    [عرض الوصف]

  • قلم امیری برای متون عربی (آزمایشی)  (عرض الوصف | صدّر)
    تستخدم: Gadget-Amiri.css
  • // تنظیم فونت و اندازه پیش‌فرض function setDefaultFont() {

       // دریافت تمام عناصر با کلاس "resizable-text" و تنظیم اندازه فونت پیش‌فرض
       var textElements = document.querySelectorAll(".resizable-text");
       for (var i = 0; i < textElements.length; i++) {
           var textElement = textElements[i];
           // بررسی فونت خانواده برای تعیین اندازه مناسب
           var fontFamily = window.getComputedStyle(textElement).fontFamily;
    
           if (fontFamily.indexOf("AdobeArabic-Regular") !== -1) {
               textElement.style.fontSize = "20px";
           } else {
               textElement.style.fontSize = "14px";
           }
       }
    
       // تنظیم فونت و اندازه برای عنصر با id "text"
       var textElement = document.querySelector("#text");
       if (textElement) {
           textElement.style.fontFamily = "'AdobeArabic-Regular', sans-serif";
           textElement.style.fontSize = "20px";
       }
    

    }

    // تغییر حالت دید در شب function toggleDarkMode() {

       // دریافت عنصر body و دکمه تغییر حالت
       var body = document.body;
       var darkModeButton = document.getElementById("toggle-dark-mode");
    
       // بررسی وجود دکمه تغییر حالت
       if (!darkModeButton) {
           return;
       }
    
       // تغییر کلاس حالت شب برای body
       body.classList.toggle("dark-mode");
    
       // بروزرسانی متن دکمه و ذخیره‌سازی وضعیت در localStorage
       if (body.classList.contains("dark-mode")) {
           darkModeButton.textContent = "\uD83C\uDF19"; // نمایش آیکون ماه
           localStorage.setItem("dark-mode", "enabled");
       } else {
           darkModeButton.textContent = "\uD83C\uDF1E"; // نمایش آیکون خورشید
           localStorage.setItem("dark-mode", "disabled");
       }
    

    }

    // مقداردهی اولیه حالت دید در شب function initializeDarkMode() {

       // دریافت دکمه تغییر حالت شب
       var darkModeButton = document.getElementById("toggle-dark-mode");
    
       // بررسی وجود دکمه
       if (!darkModeButton) {
           return;
       }
    
       // تنظیم وضعیت اولیه حالت شب بر اساس مقدار ذخیره‌شده در localStorage
       if (localStorage.getItem("dark-mode") === "enabled") {
           document.body.classList.add("dark-mode");
           darkModeButton.textContent = "\uD83C\uDF19"; // آیکون ماه
       } else {
           document.body.classList.remove("dark-mode");
           darkModeButton.textContent = "\uD83C\uDF1E"; // آیکون خورشید
       }
    
       // افزودن رویداد کلیک برای دکمه
       darkModeButton.addEventListener("click", toggleDarkMode);
    

    }

    // مقداردهی اولیه کنترل‌های تب و فونت function initializeTabsAndFontControls() {

       // دریافت تمام تب‌ها و محتوای مرتبط آن‌ها
       var TripleTabView = document.querySelectorAll(".tab");
       var contents = document.querySelectorAll(".tab-content");
    
       // بررسی وجود تب‌ها و محتواها
       if (TripleTabView.length === 0 || contents.length === 0) {
           return;
       }
    
       // افزودن رویداد کلیک به تب‌ها
       for (var i = 0; i < TripleTabView.length; i++) {
           TripleTabView[i].addEventListener("click", (function (index) {
               return function () {
                   // غیرفعال کردن تب‌ها و محتوای فعلی
                   for (var j = 0; j < TripleTabView.length; j++) {
                       TripleTabView[j].classList.remove("active");
                   }
                   for (var k = 0; k < contents.length; k++) {
                       contents[k].classList.remove("active");
                   }
    
                   // فعال کردن تب و محتوای مرتبط با آن
                   TripleTabView[index].classList.add("active");
                   var targetContent = document.getElementById(TripleTabView[index].getAttribute("data-tab"));
                   if (targetContent) {
                       targetContent.classList.add("active");
                   }
               };
           })(i));
       }
    
       // فعال کردن اولین تب و محتوا به صورت پیش‌فرض
       TripleTabView[0].classList.add("active");
       contents[0].classList.add("active");
    
       // دریافت دکمه‌های تنظیم فونت
       var increaseButton = document.getElementById("increase-font");
       var decreaseButton = document.getElementById("decrease-font");
       var resetButton = document.getElementById("reset-font");
    
       // مقادیر حداقلی و حداکثری اندازه فونت
       var MIN_FONT_SIZE = 10;
       var MAX_FONT_SIZE = 23;
    
       // تنظیم فونت پیش‌فرض
       setDefaultFont();
    
       // افزودن رویداد کلیک برای افزایش اندازه فونت
       if (increaseButton) {
           increaseButton.addEventListener("click", function () {
               adjustFontSize(0.5, MAX_FONT_SIZE);
           });
       }
    
       // افزودن رویداد کلیک برای کاهش اندازه فونت
       if (decreaseButton) {
           decreaseButton.addEventListener("click", function () {
               adjustFontSize(-0.5, MIN_FONT_SIZE);
           });
       }
    
       // افزودن رویداد کلیک برای بازنشانی اندازه فونت
       if (resetButton) {
           resetButton.addEventListener("click", function () {
               setDefaultFont();
           });
       }
    

    }

    // تنظیم اندازه فونت function adjustFontSize(delta, limit) {

       // دریافت محتوای فعال در تب‌ها
       var activeContent = document.querySelector('.tab-content.active');
       if (activeContent) {
           // دریافت تمام عناصر با کلاس "resizable-text" در محتوای فعال
           var textElements = activeContent.querySelectorAll(".resizable-text");
           for (var i = 0; i < textElements.length; i++) {
               var textElement = textElements[i];
               // محاسبه اندازه جدید فونت با توجه به تغییر دلتا و محدودیت‌ها
               var currentSize = parseFloat(window.getComputedStyle(textElement).fontSize);
               var newSize = currentSize + delta;
               if ((delta > 0 && newSize <= limit) || (delta < 0 && newSize >= limit)) {
                   textElement.style.fontSize = newSize + "px";
               }
           }
       }
    

    }

    // مشاهده تغییرات در DOM و مقداردهی اولیه var observer = new MutationObserver(function () {

       // بررسی وجود تمام دکمه‌های لازم برای مقداردهی اولیه
       if (
           document.getElementById("increase-font") &&
           document.getElementById("decrease-font") &&
           document.getElementById("reset-font") &&
           document.getElementById("toggle-dark-mode")
       ) {
           observer.disconnect();
           initializeTabsAndFontControls();
           initializeDarkMode();
       }
    

    });

    // مشاهده تغییرات در DOM برای اطمینان از در دسترس بودن عناصر مورد نیاز observer.observe(document.body, { childList: true, subtree: true });

    // مقداردهی اولیه در صورت آماده بودن DOM if (document.readyState === "loading") {

       document.addEventListener("DOMContentLoaded", function () {
           setDefaultFont();
           initializeTabsAndFontControls();
           initializeDarkMode();
       });
    

    } else {

       setDefaultFont();
       initializeTabsAndFontControls();
       initializeDarkMode();
    

    }

      (عرض الوصف | صدّر)
    تستخدم: Gadget-TripleTabView.js، Gadget-TwoColumnTable.js، Gadget-TripleTabView Styles.css، Gadget-TripleTabView dark.css، Gadget-TripleTabView Font size.css، Gadget-TwoColumnTable.css
    تمكين الجميع بشكل افتراضي.