Extension:Gadgets
![]() Sürüm durumu: kararlı |
|
---|---|
![]() |
|
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) |
|
|
Quarterly downloads | 205 (Ranked 52nd) |
Public wikis using | 4,529 (Ranked 177th) |
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üzdekiGadgets
adlı dizine yerleştirin. LocalSettings.php
dosyanızın altına aşağıdaki kodu ekleyin:wfLoadExtension( 'Gadgets' );
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Kullanım
En az bir geçerli küçük araç ile oluşturulduktan sonra, burada tanımlanan küçük araçlar MediaWiki:Gadgets-definition "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: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:
* mygadget [seçenekler (çıkarılabilir)] | sayfa adları
İlk alan (örnekte "mygadget") 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-mygadget) kaynağında bulunur.
[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 ($5) ve nokta (.
) gelebileceği anlamına gelir. 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.Biçim seçenekleri:
[ResourceLoader | seçenek1 | seçenek2 | ... seçenekN]
The ResourceLoader flag is required unless the gadget contains only styles. Options that are "flags" only need to have their name written to be turned on. 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: boşluk bırakılabilir.
[ResourceLoader | myflag | mykey = 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
$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ı.
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.
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:
|
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 |
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 |
targets
|
desktop (varsayılan), mobile veya desktop,mobile
|
Küçük aracı için ResourceLoader hedef(ler)i ayarlayın. | 1.21 (gerrit:60954) |
type
|
styles (default for CSS-only gadgets) veya general (default otherwise)
|
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 |
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 (gerrit:758086) |
|
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. | 1.22 (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
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;
Sayfalar
Satırdaki kalan alanlar, sistem mesajlarında bulunan küçük aracı oluşturan JavaScript, CSS veya JSON koduna atıfta bulunur (örnekte $1 ve $2); bu mesajların adları sırasıyla "$3" veya "$4" ile bitmelidir. These are stored in the MediaWiki namespace as interface messages (MediaWiki:Gadget-mygadget.js and MediaWiki:Gadget-mygadget.css in the example). The page names must end with ".css", ".js", or ".json" respectively.
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]|frob.js|frob.css|pretty.css * l33t[ResourceLoader]|l33t.js * foobar[ResourceLoader|package]|foo.js|bar.js|foobar-data.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
Bu uzantı bir veya daha fazla Wikimedia projelerinde kullanılıyor. Bu, muhtemelen uzantının kararlı olduğu ve bu tür yüksek trafikli web siteleri tarafından kullanılacak kadar iyi çalıştığı anlamına gelir. Nerede kurulduğunu görmek için bu uzantının adını Wikimedia'nın CommonSettings.php ve InitialiseSettings.php yapılandırma dosyalarında arayın. Belirli bir vikide yüklü olan uzantılar listesinin tamamı vikinin Special:Version sayfasında görülebilir. |
This extension is included in the following packages and/or wiki farms: This is not an authoritative list. Some wiki farms/hosts may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |