Jump to content

Extension:TemplateData

From mediawiki.org
This page is a translated version of the page Extension:TemplateData and the translation is 92% complete.
Outdated translations are marked like this.
This extension comes with MediaWiki 1.35 and above. Böylece tekrar indirmek zorunda değilsiniz. Ancak, verilen diğer talimatları izlemeniz gerekir.
MediaWiki manüel uzantıları
TemplateData
Sürüm durumu: kararlı
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 Parscal, Bartosz Dziewoński, Marielle Volz, ...
En son sürüm 0.1.2 (Güncellemeler devam etmekte)
Uyumluluk politikası MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil.
PHP 5.4+
Veritabanı değişiklikleri Hayır
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
  • $wgTemplateDataEditorNamespaces
  • $wgTemplateDataUseGUI
‎<templatedata>
Quarterly downloads 275 (Ranked 16th)
Public wikis using 6,971 (Ranked 24th)
Translatewiki.net adresinde mevcutsa, TemplateData uzantısını çevirin
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

  • Dosyaları indirin ve extensions/ klasörünüzdeki TemplateData 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/TemplateData
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'TemplateData' );
    
  • Yes 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
  1. Belirtilen olası değerler listesi olan öğeler için (örn. 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 $3 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.

Special:MyLanguage/Help:TemplateData#Template data editor method 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.

→ For more details see: description

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.

→ For more details see: params

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.

→ For more details see: paramOrder

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.

→ For more details see: label

description InterfaceText null Kullanıcıların bir seçenek listesinden hangisini seçeceklerini bilmesi için parametrenin kısa bir açıklaması.

→ For more details see: description

required boole false Şablonun çalışması için parametrenin gerekip gerekmediği (bu parametrenin belirtilmesi gerekiyorsa true).

→ For more details see: required

suggested boole false Şablonun yararlı olması için parametrenin önerilip önerilmediği (bu parametrenin belirtilmesi gerekiyorsa true).

→ For more details see: suggested

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.

→ For more details see: deprecated

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.

→ For more details see: aliases

default InterfaceText null Parametreye bir değer atanmamışsa şablon tarafından kullanılan varsayılan değer veya bunun açıklaması.

→ For more details see: default

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.

→ For more details see: autovalue

example InterfaceText null Kullanıcıların uygun değeri doldurmasına yardımcı olmak için parametre için örnek bir metin.

→ For more details see: example

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

→ For more details see: value ‘unknown’

"number" Herhangi bir sayısal değer (ondalık basamak veya bin ayırıcı olmadan)

→ For more details see: value ‘number’

"string" Herhangi bir metin değeri. Satır kesmeleri içerebilir.

→ For more details see: value ‘string’

"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.

→ For more details see: value ‘line’

"boolean" Boole değeri (true için '1', false için '0', bilinmeyen için ''), üç değerli mantık sayfasına bakın.

→ For more details see: value ‘boolean’

"date" ISO 8601 biçiminde bir tarih, ör. "2014-05-09" veya "2014-05-09T16:01:12Z"

→ For more details see: value ‘date’

"url" Protokol dahil bir URL, ör. "http://www.example.org", "https://example.org", veya "//example.org".

→ For more details see: value ‘url’

"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.

→ For more details see: value ‘wiki-page-name’

"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")

→ For more details see: value ‘wiki-file-name’

"wiki-template-name" Geçerli viki için geçerli bir MediaWiki Şablonu adı.

→ For more details see: value ‘wiki-template-name’

"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).

→ For more details see: value ‘wiki-user-name’

"content" Metin stili, bağlantılar, resimler, vb. gibi vikimetinde ki sayfa içeriği.

→ For more details see: value ‘content’

"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 $

→ For more details see: value ‘unbalanced-wikitext’

→ For more details see: type

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.

→ For more details see: inherits

suggestedvalues Array containing strings [] An optional parameter property. Creates a list of parameter values to help users select the desired value. For the suggested values to be displayed as a combo box in VisualEditor, the parameter’s type must be set to one of the following: content, line, string, number, unknown or unbalanced wikitext.

→ For more details see: suggestedvalues

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

Maps is a single data structure that goes multiple levels deep. It became common to call the second level a “map object”.

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"
"fr" "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[Edit template data]

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. sets anahtarı ekleyin
    3. Geçerli vikiler Vikipedi dil kodu için tek bir anahtarla yalnızca dizeler olan tüm TemplateText oluşumlarını değiştirin
    4. 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.
    5. 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.
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 $wkpd 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ü
$wgTemplateDataEditorNamespaces [ 10 ] The namespaces in which the template data editor appears when creating or editing a page. (görev T189989)

Ayrıca bakınız