Extension:TemplateData

This page is a translated version of the page Extension:TemplateData and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎lietuvių • ‎polski • ‎português • ‎čeština • ‎русский • ‎українська • ‎ߒߞߏ • ‎अवधी • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語
Bu uzantı MediaWiki 1.35 ve üstü ile gelir. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
TemplateData
Sürüm durumu: kararlı
Screenshot of TemplateData extension.png
Uygulama Etiket , API
Açıklama Şablonlarla ilgili bilgileri depolamanızı, almanızı ve görselleştirmenizi sağlar
Yazar(lar) Timo Tijhof, Moriel Schottlender, James Forrester, Trevor Pascal, Bartosz Dziewoński, Marielle Volz, ...
En son sürüm 0.1.2 (Güncellemeler devam etmekte)
Uyumluluk politikası sürüm dalları
MediaWiki 1.25+
PHP 5.4+
Veritabanı değişiklikleri Hayır
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
  • $wgTemplateDataUseGUI
<templatedata>
Translatewiki.net adresinde mevcutsa, TemplateData uzantısını çevirin
Kullanım ve sürüm matrisini kontrol edin.
Sorunlar Açık görevler · Hata bildir

TemplateData uzantısı, <templatedata> etiketi ve editörlerin birlikte şablonların nasıl çağrılması gerektiğini belirtmelerine izin veren bir API sunar. Bu bilgiler, son kullanıcılar için iyi biçimlendirilmiş bir tablo olarak ve diğer sistemlerin (ör. VisualEditor) şablonlarla ve parametreleriyle çalışmak için arabirimler oluşturmasına olanak tanıyan bir JSON API'si olarak mevcuttur. Ayrıntılı yardım için Help:TemplateData sayfasına bakın.

Kurulum

  • İndir ve dosyaları extensions/ klasörünüzdeki TemplateData adlı bir dizine yerleştirin.
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'TemplateData' );
    
  •   Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

Veri düzenleme

TemplateData uzantısı, bir şablon sayfasının vikimetinde tanımlı bir <templatedata> etiketi olmasıyla çalışır (isteğe bağlı olarak farklı bir sayfadan da aktarılabilir). Bu, birçok vikinin şablon belgelerini ayrı bir sayfadan aktarmasıyla ilgili ortak düzen ile uyumlu olacak şekilde tasarlanmıştır (ancak zorunlu değildir). <templatedata> etiketinin bu içeriği, aşağıda açıklanan biçim kullanılarak geçerli JSON olmalıdır; tüm açıklamaların düz metin olması gerektiğini unutmayın (şablon verilerinin içinde vikimetin kabul edilmez).

Bir sayfaya <templatedata> blok eklendiğinde, TemplateData uzantısı sayfa kaydedilirken aşağıdaki kontrolleri gerçekleştirir:

  1. İçerikler geçerli JSON olmalıdır;
  2. JSON yapısı içindeki her öğe aşağıda belirtildiği gibi beklenen türde olmalıdır (örneğin, nesne, dizi veya ilkel); ve
  3. Belirtilen olası değerler listesi olan öğeler için (örn. params.yourParameterName.type), JSON nesnesindeki değer bu değerlerden biriyle eşleşmelidir.

Bu kontrollerden herhangi biri başarısız olursa, sunucunun kaydedilmesine izin verilmez ve düzenleme sayfasının üzerinde bir hata mesajı görüntülenir.

Otomatik değer öğeleri için hata 2700, subst:, <ref> ve <gallery> etiketleri dahil olmak üzere <tag> içine eklenen herhangi bir şablonda çalışmasını engeller. TemplateData bloğu doğru kaydedilecek, ancak şablon kullanıldığında ortaya çıkan wikitext doğru şekilde ayrıştırılmayacak.

