میڈیا وکی:Gadget-interProjets.js

یاددہانی: محفوظ کرݨ دے بعد انہاں تبدیلیاں کوں ݙیکھݨ کیتے تہاکوں آپݨے براؤزر دا کیشی (cache) صاف کرݨاں ہوسی۔

  • فائرفاکس/ سفاری: ڄݙݨ Reload تے کلک کرو تاں Shift دبا تے رکھو، یا Ctrl-F5 یا Ctrl-R دباؤ (Mac تے R-⌘)
  • گوگل کروم: Ctrl-Shift-R دباؤ (Mac تے Shift-R-⌘)
  • انٹرنیٹ ایکسپلورر: ڄݙݨ Refresh تے کلک کرو تاں Ctrl یا Ctrl-F5 دباؤ
  • اوپیرا: Ctrl-F5 دباؤ۔
/**
 * Extrait et affiche la liste
 * des liens interprojets présents dans la page.
 * auteur : http://fr.wikipedia.org/wiki/Utilisateur:Lgd
 * licence : MIT
 *
 * Utilise : http://fr.wikipedia.org/wiki/MediaWiki:Gadget-interProjets.css
 *
 * Paramétrage: ajouter var interprojetsPosition = 'left'; dans le common.js personnel
 * pour afficher la liste dans le menu de gauche,
 * ou var interprojetsPosition = 'bottom'; pour l'afficher en pied de page.
 * Ajouter interprojetsTexte = true; pour ne pas avoir d'images dans les liens.
 *
 * {{Catégorisation JS|InterProjets}}
 */

var interProjects = function ($) {
  var nameSpace = mw.config.get('wgNamespaceNumber');
  if(nameSpace == -1 || nameSpace == 6) {return};

  var $list = $('<ul></ul>');
  var kill = $('#content .autres-projets');

  var $commons = $('.js-interprojets a[href*="commons.wikimedia.org"]').data('name', 'Commons');
  var $wiktionary = $('.js-interprojets a[href*="wiktionary.org"]').data('name', 'Wiktionary');
  var $wikinews = $('.js-interprojets a[href*="wikinews.org"]').data('name', 'Wikinews');
  var $wikibooks = $('.js-interprojets a[href*="wikibooks.org"]').data('name', 'Wikibooks');
  var $wikiquote = $('.js-interprojets a[href*="wikiquote.org"]').data('name', 'Wikiquote');
  var $wikisource = $('.js-interprojets a[href*="wikisource.org"]').data('name', 'Wikisource');
  var $wikiversity = $('.js-interprojets a[href*="wikiversity.org"]').data('name', 'Wikiversity');
  var $wikivoyage = $('.js-interprojets a[href*="wikivoyage.org"]').data('name', 'Wikivoyage');
  var $species = $('.js-interprojets a[href*="species.wikimedia.org"]').data('name', 'Wikipecies');

  var check = 0;

  if(typeof interprojetsPosition !== 'undefined' && interprojetsPosition) {
    var position = interprojetsPosition;
  } else {
    var position = 'top';
  }

  function makeList(links) {
    links = links.filter(function() {
      if ($(this).closest('.js-no-interprojets').length == 0) {
        return $(this);
      } else {
        return [];
      }
    });
    if(links.length !== 0) {
      var $item;
      var text = links.data('name');
      var duplicatesTable = [];
      // removeDuplicates améliorable
      links.clone().each(function() {
        if (jQuery.inArray($(this).attr('href'), duplicatesTable) == -1) {
          var $link = $(this);
          var title=$(this).text() + ' sur ' + text;
          $link.attr('title', title);
          if(position == 'left') {
            $link.text(text);
          } else {
            var images = $link.find('img');
            if (images.length != 0) {
              var alt = images.attr('alt');
              if (typeof alt === 'undefined') {
                alt = 'Image';
              }
              $link.text(alt);
            }
          }
          $link.removeClass();
          $item = $('<li></li>').prepend($link);
          $list.append($item);
          duplicatesTable.push($(this).attr('href'));
        }
        check++;
      });
    }
  }

  function displayList() {
    if(position == 'left') {
      var $portal = $('<div>')
        .attr('id', 'p-coll-interprojects')
        .attr('class', 'portal')
        .html($('<h5>')
          .text('Autres projets'))
        .append($('<div>')
          .attr('class', 'body')
          .html($list));
      $('#p-tb').after($portal);
      var state=$.cookie('vector-nav-p-coll-interprojects');
      if (state=='true' || state==null) {
        $('#p-coll-interprojects').addClass('expanded').find('div.body').show();
      } else {
        $('#p-coll-interprojects').addClass('collapsed');
      }
      if (state!=null){
        $.cookie('vector-nav-p-coll-interprojects',state,{'expires':30,'path':'/'});
      }
    } else if (position == 'bottom') {
      var $portal = $('<div>')
        .attr('class', 'mw-js-message-interprojets interprojets-bottom')
        .html($list);
      $('#content').append($portal);
    } else {
      var $portal = $('<div>')
        .attr('class', 'mw-js-message-interprojets interprojets-bottom')
        .html($list);
      $('#content').prepend($portal);
    }
  }

  function killThemAll() {
    $(kill).remove();
  }

  makeList($commons);
  makeList($wiktionary);
  makeList($wikibooks);
  makeList($wikiquote);
  makeList($wikisource);
  makeList($wikinews);
  makeList($wikiversity);
  makeList($wikivoyage);
  makeList($species);

  if(check !== 0) {
    displayList();
    killThemAll();
  }
};
$(document).ready(interProjects);