مدیاویکی:Common.js: تفاوت میان نسخه‌ها

از ویکی لاله زار آنلاین
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
 
(۱۴ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۲۱: خط ۲۱:
mw.loader.using(['mediawiki.util'], function () {
mw.loader.using(['mediawiki.util'], function () {


     // شناسه منوی "بیشتر" در پوسته Vector
     // شناسه منوی "بیشتر"
     var moreMenuID = 'p-tb';
     var moreMenuID = 'p-tb';


     // پوسته Vector-2022 شناسه متفاوت دارد
     // نسخه Vector-2022
     if ($('#vector-page-tools').length) {
     if ($('#vector-page-tools').length) {
         moreMenuID = 'vector-page-tools';
         moreMenuID = 'vector-page-tools';
     }
     }


     // افزودن لینک جدید
     // -------- لینک ۱: لاله‌زار آنلاین --------
     var link = mw.util.addPortletLink(
     var link1 = mw.util.addPortletLink(
         moreMenuID,                             // محل قرارگیری
         moreMenuID,
         'https://lalehzaronline.com',           // آدرس لینک
         'https://lalehzaronline.com',
         'لاله‌زار آنلاین',                       // عنوان لینک
         'لاله‌زار آنلاین',
         't-lalehzar-online'                     // شناسه سفارشی
         't-lalehzar-online'
     );
     );


    // باز شدن در تب جدید
     if (link1) {
     if (link) {
         $(link1).find('a').attr('target', '_blank');
         $(link).find('a').attr('target', '_blank');
     }
     }


    // -------- لینک ۲: احسان صنعت پاسارگاد --------
 
mw.loader.using('mediawiki.util', function () {
    mw.util.addPortletLink(
        'p-tb',                                // منوی ابزارها (Toolbox)
        mw.util.getUrl('Category:احسان_صنعت_پاسارگاد ESP'), // مقصد لینک
        'احسان صنعت پاسارگاد'                  // متن لینک
    );
});
});
});






});
//مخفی کردن مرکز دانلود
var namespace = mw.config.get('wgNamespaceNumber');
var pageName = mw.config.get('wgPageName');
var userGroups = mw.config.get('wgUserGroups') || [];
var isSysop = userGroups.indexOf('sysop') !== -1;
if (isSysop) {
    document.body.classList.add('group-sysop');
}
// تغییر در خط زیر اعمال شده است
if (namespace === 14 && !isSysop && pageName.indexOf('دانلود') !== -1) {
    document.documentElement.style.display = 'none';
    window.location.href = '/wiki/index.php';
}
//حفاظت در برابر کپی غیر مجاز
mw.loader.using(['mediawiki.user']).then(function () {
    // بررسی اینکه آیا کاربر جزو گروه مدیران (sysop) نیست
    if (!mw.config.get('wgUserGroups').includes('sysop')) {
       
        // 1. غیرفعال کردن انتخاب متن با تزریق CSS
        var style = document.createElement('style');
        style.innerHTML = 'body { -webkit-user-select: none; -ms-user-select: none; user-select: none; }';
        document.head.appendChild(style);
        // 2. غیرفعال کردن کلیک راست
        document.addEventListener('contextmenu', function(e) {
            e.preventDefault();
        });
        // 3. مسدود کردن کلیدهای کپی، سورس‌کد و Inspect Element
        document.addEventListener('keydown', function(e) {
            // مسدود کردن Ctrl+C, Ctrl+S, Ctrl+U (کپی، ذخیره، سورس‌کد)
            if (e.ctrlKey && !e.shiftKey && (e.key === 'c' || e.key === 'C' || e.key === 'u' || e.key === 'U' || e.key === 's' || e.key === 'S')) {
                e.preventDefault();
            }
            // مسدود کردن F12
            if (e.key === 'F12') {
                e.preventDefault();
            }
            // مسدود کردن Ctrl+Shift+I , Ctrl+Shift+C , Ctrl+Shift+J (مربوط به Inspect)
            if (e.ctrlKey && e.shiftKey && (e.key === 'i' || e.key === 'I' || e.key === 'c' || e.key === 'C' || e.key === 'j' || e.key === 'J')) {
                e.preventDefault();
            }
        });
    }
});
// Hide action tabs (History, Edit Source, Purge) for non-admins
mw.loader.using('mediawiki.util', function () {
    var userGroups = mw.config.get('wgUserGroups');
    // If user is not sysop/admin
    if (!userGroups.includes('sysop')) {
        // Hide History tab
        $('#ca-history, a[accesskey="h"]').hide();
        // Hide Edit source / View source
        $('#ca-edit, #ca-viewsource, a[accesskey="e"]').hide();
        // Hide Purge (sometimes appears in menus)
        $('#ca-purge').hide();
        $('a[href*="action=purge"]').hide();
    }
});
});

