Extension:Gadgets

From mediawiki.org
This page is a translated version of the page Extension:Gadgets and the translation is 100% complete.
Bu uzantı MediaWiki 1.18 ve üstü ile gelir. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
MediaWiki manüel uzantıları
OOjs UI icon advanced-invert.svg
Gadgets
Sürüm durumu: kararlı
Screenshot-gadgets-tab-vector-skin.png
Uygulama Vikim , Özel sayfa , API
Açıklama Kullanıcıların tercihler sayfasından JS tabanlı, kullanıcı tarafından sağlanan küçük araçları etkinleştirmesine izin verin
Yazar(lar) Daniel Kinzler (Duesentriebmesaj)
Uyumluluk politikası MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil.
MediaWiki 1.19+
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
README
Örnek Wikimedia Commons: Küçük araca genel bakış, kullanıcı tercihleri ("Küçük araçlar" seçeneği tıklayın; elbette oturum açmanız gerekir)
  • $wgGadgetsRepoClass
  • $wgSpecialGadgetUsageActiveUsers
Translatewiki.net adresinde mevcutsa, Gadgets uzantısını çevirin
Sorunlar Açık görevler · Hata bildir

Gadgets uzantısı, kullanıcıların diğer viki kullanıcılarının sağladığı JavaScript veya CSS tabanlı "küçük araçlar" seçmeleri için bir yol sağlar.

Küçük araçlar, MediaWiki ad alanındaki sayfalarda bulunan JavaScript ve/veya CSS Parçacıklar üzerinden oluşur. Her küçük araç, MediaWiki:Gadgets-definition cinsinden bir satırla tanımlanır ve küçük araç için bir ad ve açıklama ile kullandığı JS ve CSS pasajlarının bir listesini sağlar (aşağıdaki "Kullanım" bölümüne bakın).

Küçük araçlar MediaWiki ad alanında (küçük araçları ve gerçek kod pasajlarına tanımlayan liste) bulunduğundan, yalnızca hizmetliler (1.32'den itibaren arabirim hizmetlileri) kodu düzenleyebilir. Olması gerektiği gibi: Yalnızca viki topluluğu tarafından özellikle güvenilen kullanıcılar, diğer kullanıcılar tarafından kullanılan JavaScript kodunu düzenleyebilmelidir, çünkü JavaScript hesapları ele geçirmek veya insanları gözetlemek için kolayca kullanılabilir.

Kurulum

  • Dosyaları indirin ve extensions/ klasörünüzdeki Gadgets adlı dizine yerleştirin.
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'Gadgets' );
    
  • Yes Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

MediaWiki 1.24 veya önceki bir sürümü çalıştıran kullanıcılara:

Yukarıdaki talimatlar, bu eklentiyi wfLoadExtension() kullanarak kurmanın yeni yolunu açıklar. Bu uzantıyı önceki sürümlerine (MediaWiki 1.24 ve önceki sürümler) yüklemeniz gerekirse, wfLoadExtension( 'Gadgets' ); yerine kullanmanız gerekir:

require_once "$IP/extensions/Gadgets/Gadgets.php";

Kullanım

de.wikipedia sitesinde kullanıcı tercihlerinde bazı küçük araçların seçimi

$wgGadgetsRepoClass üzerinde bağlı olarak küçük araçları tanımlamanın iki yolu vardır. 'MediaWikiGadgetsDefinitionRepo' ise (varsayılan değer), kullanılabilir küçük araçların listesi MediaWiki:Gadgets-definition olarak tanımlanır. Alternatif bir şekilde, $wgGadgetsRepoClass, 'GadgetDefinitionNamespaceRepo' olarak ayarlandığında Gadget definition ad alanındaki sayfalarda tanımlanan Küçük araç tanımları.

Dikkat! Dikkat: Mevcut küçük araç tanımlarının taşınması henüz desteklenmemektedir, bu nedenle bu seçeneği değiştirdikten sonra önceden tanımlanmış küçük araçlarını kaybedersiniz.

