MediaWiki:Common.js: Revizyonlar arasındaki fark

VMTools Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Değişiklik özeti yok
Etiket: Geri alındı
Değişiklik özeti yok
Etiket: Geri alındı
6. satır: 6. satır:
});
});


mw.loader.using(['mediawiki.api'], function () {
mw.loader.using('mediawiki.api', function () {
  // DOM hazır olduğunda çalışsın
   jQuery(function ($) {
   jQuery(function($){
     var lang = mw.config.get('wgUserLanguage') || mw.config.get('wgContentLanguage');
     var lang = mw.config.get('wgUserLanguage') || mw.config.get('wgContentLanguage');
     var which = (lang === 'en' ? 'en' : 'tr');
    // Sadece tam “en” kullanıcısına en, diğer herkese tr
     var pageTitle = 'MediaWiki:Sidebar/' + which;
     var subpage  = 'MediaWiki:Sidebar/' + (lang === 'en' ? 'en' : 'tr');
     var api = new mw.Api();
     var fallback = 'MediaWiki:Sidebar';
     var api     = new mw.Api();


    // 1) Önce o subpage'in gerçekten var olup olmadığını kontrol et
     api.get({
     api.get({
       action: 'parse',
       action: 'query',
       page: pageTitle,
       titles: subpage,
      prop: 'text',
       format: 'json'
       format: 'json'
     }).done(function(data) {
    }).then(function (res) {
       if (!data.parse || !data.parse.text) {
      var pages = res.query.pages;
         console.warn('Sidebar için parse sonucu beklenmedik:', data);
      // missing olmayan bir page varsa exists = true
        return;
      var exists = Object.values(pages).some(function(p){ return !p.missing; });
      // 2) Parse isteğini, ya subpage'e ya fallback'e yönlendir
      return api.get({
        action: 'parse',
        page:  exists ? subpage : fallback,
        prop:  'text',
        format:'json'
      });
     }).done(function (data) {
       if (data.parse && data.parse.text) {
        var html = data.parse.text['*'];
        // Varsa Vector legacy ya da Vector2022 vs. selector'ları deneyip replace edelim
        var $container = $('#mw-panel, #mw-navigation, .mw-sidebar').first();
        if ($container.length) {
          $container.html(html);
        } else {
          console.error('Sidebar konteyneri bulunamadı; selectorları kontrol edin.');
        }
      } else if (data.error) {
         console.warn('Parse sırasında hata:', data.error);
       }
       }
      var html = data.parse.text['*'];
     }).fail(function (err) {
      // Birkaç yaygın selector deneyelim
       console.error('Sidebar yüklenirken AJAX hatası:', err);
      var $container = $('#mw-panel, #mw-navigation, .mw-sidebar').first();
      if ($container && $container.length) {
        $container.html(html);
      } else {
        console.error('Sidebar konteyneri bulunamadı; selectorleri kontrol edin.');
      }
     }).fail(function(xhr) {
       console.error('Sidebar yüklenirken hata:', xhr);
     });
     });
   });
   });
});
});

04.56, 22 Haziran 2025 tarihindeki hâli

/* Buraya konulacak JavaScript kodu sitedeki her kullanıcı için her sayfa yüklendiğinde çalışacaktır */

$(document).ready(function() {
    // 1) Araçlar menüsüne emoji ekle
    $('#p-tb h3').prepend('⚙️️ ');
});

mw.loader.using('mediawiki.api', function () {
  jQuery(function ($) {
    var lang = mw.config.get('wgUserLanguage') || mw.config.get('wgContentLanguage');
    // Sadece tam “en” kullanıcısına en, diğer herkese tr
    var subpage  = 'MediaWiki:Sidebar/' + (lang === 'en' ? 'en' : 'tr');
    var fallback = 'MediaWiki:Sidebar';
    var api      = new mw.Api();

    // 1) Önce o subpage'in gerçekten var olup olmadığını kontrol et
    api.get({
      action: 'query',
      titles: subpage,
      format: 'json'
    }).then(function (res) {
      var pages = res.query.pages;
      // missing olmayan bir page varsa exists = true
      var exists = Object.values(pages).some(function(p){ return !p.missing; });
      // 2) Parse isteğini, ya subpage'e ya fallback'e yönlendir
      return api.get({
        action: 'parse',
        page:  exists ? subpage : fallback,
        prop:  'text',
        format:'json'
      });
    }).done(function (data) {
      if (data.parse && data.parse.text) {
        var html = data.parse.text['*'];
        // Varsa Vector legacy ya da Vector2022 vs. selector'ları deneyip replace edelim
        var $container = $('#mw-panel, #mw-navigation, .mw-sidebar').first();
        if ($container.length) {
          $container.html(html);
        } else {
          console.error('Sidebar konteyneri bulunamadı; selectorları kontrol edin.');
        }
      } else if (data.error) {
        console.warn('Parse sırasında hata:', data.error);
      }
    }).fail(function (err) {
      console.error('Sidebar yüklenirken AJAX hatası:', err);
    });
  });
});