مدیاویکی:Gadget-RelatedSites.js

از ویکی‌سفر، راهنمای آزاد سفر

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
window.relatedsites = {};

relatedsites.items = [];

relatedsites.make_items = function(){
	var items = $('#relatedsites span');
	if(items)
	{
		items.each(function(){
			var item = $(this);
			var dbname = item.attr('data-dbname');
			var val = item.attr('data-val');
			if(dbname && val)
			{
				var url = '';
				var label = '';
				var title = '';
				if(dbname=='fawiki')
				{
					url = '//fa.wikipedia.org/wiki/$1';
					label = 'ویکی\u200cپدیای فارسی';
					title = val;
				} else if (dbname=='enwiki') {
					url = '//en.wikipedia.org/wiki/$1';
					label = 'ویکی\u200cپدیای انگلیسی';
					title = val;
				} else if (dbname=='comcat') {
					url = '//commons.wikimedia.org/wiki/Category:$1';
					label = 'ردهٔ ویکی\u200cانبار';
					title = 'Category:' + val;
				}
				url = url.replace('$1',encodeURI(val.replace(/ /g,'_')));
				relatedsites.items.push(
					$('<li/>').attr('class','interwiki-'+dbname)
					.append(
						$('<a/>').attr('rel','nofollow')
						.attr('href',url)
						.attr('title',title)
						.text(label)
					)
				);
			}
		});
		items.remove();
	}
};

relatedsites.run = function(){
	relatedsites.make_items();
	if(mw.config.get('wgUserLanguage') == 'fa')
	{
		if(relatedsites.items.length>0)
		{
			var p_relatedsites = $('#p-relatedsites');
			if(p_relatedsites.length==0)
			{
				var p_relatedsites = $('<div/>').attr('class','portal').attr('id','p-relatedsites');
				var h3 = $('<h3/>').text('وب\u200cگاه\u200cهای مرتبط').appendTo(p_relatedsites);
				var div = $('<div/>').attr('class','body').appendTo(p_relatedsites);
				var ul = $('<ul/>').appendTo(div);
				p_relatedsites.insertAfter($('#p-tb'));
			}
			var container = $('#p-relatedsites div ul');
			for(i in relatedsites.items)
			{
				container.prepend(relatedsites.items[i]);
			}
		}
	}
};

$(relatedsites.run);