En az bir geçerli küçük araç ile oluşturulduktan sonra, burada tanımlanan küçük araçlar $2 "Küçük araçlar" bölümünde görünür, böylece kullanıcılar kullanmak istedikleri küçük araçları seçebilirler. MediaWiki:Gadgets-definition ile tanımlanan küçük araçlara genel bir bakış, kolay düzenleme için ilgili sistem mesajlarına bağlantılar ile birlikte Special:Gadgets üzerinde de gösterilir. Varsayılan olmayan gadget kullanımına ilişkin istatistikler Special:GadgetUsage altında görülebilir.

Biçim

MediaWiki Küçük Araç Tanımını Kullanma

MediaWiki:Gadgets-definition içindeki bir veya daha fazla "*" (yıldız) karakteriyle başlayan her satır bir küçük aracı tanımlar; aşağıdaki forma sahip olmalıdır:

 * gadget_name [seçenekler (çıkarılabilir)] | sayfa adları

İlk alan (örnekte "gadget_name") küçük aracın dahili adıdır ve viki sözdizimini kullanarak küçük aracın kısa bir açıklamasını içeren bir sistem mesajına (örnekte MediaWiki:Gadget-gadget_name) kaynağında bulunur.

Dahili ad, bir form alanının adının bir parçası olarak kullanılır ve tanımlanmış NAME öznitelik değerleri için kurallarına uymalıdır. Bu, basit bir Latin harfiyle ([A-Za-z]) başlaması gerektiği ve ardından herhangi bir sayıda harf, rakam ([0-9]), tire (-), alt çizgi (_), ​​iki nokta üst üste (:) ve nokta (.) gelebileceği anlamına gelir.

Biçim seçenekleri:

[seçenek1 | seçenek2 | ... seçenekN]

boşluk bırakılabilir. Tek bir seçenek, tek bir seçenek adından oluşabilir (bu durumda bir işaret seçeneğidir) veya virgülle ayrılmış bir değerler listesi içerebilir:

option = value1, value2, value3

Örnekler:

 * mygadget[ResourceLoader]|mygadget.js|mygadget.css

veya

 * mygadget[ResourceLoader|package]| mygadget.js | mygadget-Foo.js | mygadget-data.json | mygadget.css

veya

* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css

Gadget Definition Ad Alanını Kullanma

Gadget definition:mygadget sayfanın oluşturulması ve içine aşağıdaki JSON kodunun yerleştirilmesi mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css ile aynı etkiye sahiptir.

{
	"settings": {
		"rights": [ "foo", "bar" ],
		"default": false,
		"package": false,
		"hidden": false,
		"skins": [],
		"actions": [],
		"category": ""
	},
	"module": {
		"scripts": [ "mygadget.js" ],
		"styles": [ "mygadget.css" ],
		"datas": [],
		"peers": [],
		"dependencies": [],
		"messages": [],
		"type": ""
	}
}

Yukarıdaki örnekte Gadget:Mygadget.js ve Gadget:mygadget.css kullanılmıştır. Küçük araç tanımı ad alanında ResourceLoader seçeneğinin her zaman true olduğunu unutmayın.

User rights

This extension adds two new user rights, gadgets-edit and gadgets-definition-edit, which by default aren't given to any group.

interface-admin grubundaki kullanıcılara uygun izinleri sağlamak için aşağıdakileri LocalSettings.php dosyanıza ekleyebilirsiniz. Gadget ad alanındaki sayfaları düzenlemek gadgets-edit hakkını gerektirir ve Gadget definition ad alanındaki sayfaları düzenlemek gadgets-definition-edit hakkını gerektirir.

$wgGroupPermissions['interface-admin']['gadgets-edit'] = true;
$wgGroupPermissions['interface-admin']['gadgets-definition-edit'] = true;


Seçenekler

