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

از بنیاد اویستاک
پرش به ناوبری پرش به جستجو
صفحه‌ای تازه حاوی «Any JavaScript here will be loaded for all users on every page load.: $(function () { var pageTitle = mw.config.get("wgPageName"); var baseTitle = pageTitle.split('/')[0]; // برای آوانویسی و ترجمه var sidebar = $('#p-lang ul'); function checkAndAdd(subpage, label) { var url = mw.util.getUrl(baseTitle + '/' + subpage); $.get(mw.util.wikiScript('api'), { action: 'query', format: 'json',...» ایجاد کرد
 
بدون خلاصۀ ویرایش
 
(۹ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۱: خط ۱:
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
$(function () {
   var pageTitle = mw.config.get("wgPageName");
   var pageTitle = mw.config.get("wgPageName");
   var baseTitle = pageTitle.split('/')[0]; // برای آوانویسی و ترجمه
   var baseTitle = pageTitle.split('/')[0];
  var sidebar = $('#p-lang ul');


   function checkAndAdd(subpage, label) {
  // فراخوانی API برای دریافت زیرصفحه‌ها
     var url = mw.util.getUrl(baseTitle + '/' + subpage);
   function getSubpages(title) {
    $.get(mw.util.wikiScript('api'), {
     return $.get(mw.util.wikiScript('api'), {
       action: 'query',
       action: 'query',
       format: 'json',
       format: 'json',
       titles: baseTitle + '/' + subpage
       list: 'allpages',
     }, function (data) {
      apprefix: title + '/',
       var pages = data.query.pages;
      aplimit: 20
      var pageId = Object.keys(pages)[0];
     }).then(function (data) {
      if (pageId !== "-1") {
       return data.query.allpages;
        sidebar.append(
          $('<li>').append(
            $('<a>')
              .attr('href', url)
              .text(label)
          )
        );
      }
     });
     });
   }
   }


   // اگر منوی زبان نبود، ایجادش کن
   getSubpages(baseTitle).then(function(subpages) {
  if (sidebar.length === 0) {
    if (subpages.length > 0) {
    $('#p-lang').append('<ul></ul>');
      // ساخت منوی سایدبار به صورت داینامیک
    sidebar = $('#p-lang ul');
      var box = $('<div>', {id: 'p-avistak-links', class: 'portlet', role: 'navigation'}).append(
  }
        $('<h3>').text('بخش‌های مرتبط'),
        $('<div>', {class: 'pBody'}).append($('<ul>'))
      );
     
      var list = box.find('ul');
 
      // لینک به صفحه اصلی (فقط اگه خودمون داخلش نیستیم)
      if (pageTitle !== baseTitle) {
        list.append($('<li>').append(
          $('<a>').attr('href', mw.util.getUrl(baseTitle)).text('← ' + baseTitle)
        ));
      }
 
      // افزودن زیرصفحه‌ها (به‌جز صفحه‌ای که داخلش هستیم)
      subpages.forEach(function(page) {
        if (page.title !== pageTitle) {
          var label = page.title.split('/')[1]; // اسم زیرصفحه
          list.append($('<li>').append(
            $('<a>').attr('href', mw.util.getUrl(page.title)).text('← ' + label)
          ));
        }
      });


  checkAndAdd('آوانویسی', '← آوانویسی');
      // اضافه کردن منوی ساخته‌شده به سایدبار
   checkAndAdd('ترجمه', '← ترجمه فارسی');
      $('#mw-panel').append(box);
    }
   });
});
});

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

$(function () {
  var pageTitle = mw.config.get("wgPageName");
  var baseTitle = pageTitle.split('/')[0];

  // فراخوانی API برای دریافت زیرصفحه‌ها
  function getSubpages(title) {
    return $.get(mw.util.wikiScript('api'), {
      action: 'query',
      format: 'json',
      list: 'allpages',
      apprefix: title + '/',
      aplimit: 20
    }).then(function (data) {
      return data.query.allpages;
    });
  }

  getSubpages(baseTitle).then(function(subpages) {
    if (subpages.length > 0) {
      // ساخت منوی سایدبار به صورت داینامیک
      var box = $('<div>', {id: 'p-avistak-links', class: 'portlet', role: 'navigation'}).append(
        $('<h3>').text('بخش‌های مرتبط'),
        $('<div>', {class: 'pBody'}).append($('<ul>'))
      );
      
      var list = box.find('ul');

      // لینک به صفحه اصلی (فقط اگه خودمون داخلش نیستیم)
      if (pageTitle !== baseTitle) {
        list.append($('<li>').append(
          $('<a>').attr('href', mw.util.getUrl(baseTitle)).text('← ' + baseTitle)
        ));
      }

      // افزودن زیرصفحه‌ها (به‌جز صفحه‌ای که داخلش هستیم)
      subpages.forEach(function(page) {
        if (page.title !== pageTitle) {
          var label = page.title.split('/')[1]; // اسم زیرصفحه
          list.append($('<li>').append(
            $('<a>').attr('href', mw.util.getUrl(page.title)).text('← ' + label)
          ));
        }
      });

      // اضافه کردن منوی ساخته‌شده به سایدبار
      $('#mw-panel').append(box);
    }
  });
});