<templatedata> yerine {{#tag:templatedata}} kullanamayacağınızı unutmayın.

Biçim

Aşağıda, JSON verilerinin <templatedata></templatedata> etiketleri tarafından çevrelenen şablon sayfasında tanımlandığı gibi görselleştirilmiş bir sürümüdür. Resmi özellik TemplateData deposunda mevcuttur. En son sürüm için Specification.md sayfasına bakın.

TemplateData nesnesi

TemplateData nesnesi, şablon sayfasındaki <templatedata> öğesinde bulunan bir JSON kök öğesidir.

Anahtar Tür Açıklama
description InterfaceText veya null Şablonun kısa bir açıklaması. Düz metin olmalıdır. Doldurulduktan sonra, tek bir şablonu düzenlerken başlık olarak görüntülenebilir ve belki de kullanıcılar birçoğundan birini seçtiğinde arama sonuçlarında görüntülenebilir. Varsayılan null.
params Parametre nesneleri içeren nesne Şablonun her parametre adını, söz konusu parametrenin özelliklerini tanımlayan karşılık gelen Parametre nesnesi ile eşleyen bir nesne.
paramOrder Parametre adı dizeleri içeren dizi Parametrelerin görüntülenmesi gereken mantıksal sıra. Dizi, her parametre anahtarını tam olarak bir kez içerir. Her dize params nesnesinde geçerli bir anahtar olmalıdır. Bu anahtar şablon sayfasındaki <templatedata></templatedata> yapısında yoksa, parametrelerin TemplateData nesnesinde gerçekleşme sırası kullanılarak API tarafından sağlanan yapıya eklenir.
sets Nesne ayarlama
içeren dizi
Küme belirtimlerini içeren bir dizi. Küme, birlikte kullanılması gereken bir parametre grubudur. Varsayılan []. sets işlevselliğinin hala geliştirildiğini unutmayın.
format dize, inline veya block Şablonun vikimetin gösterimi nasıl DÜZELTİLMESİ. Varsayılan inline. Diğer özel biçimler için #Özel biçimler bölümüne bakın.
maps Bir Harita nesnesi Şablon verilerinin üçüncü taraf bir tüketicisinin basitleştirilmiş bir adını (yani Citoid, Special:MyLanguage/Wikidata vb.) Basitleştirilmiş bir adı, bir tüketici parametresinin adını şablon parametrelerinin karşılık gelen bir veya daha fazla adıyla eşleyen bir nesneye eşleyen bir nesne.

Parametre nesnesi

Anahtar Tür Varsayılan Açıklama
label InterfaceText null Parametre için (çok) kısa bir isim. 20 karakterlik karakterlerin altında kalmaya çalışın.
description InterfaceText null Kullanıcıların bir seçenek listesinden hangisini seçeceklerini bilmesi için parametrenin kısa bir açıklaması.
required boole false Şablonun çalışması için parametrenin gerekip gerekmediği (bu parametrenin belirtilmesi gerekiyorsa true).
suggested boole false Şablonun yararlı olması için parametrenin önerilip önerilmediği (bu parametrenin belirtilmesi gerekiyorsa true).
deprecated boole veya dize false Parametrenin kullanımdan kaldırılıp kaldırılmadığı. Değer, kullanıcıya bunun yerine ne yapılabileceğini gösteren bir talimat dizisi veya true olabilir.
aliases Dizeleri içeren dizi [] Takma ad listesi. Takma ad, birincil ad yerine (ek olarak değil) kullanılabilecek parametre için alternatif bir addır. Takma adlar ayrı bir Parameter nesnesinde belgelenmez. Daha fazla bilgiye ihtiyaç duyarlarsa, "kullanımdan kaldırıldı" olarak işaretlenmiş kendi mülklerinde olmalıdırlar.
default InterfaceText null Parametreye bir değer atanmamışsa şablon tarafından kullanılan varsayılan değer veya bunun açıklaması.
autovalue dize null Vikimetinde, günün tarihi veya düzenleme kullanıcısının adı gibi dinamik olarak oluşturulmuş varsayılan bir değer; bu genellikle {{subst:CURRENTYEAR}} gibi vikimetin değiştirmesi içerecektir.
example InterfaceText null Kullanıcıların uygun değeri doldurmasına yardımcı olmak için parametre için örnek bir metin.
type dize "unknown" (Esnek) Tip ipucu için parametre tipi. Bunlardan biri:
Dize Değeri Parametre türü
"unknown" Ayarlanmadıysa varsayılan tür
"number" Herhangi bir sayısal değer (ondalık basamak veya bin ayırıcı olmadan)
"string" Herhangi bir metin değeri. Satır kesmeleri içerebilir.
"line" Kısa metin alanı - adlar, etiketler ve diğer kısa form alanları için kullanın. Bunun satır sonları içermesi beklenmeyen bir metin olması gerekiyordu.
"boolean" Boole değeri (true için '1', false için '0', bilinmeyen için ''), üç değerli mantık sayfasına bakın.
"date" ISO 8601 biçiminde bir tarih, ör. "2014-05-09" veya "2014-05-09T16:01:12Z"
"url" Protokol dahil bir URL, ör. "http://www.example.org", "https://example.org", veya "//example.org".
"wiki-page-name" Geçerli viki için geçerli bir MediaWiki sayfa adı. Var olmak zorunda değildir, ancak mevcut değilse, oluşturulabilecek geçerli bir sayfa adı olmalıdır.
"wiki-file-name" Geçerli viki için geçerli bir MediaWiki dosya adı. Var olmak zorunda değildir, ancak mevcut değilse yüklenebilecek geçerli bir dosya adı olmalıdır. Ad alanını içermemelidir (örn. "Foo.svg" değil: "Dosya:Foo.svg" veya "Bild:Foo.svg")
"wiki-template-name" Geçerli viki için geçerli bir MediaWiki Şablonu adı.
"wiki-user-name" Geçerli viki için geçerli bir MediaWiki kullanıcı adı. Var olmak zorunda değildir, ancak mevcut değilse, oluşturulabilecek geçerli bir kullanıcı adı olmalıdır. Ad alanını içermemelidir (ör. "Foo", "Kullanıcı:Foo" veya "Usario:Foo" değil).
"content" Metin stili, bağlantılar, resimler, vb. gibi vikimetinde ki sayfa içeriği.
"unbalanced-wikitext" Dengesiz olduğu için bağımsız içerik olarak ele alınmaması gereken ham vikimetini. Örneğin, eksik vikimetini daha büyük bir bütün olarak birleştiren şablonlar, örneğin $
inherits dize hiçbiri
değiştirilmiş
Başka bir parametrenin ad anahtarı (params nesnesinde geçerli bir anahtar olmalıdır). Geçerli Parametre Nesnesi, belirtilen Parametre Nesnesi öğesinden özellikleri devralır ve yerel özellikler devralınanları geçersiz kılar.

= Nesne ayarı

Anahtar Tür Varsayılan Açıklama
Dizilerin Dizisi [] (Esnek) Tip ipucu için parametre tipi. Biri:
Nesne Ayarı

Anahtar

Nesne veya ilkel tip

Açıklama

label InterfaceText Parametre seti için (çok) kısa bir isim. 20 karakterlik karakterlerin altında kalmaya çalışın.
params Dizi dizesi Kümeye dahil edilecek bir veya daha fazla parametre adı (her biri params nesnesinde geçerli bir anahtar olmalıdır). Bir parametre birden fazla kümede olabilir. Her parametre bir kümede olmamalıdır.

Harita nesnesi

Anahtar Tür Varsayılan Açıklama
tüketicinin adı nesne {} Tüketici adını, tüketici parametresinin adını bir veya daha fazla karşılık gelen şablon parametresi adıyla eşleyen bir nesneye eşleyen bir nesne.

Şablon parametrelerinin adları ya bir dize (bir ad), bir dizeler dizisi (birkaç ad) ya da bir dizi diziler (birkaç ad kümesi) olarak belirtilebilir; bu dizelerin her biri aynı şablonun TemplateData başka bir yerde params nesnesinde geçerli bir anahtar olmalıdır.

Belirli bir şablon parametresi birden çok haritada olabilir ve belirli bir haritadaki birden çok anahtarın değerlerinde kullanılabilir, ancak her şablon parametresinin bir haritada olması gerekmez.

İngilizce Vikipedi'nin Template:Cite_news#TemplateData kısaltılmış bir örneği bir haritalar nesnesinin yapısını gösterir.

{
	"proveit": {
		"main": "title",
		"textarea": [
			"quote"
		]
	},
	"citoid": {
		"title": "title",
		"url": "url",
		"publisher": "publisher",
		"publicationTitle": "work",
		"date": "date",
		"ISSN": [
			"issn"
		],
		"ISBN": [
			"isbn"
		],
		"contributor": "others",
		"author": [
			[
				"first",
				"last"
			],
			[
				"first2",
				"last2"
			],
			[
				"first9",
				"last9"
			]
		],
		"editor": [
			[
				"editor-first",
				"editor-last"
			]
		]
	}
}

InterfaceText (dize veya nesne)

Vikinin içerik dilinde serbest biçimli düz metin dizesi (yani vikimetin veya HTML yok) veya dil koduyla anahtarlanmış bu dizeleri içeren bir nesne.

Tüm InterfaceText alanları için varsayılan değer null.

Dize türü

Bir dize ise, yerel vikinin içerik dilinde yerelleştirilmemiş bir dize içermelidir.

Nesne türü

Nesne ise, nesnede şu eşleme bulunmalıdır:

Anahtar Tür Açıklama
Vikipedi dil kodu dize Vikipedi'de verilen dil koduna karşılık gelen yerelleştirilmiş dize.

Nesne eşleme örneği:

Anahtar Değer
"en" "Welcome to Wikipedia"
"de" "Willkommen bei Wikipedia"
"fe" "Bienvenue sur Wikipédia"
"nl" "Welkom op Wikipedia"
"it" "Benvenuti su Wikipedia"
"es" "Bienvenidos a Wikipedia"
"ru" "Добро пожаловать в Википедию"

Örnek

Şablon sayfasında wikitext içinde belirtildiği gibi örnek bir TemplateData yapısı.

<templatedata>
{
    "description": "Label unsigned comments in a conversation.",
    "params": {
        "user": {
            "label": "User's name",
            "type": "wiki-user-name",
            "required": true,
            "description": "User name of person who forgot to sign their comment.",
            "aliases": ["1"]
        },
        "date": {
            "label": "Date",
            "suggested": true,
            "description": {
                "en": "Timestamp of when the comment was posted, in YYYY-MM-DD format."
            },
            "aliases": ["2"],
            "autovalue": "{{subst:#time:Y-m-d}}"
        },
        "year": {
            "label": "Year",
            "type": "number"
        },
        "month": {
            "label": "Month",
            "inherits": "year"
        },
        "day": {
            "label": "Day",
            "inherits": "year"
        },
        "comment": {
            "required": false
        }
    },
    "sets": [
        {
            "label": "Date",
            "params": ["year", "month", "day"]
        }
    ],
    "maps": {
        "ExampleConsumer": {
            "foo": "user",
            "bar": ["year", "month", "day"],
            "quux": [
                "date",
                ["day", "month"],
                ["month", "year"],
                "year"
            ]
        }
    }
}
</templatedata>

Yukarıdaki örnek şablon sayfasında nasıl görüntülenecektir:

Label unsigned comments in a conversation.

Template parameters

ParameterDescriptionTypeStatus
User's nameuser 1

User name of person who forgot to sign their comment.

Userrequired
Datedate 2

Timestamp of when the comment was posted, in YYYY-MM-DD format.

Auto value
{{subst:#time:Y-m-d}}
Unknownsuggested
Yearyear

no description

Numberoptional
Monthmonth

no description

Numberoptional
Dayday

no description

Numberoptional
Commentcomment

no description

Unknownoptional

API

Oluşturulan yardıma Special:ApiHelp/templatedata altında bakın. Örnek bir çağrı (insan tarafından okunabilirlik için biçimlendirilmiş):

Bu, Şablon:Web kaynağı için şablon verilerini döndürür. Bu şablon için <templatedata>...</templatedata> bloğu, aktarılan şablon belgesi sayfasında ki tr:Şablon:Web kaynağı/belge.

API'dan alınan JSON'a ekleme ve değişiklikler

Bir API HTTP alma isteğine yanıt olarak sağlanan JSON yapısı, <templatedata>...</templatedata> bloğunda tanımlanandan önemli ölçüde farklıdır. API isteğine yanıt olarak, TemplateData uzantısı JSON nesnesinde aşağıdaki değişiklikleri yapar:

  • İki sarma nesneleri ekler:
    1. Bir veya daha fazla Sayfa Nesnesi içeren genel bir Sayfa Nesnesi
    2. Sayısal anahtarı olan bir nesne: Sayfa Nesnesi
  • Gerçek TemplateData Nesnesi'nde eklemeler/değişiklikler
    1. Verilerin istendiği sayfanın adını içeren title anahtarını ekleyin (ör. "Template:Cite web").
    2. paramOrder anahtarını ve dizisini, şablon sayfasındaki TemplateData Nesnesi içindeki params anahtarında gerçekleşme sırasını kullanarak ekleyin.
    3. sets anahtarı ekleyin
    4. Geçerli vikiler Vikipedi dil kodu için tek bir anahtarla yalnızca dizeler olan tüm TemplateText oluşumlarını değiştirin
    5. Tüm inherits anahtarlarını kaldırın.
      • Kalıtımın tanımlandığı parametreden, mirasçının Parametre Nesnesi öğesinde açıkça tanımlanmış anahtarlar tarafından kullanılmayan tüm özellikleri ekleyin.
    6. Her bir Parametre Nesnesi içindeki açıkça tanımlanmamış veya devralınmamış tüm anahtarlar için varsayılan değerler ekleyin.

API tarafından teslim edilen bir TemplateData JSON nesnesindeki görsel farklılıklar

API tarafından teslim edilen JSON'a sarmalayıcı nesneleri eklendi
Bunlar, şablon sayfasındaki <templatedata> etiketleriyle çevrelenen JSON nesnesinde tanımlanmaz.
JSON Kökü
Anahtar Tür Açıklama
pages Sayfa Nesnesi $g nesnesi (sayfa numarası olan bir anahtar içerir).p Bir kerede birden fazla sayfa istenirse, birden fazla Page Nesnesi olacaktır.

Sayfa Nesnesi
Anahtar Tür Açıklama
(sayfa sayısı) TemplateData Nesnesi Bilgi yükünü içeren TemplateData Nesnesi. Anahtar, JSON verilerinin istendiği şablon sayfası için statik bir sayfa numarasıdır.


TemplateData Nesnesi (API tarafından eklendi)
Şablon sayfasında <templatedata> etiketlerinde bulunan JSON nesnesinin köküne aşağıdaki anahtar eklenir.
Anahtar Tür Açıklama
title dize Şablonun sayfa adı (ör. "Template:Cite web").
Bu anahtar, şablon sayfasındaki JSON yapısında bulunmaz. API üzerinden teslimat yolunda MediaWiki yazılımı tarafından yapıya eklenir.
paramOrder Parametre adı dizeleri içeren dizi Parametrelerin görüntülenmesi gereken mantıksal sıra. Dizi, her parametre anahtarını tam olarak bir kez içerir. Her dize params nesnesinde geçerli bir anahtar olmalıdır.
Bu anahtar şablon sayfasındaki <templatedata></templatedata> yapısında yoksa, parametrelerin TemplateData nesnesinde gerçekleşme sırası kullanılarak API tarafından sağlanan yapıya eklenir.
sets Nesne Ayarı içeren dizi Küme belirtimlerini içeren bir dizi. Küme, birlikte kullanılması gereken bir parametre grubudur.
Şablon sayfasında bu yoksa, API tarafından sağlanan yapıya boş bir dizi olarak eklenir.


API'dan Parametre Nesneleri
Anahtar Tür Açıklama
label InterfaceText zaten bu biçimde değilse InterfaceText nesnesine çevrildi.
required boole Tanımlanmamışsa, varsayılan false değeri eklenir.
description InterfaceText veya null Dize olarak tanımlanırsa, InterfaceText nesnesine dönüştürülür. Tanımlanmamışsa, anahtar null değerinde eklenir.
deprecated boole veya dize Tanımlanmamışsa, varsayılan false değeri eklenir.
aliases Dizi dizesi Tanımlanmamışsa, varsayılan bir boş dizi atanır (yani []).
default dize Tanımlanmamışsa, varsayılan olarak "" atanır.
type dize Tanımlanmamışsa, varsayılan olarak "unknown" atanır.
inherits (kaldırıldı) Bu anahtar kaldırılır ve devralınan tüm anahtarlar eklenir. Geçerli parametre için tanımlanan anahtarlar önceliklidir ve geçerli parametrede veya devralındığı anahtarda tanımlı olmayan tüm anahtarlara varsayılan değer verilir.


InterfaceText (Nesne veya null):
Dil koduyla anahtarlanmış dizeler içeren bir nesne.
Anahtar Nesne veya
ilkel tip
Açıklama
Nesne
(Vikipedi dil kodu tarafından yerelleştirilmiş dizeler içerir)
Şablon sayfasındaki bir TemplateData alanı yerelleştirilmiş dizeleri olan bir nesne değil, bir dize içeriyorsa, MediaWiki, kaynak Wikipedia Wikipedia dil kodunun anahtar adına atanmış bir dize ile bir InterfaceText Nesnesine çevirir. Tüm InterfaceText alanları için varsayılan değer null.
(Viki dil kodu) dize Vikipedi dil koduna karşılık gelen Wikipedia kullanım için yerelleştirilmiş dize.

API tarafından sağlanan JSON nesnesi örneği

Örnek bölümündeki (yukarıda) TemplateData yapısı için bir API isteğine yanıt görülebilir:

Yapılandırma

Değişken Varsayılan Açıklama
$wgTemplateDataUseGUI true Şablon verilerini JSON düzenlemek için deneysel iletişim arayüzü

Ayrıca bakınız