Ad Parametreler Açıklama Bu yana
ResourceLoader Yok Küçük aracı betiklerini ResourceLoader ile uyumlu olarak işaretler. ?
dependencies Virgülle ayrılmış modül adları Varsayılan modüllerin listesine bakın. Geçerli küçük aracın ResourceLoader uyumlu kaynakları yoksa (yani uyumlu olarak işaretlenmemiş stil ve betik yoksa) bu seçeneğin hiçbir etkisi olmadığını unutmayın. ?
rights Virgülle ayrılmış ayrıcalık adları Küçük aracı yalnızca belirtilen ayrıcalıklar olan kullanıcılar için kullanılabilir (ve tercihlerde görünür) yapın. ?
hidden Yok Küçük aracını Tercihler sayfasından gizleyin. Bu iki şekilde kullanılabilir:
  • Devre dışı bırakma özelliği olmadan bir küçük aracı varsayılan olarak etkinleştirin (Common.js ile modüler alternatif olarak). Tüm kullanıcılar için bir modül yüklemek için her ikisini de eklemeniz gerektiğini unutmayın: hidden | default.
  • Son kullanıcılar için değil, diğer küçük araçlar tarafından yüklenmesi amaçlanan küçük araçlar. Örneğin, iki küçük aracın aynı dahili kodu yeniden kullanmasına izin vermek veya bir iki küçük aracınyalnızca belirli sayfalara yüklenen "temel" bölümünü kaydetmek için.