نسخهٔ کنونی تا ۲۹ آوریل ۲۰۲۶، ساعت ۰۹:۰۱

mw.loader.using('mediawiki.user', function () {

    var isSysop = mw.config.get('wgUserGroups').includes('sysop');

    // آیتم‌های منوی «بیشتر»
    var moreMenuItems = [
        '#t-whatlinkshere',
        '#t-recentchangeslinked',
        '#t-print',
        '#t-permalink',
        '#t-info',
        '#t-smph'
    ];

    if (!isSysop) {
        moreMenuItems.forEach(function(selector) {
            $(selector).hide();
              $('#t-pagelog').hide();
        });
    }
mw.loader.using(['mediawiki.util'], function () {

    // شناسه منوی "بیشتر"
    var moreMenuID = 'p-tb';

    // نسخه Vector-2022
    if ($('#vector-page-tools').length) {
        moreMenuID = 'vector-page-tools';
    }

    // -------- لینک ۱: لاله‌زار آنلاین --------
    var link1 = mw.util.addPortletLink(
        moreMenuID,
        'https://lalehzaronline.com',
        'لاله‌زار آنلاین',
        't-lalehzar-online'
    );

    if (link1) {
        $(link1).find('a').attr('target', '_blank');
    }


    // -------- لینک ۲: احسان صنعت پاسارگاد --------
   
mw.loader.using('mediawiki.util', function () {
    mw.util.addPortletLink(
        'p-tb',                                // منوی ابزارها (Toolbox)
        mw.util.getUrl('Category:احسان_صنعت_پاسارگاد ESP'), // مقصد لینک
        'احسان صنعت پاسارگاد'                  // متن لینک
    );
});
});



});


//مخفی کردن مرکز دانلود
var namespace = mw.config.get('wgNamespaceNumber');
var pageName = mw.config.get('wgPageName');
var userGroups = mw.config.get('wgUserGroups') || [];
var isSysop = userGroups.indexOf('sysop') !== -1;

if (isSysop) {
    document.body.classList.add('group-sysop');
}

// تغییر در خط زیر اعمال شده است
if (namespace === 14 && !isSysop && pageName.indexOf('دانلود') !== -1) {
    document.documentElement.style.display = 'none';
    window.location.href = '/wiki/index.php';
}
//حفاظت در برابر کپی غیر مجاز
mw.loader.using(['mediawiki.user']).then(function () {
    // بررسی اینکه آیا کاربر جزو گروه مدیران (sysop) نیست
    if (!mw.config.get('wgUserGroups').includes('sysop')) {
        
        // 1. غیرفعال کردن انتخاب متن با تزریق CSS
        var style = document.createElement('style');
        style.innerHTML = 'body { -webkit-user-select: none; -ms-user-select: none; user-select: none; }';
        document.head.appendChild(style);

        // 2. غیرفعال کردن کلیک راست
        document.addEventListener('contextmenu', function(e) {
            e.preventDefault();
        });

        // 3. مسدود کردن کلیدهای کپی، سورس‌کد و Inspect Element
        document.addEventListener('keydown', function(e) {
            // مسدود کردن Ctrl+C, Ctrl+S, Ctrl+U (کپی، ذخیره، سورس‌کد)
            if (e.ctrlKey && !e.shiftKey && (e.key === 'c' || e.key === 'C' || e.key === 'u' || e.key === 'U' || e.key === 's' || e.key === 'S')) {
                e.preventDefault();
            }
            // مسدود کردن F12
            if (e.key === 'F12') {
                e.preventDefault();
            }
            // مسدود کردن Ctrl+Shift+I , Ctrl+Shift+C , Ctrl+Shift+J (مربوط به Inspect)
            if (e.ctrlKey && e.shiftKey && (e.key === 'i' || e.key === 'I' || e.key === 'c' || e.key === 'C' || e.key === 'j' || e.key === 'J')) {
                e.preventDefault();
            }
        });
    }
});
// Hide action tabs (History, Edit Source, Purge) for non-admins
mw.loader.using('mediawiki.util', function () {
    var userGroups = mw.config.get('wgUserGroups');

    // If user is not sysop/admin
    if (!userGroups.includes('sysop')) {

        // Hide History tab
        $('#ca-history, a[accesskey="h"]').hide();

        // Hide Edit source / View source
        $('#ca-edit, #ca-viewsource, a[accesskey="e"]').hide();

        // Hide Purge (sometimes appears in menus)
        $('#ca-purge').hide();
        $('a[href*="action=purge"]').hide();
    }
});