dev

CustomTools arayüzün farklı alanlarına bir düğme (veya bağlantı) ekleme yöntemi sağlar. Şu anda aşağıdaki alanları desteklemektedir:

Not: Bu betiğini site genelinde belirli alanlara düğmeler ve bağlantılar eklemek için kullanabilseniz de, bazı alanlara yalnızca kişisel kullanım için izin verilir (genel gezinmeye düğme eklemek gibi).

Installation

API

Özel araçlar, aşağıdaki özelliklere sahip bir nesne aracılığıyla ayarlanır:

Özellik adı Açıklama Tür Gerekli mi? Notlar
classes Düğmeye veya bağlantıya eklenecek sınıflar. Dize veya bir dizelerin dizisi Hayır
click Düğmeye tıkladığınızda çağrılacak bir işlev. İşlev Hayır
icon WDSIcons'dan bir simgenin adı. Ayrıca Fandom Tasarım Sistemi'ne bakın. Dize Alana bağlı olarak. Asla bir boyut belirtmeyin, yalnızca simgenin adını belirtin. Örneğin, clock kullanın; asla clock-small kullanmayın.
link Bir yere bağlanmasını istiyorsanız, URL'yi bu özellikte ayarlayın. Dize Hayır URL'niz http://, https:// veya // ile başlıyorsa, URL olarak kullanılacaktır. https://google.com bu URL'ye yönlendirecektir.


URL'niz / ile başlıyorsa, varsa dili koruyarak vikinin temel URL'sinden sonra eklenecektir. w:c:community adresinde, /f, bağlantıyı https://community.fandom.com/f olarak ayarlar; w:c:tr.genshin-impact içinde, /f, bağlantıyı https://genshin-impact.fandom.com/tr/f olarak ayarlayacaktır.
Aksi takdirde, yerel bir bağlantı olarak kullanılacaktır. Special:RecentChanges, Special:RecentChanges ile yol açacaktır. Değerden çıkış yapılmaz, bu nedenle Sayfa?action=edit sizi o sayfayı düzenlemeye yönlendirecektir.

placement Düğme nereye eklenir. Geçerli değerler bu sayfanın başındaki madde işareti listesindeki şeklindedir. Dize Evet Diğer değerler yok sayılır.
position Düğmenin kapsayıcıda nereye ekleneceği. Varsayılan olarak, başlangıçta eklenir. Negatif sayılar, Array.at ile benzer şekilde sondan sayılır. Sayı Hayır 0 onu en başa ekleyecektir; 1 zaten orada olan ilk öğeden sonra (varsa); sonunda -1; -2 zaten orada olan son ögeden önce; ve benzeri.
text Hangi metin gösterileceği. Dize Hayır Konuma bağlı olarak değişir: bir düğme etiketi, bir araç ipucu veya title özniteliğinde kullanılabilir.


Davranışı i18n ve system özellikleri tarafından değiştirilir.

i18n Betiğiniz I18n-js kullanarak birden çok dili destekliyorsa, çevirilerin ilgili i18n JSON sayfasından alınması için adını (ör. CustomTools) belirtin.


Anahtar olarak text değeri kullanılacaktır.

Dize Hayır
system MediaWiki'nin sistem mesajlarını kullanmak istiyorsanız, bu özelliği true olarak ayarlayın ve o sistem mesajını almak için text değeri kullanılacaktır. Boole Hayır system: true ve text: 'group-sysop' metin alanında o sistem mesajının değerini görüntüler (İngilizce'de "Administrators", Türkçe'de "Hizmetliler", ve benzeri).

Betikler

Betik, eklemek isteyebileceğiniz tüm düğmeleri ve bağlantıları ayarlamanız için size bir işlev sağlayan bir dev.ct kancasını çalıştırır.

mw.hook('dev.ct').add(function(addButtons) {
	// addButtons'u çağırarak düğmelerinizi buraya ekleyin.
});

importArticle({
	type: 'script',
	articles: [
		'u:dev:MediaWiki:CustomTools.js'
	]
});

İşlev, API'nin başında açıklanan arabirime sahip bir dizi veya tek bir nesne bekler.

Örnek: Sondaki page-tools-left alanına tek bir düğme ekleyin.
mw.hook('dev.ct').add(function(addButtons) {
	addButtons({
		icon: 'eye',
		link: mw.config.get('wgPageName') + '?action=watch',
		placement: 'page-tools-left',
		position: -1,
		text: 'İzleme listesine ekle'
	});
});

importArticle({
	type: 'script',
	articles: [
		'u:dev:MediaWiki:CustomTools.js'
	]
});
Örnek: Bu, page-tools-left alanının sonuna bir düğme ve keşif menüsünde bir tane daha ekler.
mw.hook('dev.ct').add(function(addButtons) {
	addButtons([
		{
			icon: 'eye',
			link: mw.config.get('wgPageName') + '?action=watch',
			placement: 'page-tools-left',
			position: -1,
			text: 'İzleme listesine ekle'
		},
		{
			link: 'Special:Logs',
			placement: 'explore',
			position: -1,
			system: true,
			text: 'günlük'
		}
	]);
});

importArticle({
	type: 'script',
	articles: [
		'u:dev:MediaWiki:CustomTools.js'
	]
});

Kişisel kullanım

Betiklerde açıklanan kancayı kullanabilir veya işlevin parametresi olarak kullanacağınız aynı yapıya sahip global bir window.CustomTools nesnesi veya nesne dizisi ayarlayabilirsiniz.

window.CustomTools = [
	{
		icon: 'eye',
		link: mw.config.get('wgPageName') + '?action=watch',
		placement: 'page-tools-left',
		position: -1,
		text: 'İzleme listesine ekle'
	},
	{
		link: 'Special:Logs',
		placement: 'explore',
		position: -1,
		system: true,
		text: 'günlük'
	}
];

importArticle({
	type: 'script',
	articles: [
		'u:dev:MediaWiki:CustomTools.js'
	]
});

Bu yöntemi yalnızca kişisel betikler için kullanın, asla geliştiriciden veya vikinizin JS'sinden içe aktarılacak betikler için kullanın, çünkü diğer kullanıcıların kişisel özel araçlarını bozabilir.

Kullanıcı seçenekleri

İleri düzey kullanıcılar için, yapılandırma nesnesini kullanıcı seçenekleri aracılığıyla da ayarlayabilirsiniz:

// Seçenek A
mw.user.options.set('userjs-custom-tools', JSON.stringify([ /* ... */ ]));

// Seçenek B
(new mw.Api()).saveOption('userjs-custom-tools', JSON.stringify([ /* ... */ ]));

Ayrıştırılacak ve varsa kurulum için kullanılacaktır.