1.28
skins Virgülle ayrılmış görünüm adları Küçük aracı yalnızca belirtilen görünümler kullanan kullanıcılar tarafından kullanılabilir (ve tercihlerde görünür) yapın. MediaWiki 1.32'den önce, mevcut görüntülenen değil (URL'ye ?useskin=monobook eklerken olduğu gibi, görev T199478) kullanıcı tercihlerinde ayarlanan görünümü dikkate alıyordu. ?
actions Virgülle ayrılmış eylem adları Küçük aracı yalnızca belirtilen sayfa eylemlerinde kullanılabilir yapın. Örn. bir küçük aracı yalnızca düzenleme sırasında ve geçmiş sayfalarında yüklemek için actions = edit, history.
edit eyleminin belirtilmesi, onu action=submit üzerinde de yükleyecektir. Geçersiz eylemler, küçük aracı hiçbir yerde çalıştırılamadığından etkin bir şekilde devre dışı bırakır.
1.38-wmf.16
default Yok Küçük aracı varsayılan olarak herkes için etkinleştirin (IP'ler dahil). Kayıtlı kullanıcılar yine de tercihlerinde devre dışı bırakabilir. 1.18
package Yok Bu küçük aracı paketlenmiş olarak işaretleyin. Bu modda, yalnızca ilk JavaScript sayfası yürütülecektir. Diğer sayfalar require() işlevi kullanılarak içe aktarılabilir. Bu mod ayrıca, başka türlü dahil edilemeyen JSON sayfalarının kullanımını da sağlar. 1.38-wmf.16
targets desktop (varsayılan), mobile veya desktop,mobile Küçük aracı için ResourceLoader hedef(ler)i ayarlayın. gerrit:60954
type styles veya general Yalnızca sayfada bulunan öğelerin stilini değiştiren modüller için styles kullanın (ör. görünümü, düzeni veya madde içeriğini özelleştirirken). Modülün CSS dosyalarının JavaScript ile yüklenmek yerine sayfa HTML'sinden eklenmesine neden olacaktır. Ayrıntılar için ResourceLoader/Geçiş kılavuzu (kullanıcılar)#Küçük araç türü sayfasına bakın.
styles kullanılması, belirtilen JavaScript dosyalarına yüklenemeyecektir. Hem JavaScript hem de CSS yoluyla öğelerin stilini değiştiren küçük araçlar için iki ayrı küçük araç tanımı gerekir.
1.28
peers Virgülle ayrılmış modül adları Yalnızca CSS küçük araçları gerektirir (genellikle gizlenir). Bu küçük araçlar, dependencies değerden daha erken yüklenecek ve JavaScript devre dışı bırakılsa bile yüklenecek. Ayrıntılar için ResourceLoader/Geçiş kılavuzu (kullanıcılar)#Küçük araç eşleri sayfasına bakın. 1.29.0-wmf.11
(ön sürüm)
supportsUrlLoad Yok | true | false Küçük aracı ?withgadget URL sorgu parametresiyle yüklenmeye hazır hâle getirin. 1.38
requiresES6 None Allow use of ES6 syntax (ES2015) in the gadget. Enabling this means server-side syntax validation is skipped for the gadget. Any ES6-requiring gadgets are loaded together in a single web request, which isolates failures due to invalid or unsupported syntax to those gadgets only, without affecting other gadgets and MediaWiki software features. It is recommended to use a tool like ESLint to ensure only valid ES6 syntax is used. 1.40.0-wmf.7
top Yok (1.29 sürümünde kaldırıldı) Küçük aracı üstten yüklenen olmasını sağlar. Bu, dikkatli bir şekilde kullanılmalıdır, ancak eklentileri Görsel Düzenleyici'ye kaydettirmek gibi bazı başlatma işlemleri için gerekli olabilir. gerrit:75506

Küçük araçlarınızı için ekstra bağımlılıklar belirleyebilirsiniz, örneğin:

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

Burada, ResourceLoader'dan jquery.ui ve jquery.effects.clip modüllerini mygadget ile yüklemesini istiyoruz. Küçük araçların sayfalardan, statik dosyalardan veya harici URL'lerden gelen betiklerine bağlı olamayacağını, yalnızca ResourceLoader'da kayıtlı modüllere bağlı olduğunu unutmayın. Bir sayfadan bir betiğini bir sayfadaki başka bir betiğine bağımlı hâle getirmek için, her birinin kendisini ResourceLoader'da bir modül olarak kaydeden bir gadget olması gerekir, ardından aşağıdaki sözdizimi kullanılarak bağımlılıkları yapılabilir:

* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js

Bir küçük aracı varsayılan olarak etkinleştirmek için "default" öğesini kullanın:

* mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css

Küçük aracı yalnızca uygun izinlere sahip kullanıcılara sunmak için rights seçeneğini belirleyin, örneğin:

* ImprovedDeletion [rights=delete] | ImprovedDeletion.js

Küçük aracı yalnızca sayfaları gerçekten silebilen kullanıcılar için kullanılabilir hâle getirir.

Kısıtlamaların hizmetliler veya bürokratlar gibi kullanıcı gruplarına değil, izinlere dayalı olduğunu unutmayın. İşte bazı gerçek örnekler:

* modrollback[ResourceLoader|rights=rollback]|modrollback.js
* UTCLiveClock[ResourceLoader|rights=purge]|UTCLiveClock.js
* Ajax_sysop[ResourceLoader|rights=patrol,rollback,markbotedits,delete]|Ajax_sysop.js


Sayfalar

Satırdaki kalan alanlar, sistem mesajlarında bulunan küçük aracı oluşturan JavaScript, CSS veya JSON koduna atıfta bulunur (örnekte MediaWiki:Gadget-mygadget.js ve MediaWiki:Gadget-mygadget.css); bu mesajların adları sırasıyla ".js" veya ".css" ile bitmelidir.

Bir küçük araç herhangi bir sayıda kod mesajı kullanabilir, özellikle genel kod, kendi özel kodlarına ek olarak birkaç küçük araç tarafından kullanılan bir kod mesajına yerleştirilebilir, örneğin:

 * frobinator[ResourceLoader]|commonStuff.js|frob.js|frob.css|pretty.css
 * l33t[ResourceLoader]|commonStuff.js|tools.js|l33t.js
 * foobar[ResourceLoader|package]|foo.js|bar.js|foobar.json

Lütfen kodunuz viki sözdizimi olarak yorumlanabilecek dizeler içeriyorsa (örneğin imza kodu ~~~~), kodunuzu ‎<nowiki>...‎</nowiki> içine dahil etmek ve bu etiketleri JavaScript veya CSS yorumlarına koymak isteyebileceğinizi unutmayın, böylece gerçekte kullanıldığında yorumlanmazlar.

Örnek için MediaWiki:Gadget-externalsearch-bar.js değerinin ilk ve son satırlarına bakın.

Bölümler

MediaWiki:Gadgets-definition içindeki küçük araçların listesi, iki veya daha fazla "=" (eşittir) karakterle başlayan ve biten satırlar kullanılarak bölümlere ayrılabilir; bu, bölümün adını tanımlayan bir sistem mesajının adını içerir, örneğin:

 == interface-gadgets ==

Bu, MediaWiki:Gadget-section-interface-gadgets sayfasında tanımlanan başlık ile yeni bir bölüm tanımlar.

Popular gadgets

See meta:Gadgets for gadgets which are popular in Wikimedia communities.

Ayrıca bakınız