Jump to content

Extension:Gadgets

From mediawiki.org
This page is a translated version of the page Extension:Gadgets and the translation is 65% complete.
Outdated translations are marked like this.
This extension comes with MediaWiki 1.18 and above. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
MediaWiki manüel uzantıları
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)
  • $wgGadgetsRepo
  • $wgSpecialGadgetUsageActiveUsers
Quarterly downloads 105 (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üzdeki Gadgets 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' );
    
  • Yes Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

Kullanım

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

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.

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 ($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'.)

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.

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

Options
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)
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. 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
Removed options
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

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;

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.

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

Ayrıca bakınız