Extension:Gadgets
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 | 118 (Ranked 47th) |
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.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets - 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
MediaWiki sürümü: | ≤ 1.41 |
$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ı.
(On MediaWiki 1.39+, the value to use instead is '\\MediaWiki\\Extension\\Gadgets\\GadgetDefinitionNamespaceRepo'
.)
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. | 1.17 (r76527) |
dependencies
|
Virgülle ayrılmış modül adları | These modules will be loaded before the scripts of this gadget execute. Varsayılan modüllerin listesine bakın. | 1.17 (r76639) |
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. | 1.18 (r85268) |
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. Since 1.39, the ResourceLoader module is not registered on skins the gadget is unavailable on, so the gadget cannot be loaded on those skins as a dependency or using mw.loader.load() either (görev T236603).
Use of
skins is a last resort, and should be restricted to specialized code. For example code which relies on DOM manipulation in the absence of standardized APIs and that cannot be implemented using Core modules. |
1.19 (r100509) |
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 (gerrit:747112) |
categories
|
Comma-separated category names | Make the gadget available only on the specified categories. E.g. categories = Archived, Maintenance to load a gadget only on pages in the Category:Archived or Category:Maintenance. See also: Template gadgets.
|
1.42 (gerrit:1005092) |
namespaces
|
Comma-separated namespace numbers | Make the gadget available only on the specified namespaces. E.g. namespaces = 0, 2 to load a gadget only in mainspace and user namespace.
|
1.41 (gerrit:624517) |
contentModels
|
Comma-separated content models | Make the gadget available on pages with the given content models. E.g. contentModels = wikitext to load a gadget only on wikitext pages.
|
1.41 (gerrit:922062) |
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 (r85902) |
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 |
type
|
styles (default for CSS-only gadgets) or 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 |
supportsUrlLoad
|
Yok | true | false | Küçük aracı ?withgadget URL sorgu parametresiyle yüklenmeye hazır hâle getirin.
|
1.38 |
Name | Parameters | Description | Since | Removed |
---|---|---|---|---|
top
|
Yok | 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) | 1.29 |
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. Conflicts with default .
|
1.40 (gerrit:758086) | 1.42 |
targets
|
desktop (varsayılan), mobile veya desktop, mobile
|
Küçük aracı için ResourceLoader hedef(ler)i ayarlayın.
Do not use
targets , instead use skins where absolutely necessary. |
1.21 (gerrit:60954) | 1.42 |
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 * geonotice [ResourceLoader |default |rights=viewmywatchlist] |geonotice.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 == ... == editing-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 that are popular in Wikimedia communities.
Ayrıca bakınız
- Special:Gadgets – lists all the gadgets and a brief description of each
- Extension:Gadgets/Roadmap
- Küçük Araç Yöneticisi
- Extension:Widgets
- Parçacıklar
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 wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |