Fandom Developers Wiki
Advertisement

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.

Kurulum[]

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
Advertisement