CodeLoad, özelleştirilebilir bir kod sayfası yükleyicisidir. Toplulukların, Gadgets uzantısına benzer şekilde, kullanıcıların sağlanan kodu (JavaScript/CSS) etkinleştirmesi için bir sistem kurmasına olanak tanır. Betiği kullanan bir vikide, kullanıcı tercihleri Special:BlankPage?blankspecial=CodeLoadPrefs sayfasında yapılandırılabilir. Kısayollar diyaloguna ve araç çubuğundaki "Araçlarım" menüsüne bu sayfaya bir bağlantı eklenir.
Installation
Tanımları yapılandırma
Tanımlar MediaWiki:CodeLoad-definitions.js sayfasından yüklenir. Bazı örnek tanımlar mevcuttur, bir vikinin tanım sayfasının temeli olarak kopyala+yapıştırılabilir.
Bunlar, her anahtar için benzersiz bir kimliğe sahip bir nesne (bu basitçe betiğinin adı olabilir) ve bir nesne (tanım) olması gereken JavaScript değişkeni codeLoad.definitions aracılığıyla yapılandırılır. Değeri. Her tanım nesnesi aşağıdaki anahtarları içerebilir:
| Anahtar | Gerekli | Açıklama |
|---|---|---|
title
|
Hayır | Tanım için kolay bir ad (tercihler sayfasında kalın harflerle gösterilmiştir). Vikimetin bağlantıları burada kullanılabilir. |
description
|
Evet | Tanımın ne yaptığının açıklaması (tercihler sayfasında tanım başlığından sonra gösterilir). Vikimetin bağlantıları burada kullanılabilir. |
group
|
Hayır | Bu tanımı tercihler sayfasındaki belirli bir gruba ekleyin (ayrıntılar için aşağıda bakın). |
articles
|
Evet | Bu tanım etkinleştirildiğinde içe aktarılması gereken sayfa adları dizisi (ayrıntılar için aşağıda bakın). |
preferences
|
Hayır | Bir tanımın kullanıcı tarafından yapılandırılabilen ayarları varsa, bunlar CodeLoad ile ayarlanabilir/kaydedilebilir (ayrıntılar için aşağıda bakın). |
requirements
|
Hayır | Bu tanım kullanılmadan/gösterilmeden önce ön koşulları belirleyin (ayrıntılar için aşağıda bakın). |
AjaxRC için örnek bir tanım alıntısı:
"ajaxrc": {
"title": "AjaxRC",
"description": "Gelişmiş otomatik yenilenen son değişiklikler ve izleme listesi ([[w:c:dev:AjaxRC|daha fazla bilgi]])",
"group": "tools",
"articles": [
"dev:AjaxRC/code.js"
],
"preferences": {
"requiresGlobalPrefs": true,
"AjaxRCRefreshText": "Otomatik yenileme",
"ajaxRefresh": 30000
}
}
Gruplar
Tanımlar, tercihler sayfasında isteğe bağlı olarak gruplara ayrılabilir. Bunlar, her anahtar için benzersiz bir kimliği olan bir nesne ve bir dize (tercihler sayfasında bir başlık olarak gösterilen grubun kolay adı) değeri olarak olması gereken JavaScript değişkeni codeLoad.groups aracılığıyla yapılandırılır. Kolay grup adları içinde vikimetin bağlantıları kullanılabilir.
Bir tanımın grubu, codeLoad.groups içinde bulunan bir kimliğe ayarlandığında, o gruba eklenir. Bir grup, grubu olmayan veya codeLoad.groups içinde olmayan bir grup kimliğine sahip herhangi bir tanım, 'Diğer' grubuna eklenecektir.
Maddeler
Maddeler dizisi, bir veya daha fazla CSS (.css ile biten) ve/veya JavaScript (.js ile biten) sayfasının sayfa adlarını içermelidir. Bunlar yerel sayfalar (MediaWiki ad alanında depolanan) veya Dev Wiki sayfasından sayfalar olabilir. MediaWiki ad alanının dışından veya yerel viki ve Dev Wiki dışındaki vikilerden içe aktarma desteklenmez. Sayfa adları MediaWiki ad alanı önekini içermemelidir. Dev Wiki'den içe aktarmalar için sayfa adının önüne dev: ekleyin.
Tercihler
Tercihler (ayarlanmışsa) bir nesne olmalıdır ve aşağıdaki anahtarları içerebilir (tümü isteğe bağlıdır):
| Anahtar | Açıklama |
|---|---|
enabled
|
Bu true olarak ayarlanırsa, tanım varsayılan olarak etkinleştirilecektir. Oturumu kapatmış kullanıcılar için de etkinleştirileceğini unutmayın. |
requiresGlobalPrefs
|
Bu true olarak ayarlanırsa, bu tanım için kullanıcı tercihlerinin her biri lüresel window nesnesindeki özellikler olarak gösterilecektir. Bu, CodeLoad'un özellikle CodeLoad ile kullanılmak üzere yazılmamış betiklerine ilişkin tercihleri yönetmesine olanak tanır.
|
globalPrefNamespace
|
preferences.requiresGlobalPrefs true olarak ayarlanırsa ve bu bir dizeye ayarlanırsa, bu tanım için kullanıcı tercihleri tek bir nesneye (ad alanı) eklenir ve yalnızca bu nesne açığa çıkar. Burada verilen adı kullanarak küresel window nesnesinde bir özellik olarak belirler. Bu, belirli betikler için gerekli olabilir.
|
Tercihler nesnesi, bu tanımın tercihleri için özel anahtarlar da içerebilir. Her anahtar için bir tercih kimliği ve değeri olarak bir boole, sayı veya dize (tercih için varsayılan değer) kullanılmalıdır.
Tercihler için kolay adlar, her anahtar için bir tercih kimliğine sahip bir nesne ve değeri olarak bir dize (tercih için kolay ad) olması gereken JavaScript değişkeni codeLoad.prefDescriptions aracılığıyla yapılandırılabilir. Vikimetin bağlantıları, kolay tercih edilen adlar içinde kullanılabilir. Bunlar tüm tanımlarda paylaşılır ve kolay bir ad varsa, tercihler sayfasında tercih kimliği yerine bu ad kullanılır.
Gereksinimler
Gereksinimler (eğer ayarlanmışsa) bir nesne olmalıdır ve aşağıdaki anahtarları içerebilir (tümü isteğe bağlıdır):
| Anahtar | Açıklama |
|---|---|
skins
|
Bu tanımın kullanılabileceği/gösterilebileceği, her biri | karakteriyle ayrılmış görünümler (ör. oasis, monobook)
|
usergroups
|
Bu tanımın kullanılabileceği/gösterilebileceği, her biri | karakteriyle ayrılmış kullanıcı grupları (ör. sysop, content-moderator, user)
|
Giriş mesajı
JavaScript değişkeni codeLoad.introMessage aracılığıyla isteğe bağlı bir mesaj yapılandırılabilir ve varsayılan giriş metninin altında gösterilecektir. Bu, örneğin, mevcut tanımlar hakkında daha fazla bilgi sağlamak veya daha fazla ayrıntı içeren bir sayfaya bağlantı sağlamak için kullanılabilir. Vikimetin bağlantıları mesaj içinde kullanılabilir.
CodeLoad tarafından tutulan tercihleri kullanma
CodeLoad ile ayarlanan/kaydedilen tercihlere, ilk bağımsız değişken olarak bir tanım kimliğiyle codeLoad.getScriptPrefs() işlevi çağrılarak erişilebilir. Bu, yerel betik tercihlerini yapılandırmak için önerilen yöntemdir. Örnek olarak yukarıdaki AjaxRC tanımı kullanıldığında, aşağıdaki kod, tanım için kullanıcı tercihleriyle prefs değişkenini ayarlayacaktır. Kullanıcı tercihlerine daha sonra prefs değişkeninin özellikleri aracılığıyla erişilebilir.
var prefs = codeLoad.getScriptPrefs('ajaxrc');
prefs.AjaxRCRefreshText; // 'Otomatik yenileme' ile döndürecektir
prefs.ajaxRefresh; // 30000 ile döndürecektir
requiresGlobalPrefs
Bir tanım için preferences.requiresGlobalPrefs true olarak ayarlanırsa, bu tanımın tercihlerinin her biri küresel window nesnesinde özellikler olarak gösterilir. Bu, Dev Wiki'deki betiklerinin CodeLoad kullanılarak kolayca yapılandırılabilmesini sağlamak için kullanılabilir. Örnek olarak yukarıdaki AjaxRC tanımı kullanıldığında, aşağıdaki kod tanım için kullanıcı tercihlerine erişir.
window.AjaxRCRefreshText; // 'Otomatik yenileme' ile döndürecektir
window.ajaxRefresh; // 30000 ile döndürecektir
globalPrefNamespace
Bir tanım için preferences.requiresGlobalPrefs true olarak ayarlanırsa ve preferences.globalPrefNamespace bir dizeye ayarlanırsa (ör. AjaxRCConfig), bu tanımın tercihleri AjaxRCConfig adlı tek bir nesneye (ad alanına) eklenecek ve yalnızca bu nesne genel pencere nesnesinde bir özellik olarak gösterilecektir. Bu, tercihlerinin betik içinde nasıl yapılandırıldığına bağlı olarak belirli betikler için gerekli olabilir. Örnek olarak yukarıdaki AjaxRC tanımı kullanıldığında, aşağıdaki kod tanım için kullanıcı tercihlerine erişir.
window.AjaxRCConfig.AjaxRCRefreshText; // 'Otomatik yenileme' ile döndürecektir
window.AjaxRCConfig.ajaxRefresh; // 30000 ile döndürecektir