Extension:Page Forms/Giriş türleri

This page is a translated version of the page Extension:Page Forms/Input types and the translation is 100% complete.
Other languages:

Bu sayfa, Page Forms'da bulunan çeşitli giriş türlerini ve bunlar için ayarlanabilen parametreleri ve diğer özelleştirmeleri kapsar.

Giriş türleri

text

Varsayılan giriş türü; HTML "metin" girişine karşılık gelir.

Özel parametreler:

  • size=boyut - Girişin genişliğini karakter cinsinden belirtir.
  • maxlength=maksimum uzunluk - Girişin izin verilen maksimum uzunluğunu belirtir.
  • placeholder=yer tutucu metin - Kullanıcı tıklatana kadar girişte görüntülenen yardım metnini belirtir.
  • autocapitalize=value - sets the "autocapitalize" parameter in the corresponding HTML tag to whatever value is set for this parameter; examples include on, off, sentences, etc.

textarea

HTML ‎<textarea> etiketine karşılık gelir.

 
WikiEditor uzantısı için Page Forms desteği (Header Tabs uzantısıyla bağlantılı olarak)

Özel parametreler:

  • rows=num satırları - Satır sayısını belirtir.
  • cols=num sütunları - Sütun sayısını belirtir.
  • maxlength=maksimum uzunluk - Girişin izin verilen maksimum uzunluğunu belirtir.
  • autogrow - Metin alanını, yüksekliğini içeriğinin yüksekliğine uyacak şekilde "otomatik olarak büyütecek" şekilde ayarlar, böylece bir kaydırma çubuğuna gerek kalmaz.
  • editor=düzenleyici türü - İçeriğini daha kullanıcı dostu hale getirmek için metin alanına JavaScript tabanlı bir düzenleyici ekler. Aşağıdaki değerler desteklenmektedir:
  • wikieditor - yüklenmesi gereken WikiEditor uzantısını kullanır. Ne yazık ki, WikiEditor uzantısındaki bir sınırlama nedeniyle formdaki yalnızca bir girişle ilişkilendirilmiş WikiEditor olabilir. WikiEditor'a fazladan custom toolbars eklemek isterseniz, bunları JavaScript'te ('#free_text').wikiEditor eklemeniz gerekir, tıpkı ('#wpTextbox1').wikiEditor için var oldukları gibi.
Note that there was a change to the WikiEditor code in the version that corresponds to MediaWiki version 1.34 that broke this functionality. It was restored in the 1.36 version of WikiEditor, with a corresponding change in version 5.1 of Page Forms. If you are using a version somewhere in the middle for WikiEditor, and you don't want to upgrade MediaWiki, you can manually apply the necessary change to the code, which can be found here. You should also upgrade to version 5.1 or later of Page Forms if you are using an older versions; or you can apply the Page Forms patch here.
  • tinymce - yüklenmesi gereken TinyMCE uzantısını kullanır. This does not work with multiple-instance templates.
  • visualeditor - yüklenmesi gereken VisualEditor uzantısını kullanır. Başka bir uzantı olan VEForAll olarak da yüklenmelidir. Araç çubuğunun altta değil de (varsayılan) düzenleme alanının üstünde görünmesini istiyorsanız, |class=toolbarOnTop eklemeniz gerekecektir.
  • max height=maksimum yükseklik - VisualEditor kullanılıyorsa, VE autgrow kullandığından metin alanı için maksimum yüksekliği (piksel cinsinden) belirtir. Varsayılan olarak bu değer 400'dür.
  • placeholder=yer tutucu metin - Kullanıcı tıklatana kadar girişte görüntülenen yardım metnini belirtir.

Otomatik tamamlamayla metin, metin alanı otomatik tamamlamayla

Bu iki giriş 5.0 sürümünde "combobox" ve "tokens" için takma adlara dönüştürüldü. Önceki sürümler için, bunlar text ve textarea giriş türleriyle aynı şekilde görüntülenir ve aynı şekilde yapılandırılabilir, ancak aynı zamanda bir veya birden çok değerde otomatik tamamlama sağlarlar. Otomatik tamamlamanın nasıl özelleştirileceğini öğrenmek için aşağıdaki "Değerleri ve eşlemeleri ayarlama" ve "Otomatik tamamlama" sayfalarına bakın.

combobox

 
Combobox girişi

"Comboox" giriş türü bir combo box arabirimi sağlar: normal bir otomatik tamamlama alanı gibi işlev gören, ancak açılır listeninki gibi ek bir aşağı ok simgesi olan bir girişi, kullanıcı tüm mevcut değerleri aynı anda görür. Select2 JavaScript kitaplığı kullanılarak uygulanır.

Özel parametreler:

  • size=boyut - Girişin genişliğini karakter cinsinden belirtir.
  • existing values only - Alandaki rastgele değerlere izin vermez.
  • placeholder=yer tutucu metin - Kullanıcı üzerine tıklayana kadar girişte görüntülenen yardım metnini belirtir.

tokens

 
Tokens girişi

Bu girdi türü, alandaki değerleri "tokenizes" haline getirir, yani her bir değerin etrafına bir blok koyar ve onu yalnızca bir karakter dizisi yerine tek bir birim haline getirir. Bu "tokens" daha sonra yeniden düzenlenebilir. "combobox" gibi, bu girişi Select2 JavaScript kitaplığı kullanılarak gerçekleştirilir.

Özel parametreler:

  • size=boyut - Girişin genişliğini karakter cinsinden belirtir.
  • max values=maksimum değerler - İzin verilen maksimum değer sayısını belirtir.
  • existing values only - Alandaki rastgele değerlere izin vermez.
  • placeholder=yer tutucu metin - Kullanıcı tıklatana kadar girişte görüntülenen yardım metnini belirtir.

Varsayılan olarak, "tokens" tek satırlı bir girdi olarak görünür ve daha fazla değer eklendikçe gerekirse dikey olarak genişler. Bazı durumlarda, genişleyeceğini kullanıcılara daha açık hale getirmek için, bu girişinin başladığında bir satırdan daha uzun görünmesini isteyebilirsiniz. Bunu tek bir giriş için yapmak için, alan etiketine "|class=ClassName" gibi bir class parametresi ekleyin, ardından MediaWiki:Common.css ile aşağıdakine benzer bir şey ekleyin:

.ClassName, .ClassName .select2-choices {
        min-height:60px;
}

Bunun vikideki tüm "tokens" girişlerine uygulanmasını istiyorsanız, bunun yerine MediaWiki:Common.css ile şöyle bir şey ekleyin:

#pfForm .select2-container-multi .select2-choices {
        min-height: 60px;
}

radiobutton

"radiobutton" girişi HTML "radio" girişine karşılık gelir. Kullanıcının yalnızca birini seçebileceği bir dizi değeri gösterir.

Varsayılan olarak, ilk radyo düğmesi değeri "None" ve kullanıcının boş bir değer seçmesine izin verir. "None" görünmesini önlemek için, alanı "mandatory" yapmanın yanı sıra izin verilen değerlerden birini alanın "default=" değeri yapmalısınız.

dropdown

"dropdown" giriş, HTML <select> etiketine karşılık gelir. Kullanıcının yalnızca birini seçebileceği bir açılır değerler listesi gösterir.

checkboxes

"checkboxes" girişi, kullanıcının herhangi bir sayıda değer seçmesine izin veren onay kutularını görüntüler. Belirli bir sayıdan fazla onay kutusu varsa, "Tümünü seç" ve "Hiçbirini seçme" bağlantıları otomatik olarak onay kutuları kümesinin üzerinde görünerek kullanıcıların tümünü veya hiçbirini otomatik olarak işaretlemelerine olanak tanır. Bu sayı $wgPageFormsCheckboxesSelectAllMinimum değişkeni tarafından belirlenir, varsayılan olarak 10'dur, ancak LocalSettings.php içinde değiştirilebilir.

Özel parametreler:

  • hide select all - Değerlerin sayısına bakılmaksızın bu giriş için "Tümünü seç" ve "Hiçbirini seçme" bağlantılarını gizleyin
  • show select all - değerlerin sayısına bakılmaksızın bu giriş için "Tümünü seç" ve "Hiçbirini seçme" bağlantılarını görüntüleyin

listbox

"listbox" girişi, "multiple" özniteliği eklenmiş HTML <select> etiketine karşılık gelir. Kullanıcının herhangi bir sayıda değeri seçebileceği dikey bir seçenek listesi gösterir.

Özel parametreler:

  • size=boyut - Liste kutusunun yüksekliğini belirtir.

tree

"tree" giriş türü, alanın bir veya daha fazla öğeyi tutup tutamayacağına bağlı olarak tüm değerlerin yanlarında radiobuttons veya checkboxes olduğu hiyerarşik, ağaç tarzı bir girişe izin verir. Değerler, viki içindeki bir kategori ağacından gelebilir veya form tanımında manüel olarak ayarlanabilir.

Bu giriş, bir veya daha fazla değeri tutup tutamayacağını nasıl anlar ve bu nedenle radyo düğmelerini ve onay kutularını görüntülemelidir? Şablondaki alanın bir değerler listesi tutuyor olarak tanımlanıp tanımlanmadığını (#arraymap kullanarak) kontrol eder. Yine de bu kontrol mükemmel değil. tree girişi checkboxes yerine radiobuttons gösteriyorsa, bunun bir liste olduğunu belirlemek için form tanımındaki alan etiketine "|list" parametresini eklemeniz yeterlidir.

Değerlerin kaynağına bağlı olarak, şu iki ek parametreden birini belirtmeniz gerekir:

  • top category= - kategorinin adını "ağacın" tepesine ayarlar.
  • structure= - tüm ağaç yapısını ayarlar; derinlik seviyesini ayarlamak için vikimetin tarzı madde işaretleri kullanmalısınız.

"structure" parametresini kullanırsanız, aşağıdaki gibi görünmelidir:

{{{field|Location|input type=tree|structure=*Universe
**Milky Way Galaxy
***Solar system
**Andromeda Galaxy
...etc.
}}}

Ayrıca isteğe bağlı olarak şu parametreleri de ayarlayabilirsiniz:

  • height= - ağacın içinde göründüğü kutunun yüksekliğini piksel cinsinden ayarlar.
  • width= - ağacın içinde göründüğü kutunun genişliğini piksel cinsinden ayarlar.
  • delimiter= - alan bir değerler listesi içerebileceği zaman sınırlayıcıyı ayarlar. Varsayılan ','.
  • hideroot - üst kategorinin adını gizler.
  • depth= - başlangıçta gösterilen üç seviyenin sayısını ayarlar. Varsayılan 10.

Bu giriş türünü burada kullanan örnek bir form görebilirsiniz.

Kategori adları için

Bir kategori ağacını görüntülemek için "tree" giriş türünü kullanıyorsanız, bu girişin önünde "Kategori:" ad alanı olmadan yalnızca seçilen kategorilerin adlarını yazdıracağını unutmayın; bu nedenle, bunun sayfada da görünmesini istiyorsanız, şablonun onu eklemesi gerekecektir.

Alan birden fazla kategori belirtiyorsa ve şablon bunu yapmak için #arraymap kullanıyorsa, #arraymap çağrısı şunun gibi görünmelidir:

{{#arraymap:{{{Categories|}}}|,|x|[[Category:x]] |<nowiki> </nowiki>}}

...başka bir deyişle, kategori etiketleri arasına virgül yazdırmaktan kaçınmak için #arraymap için son "delimeter" parametresini belirtmeniz ve onu boşluk veya benzeri bir şey yapmanız gerekir.

checkbox

Boole değerleri için kullanılan tek bir onay kutusu.

Özel parametreler:

  • label= - bu onay kutusu için bir <label> etiketine gidecek bir "etiket" belirtir.

date

Bu giriş, yıl, ay ve gün için üç ayrı giriş içerir.

datetime

"datetime" girişi "date" girişine benzer, ancak saat, dakika, saniye ve ÖÖ/ÖS için ek girişler içerir.

Özel parametreler:

  • include timezone - bir saat dilimi girişinin de dahil edilmesi gerektiğini belirtir.

year

"year", bir tarih alanı için yalnızca yıllık bir değer elde etmek için kullanılan basit bir metin girişidir.

datepicker

 
Takvim açıkken bir tarih seçici girişi

"datepicker", kullanıcının JavaScript tabanlı bir açılır pencere takvimi yardımıyla bir tarih seçmesine izin verir.

Special parameters:

  • date format= - sets a custom date format, used only for the input field. An example would be DD-MM-YYYY.
  • first date= - sets the first date the user is allowed to select.
  • last date= - sets the last date the user is allowed to select.

The starting day of the week (e.g., Saturday, Sunday or Monday) is set based on the language of the wiki; it unfortunately cannot be set independently of the language. If your wiki is in English and you would like weeks in the calendar input to start on Monday instead of Sunday (which is the default), you can do that by setting your wiki's language to be "en-gb" instead of "en".

datetimepicker

"datetimepicker", "datepicker" ile çok benzeyen JavaScript tabanlı bir girdi türüdür, ancak hem tarih hem de saati seçmek için açılır pencereler içerir. Varsayılan olarak yyyy/mm/dd hh:mm şeklindedir. Parametre seti, aşağıdakilerin yanı sıra tümü "datepicker" ile içerir:

  • mintime= - izin verilen minimum süre
  • maxtime= - izin verilen maksimum süre
  • interval= - kullanıcıya gösterilen seçenekler arasındaki aralık (dakika cinsinden)

rating

"rating" giriş türü, kullanıcının bir derecelendirme girmesine izin vermek için bir dizi yıldız görüntüler.

Özel parametreler:

  • star width - her yıldızın genişliğini (ve yüksekliğini) belirtir. Varsayılan 24px.
  • num stars - görüntülenecek yıldız sayısını belirtir. Varsayılan 5'tir.
  • allow half stars - kullanıcıların yarım yıldız seçmesine izin verin. Varsayılan yanlıştır; true yapmak için 'yes' (veya başka bir değere) ayarlayın.

googlemaps, leaflet, openlayers

"googlemaps", "leaflet" ve "openlayers" girdi türleri, sırasıyla Google Maps, Leaflet veya OpenLayers hizmetlerini kullanarak bir koordinat değeri elde etmek için bir harita görüntülemenizi sağlar.

"googlemaps" girişini kullanıyorsanız, bir Google Haritalar API anahtarı almanız ve ardından girdinin görüntülenmesi için $wgPageFormsGoogleMapsKey ayarıyla LocalSettings.php olarak ayarlamanız gerekebilir.

Bu giriş türleri için isteğe bağlı olarak şu parametreleri de ayarlayabilirsiniz:

  • height= - haritanın yüksekliğini piksel olarak ayarlar.
  • width= - haritanın genişliğini piksel olarak ayarlar.
      Not: Both height & width are needed together to set the dimension.
  • starting bounds= - görüntülenen haritanın sınırlarını ayarlamak için bir çift koordinat alır; bu parametre yalnızca girişin bir değeri yoksa geçerlidir. (Bu parametre için örnek değer: "-20,-15;50,55".)

"leaflet" giriş türü bir ek parametreye izin verir:

  • image= - coğrafi bir harita yerine, belirtilen resmi (vikiye yüklenmiş bir resim olmalıdır) harita için arka plan olarak ayarlar.

Tüm harita girişleri, koordinatları daha kolay bulmak için bir adres girmenize izin verir. Ancak form, adresi girmek için zaten bir veya daha fazla alan içeriyorsa, kullanıcının iki kez girmesi gerekebilir. Birincisi verileri gerçekten saklamak için ve ikincisi koordinatları bulmak için. Kullanıcıların bu ikili işi yapmak zorunda kalmasını önlemek için, adres alanlarının, noktayı bulurken değerlerini doğrudan haritaya beslemesini sağlayabilirsiniz. Bunu "feeds to map=" parametresini kullanarak yapabilirsiniz. "feeds to map" ile burada arayın.

Varsayılan olarak bu biçimlerin tümü harici JavaScript koduna dayanır. Ancak, yalnızca OpenLayers uzantısını yükleyerek "openlayers" biçiminin bunun yerine yerel JavaScript kodunu kullanmasını sağlayabilirsiniz.

Devre dışı bırakma

Bu giriş türlerinin hepsinin vikinizin verilerini (yani, sorgu sonuçlarında bulunan verileri) harici hizmetlere gönderdiğini unutmayın. Bunlar, Page Forms kodunun, dış değerlerde otomatik tamamlama dışında harici olarak veri gönderen tek kısmıdır, ancak bunun çalışması için ek yapılandırma gerektirir. Özel bir vikiniz varsa ve veri çıkmaması konusunda çok endişeliyseniz, aşağıdakileri LocalSettings.php ile eklemek isteyebilirsiniz:

$wgPageFormsDisableOutsideServices = true;

Bu, herhangi bir dış hizmetin Page Forms tarafından kullanılmasına izin vermeyecektir. Bu, şu anda bu üç giriş türünü devre dışı bırakmak anlamına gelir.

regexp

"regexp" giriş türü gerçek bir girdi türü değil, daha ziyade ek, düzenli ifade tabanlı doğrulama ile başka bir girişi (çoğunlukla "metin") görüntüleme yeteneğidir. Bu giriş türü ve parametrelerinin daha ayrıntılı açıklaması için buraya bakın.

Veri türleri için izin verilen giriş türleri

Tanımlanmış her bir veri türü, Cargo veya Semantic MediaWiki kullanılırken, varsayılan bir giriş türüne ve uygun olduğunda varsayılan bir giriş boyutuna sahiptir. Ek olarak, alan yalnızca "tek bir değer" yerine sınırlandırılmış bir değerler listesi içeriyorsa, bazı veri türleri özel işlemeye sahiptir.

Her veri türü için varsayılanlar ve diğer izin verilen giriş türleri, tek değerler için:

Cargo veri türi SMW veri türü Varsayılan giriş türü Varsayılan boyut İzin verilen diğer giriş türleri
Page Page combobox 35 text, dropdown, textarea, tree
String String (deprecated) text 35 combobox, textarea
Text Text, Code textarea 5 x 30 text
URL URL text 100 textarea
Integer, Float Number text 10 textarea
Date, Start date, End date Date date datetime, year, datepicker
Datetime, Start datetime, End datetime N/A datetime datetimepicker, date, year
Boolean Boolean checkbox dropdown, radiobutton
Coordinates Geographic coordinate openlayers googlemaps, leaflet
Rating N/A rating
Enumeration (izin verilen değerlerin listesini içeren herhangi bir Cargo alanı) Enumeration ("izin verilen değerler" tanımlı herhangi bir SMW özelliği) dropdown radiobutton
Hierarchy (hiyerarşik izin verilen değerler kümesine sahip herhangi bir Cargo alanı) N/A tree

Ve burada, belirli bir veri türünün ayrılmış listeleri için varsayılan ve diğer izin verilen girdi türleri verilmiştir:

Cargo veri türi SMW veri türü Varsayılan giriş türü Varsayılan boyut İzin verilen diğer giriş türleri
Page Page tokens 100 text, textarea, tree, checkboxes
String Text text 100 textarea, tokens
Enumeration Enumeration checkboxes listbox
Hierarchy N/A tree

Değerleri ve eşlemeleri ayarlama

Bazı giriş türleri, kullanıcıya önceden tanımlanmış değerler sağlar. Bunlar, kullanıcının aralarından seçmesi gereken değerler (dropdown giriş türü gibi) veya yalnızca kullanıcıya rehberlik etmesi amaçlanan değerler olabilir (combobox gibi, ancak bu seçenekler de zorunlu hale getirilebilir, existing values only parametresini eklerseniz).

Her iki durumda da, kullanıcıya gösterilen değerleri belirtmek için kullanılan parametre seti hemen hemen aynıdır. Her durumda kullanılabilen "field" etiketi için parametreler şunlardır:

  • cargo table= + cargo field= – Vikide Cargo yüklediyseniz, bu parametreler seti, combobox yaptığı gibi, giriş türü otomatik tamamlama kullanıyorsa otomatik olarak kullanılacaktır. Kod, bu şablonun/form alanının karşılık geldiği Cargo tablosunu ve alanını bulacak ve bu alan için ayarlanmış tüm değerleri kullanacaktır. Veya bu parametreleri istediğiniz tablo ve alan kombinasyonunu belirtmek için kullanabilirsiniz.
  • property= – Yüklü Semantic MediaWiki'niz varsa, giriş türü otomatik tamamlamayı kullanıyorsa, bu parametre otomatik olarak kullanılacaktır. Kod, ilgili özelliği bulacak ve tüm değerlerini kullanacaktır veya bu parametreyi farklı bir özellik belirtmek için kullanabilirsiniz.
  • values from property= – İşlevsel olarak, bu parametre yukarıdaki property= ile aynı şekilde çalışır, ancak bazı yan etkilerden yoksundur: property= ayrıca alanın boyutunu ve hatta giriş türünü etkileyebilir.
  • values from category= – Değerlerini belirli bir kategoriye ait tüm sayfaların adlarından alır.
  • values from namespace= – Değerlerini bir veya daha fazla belirli ad alanlarına ait tüm sayfaların adlarından alır. Birden fazla ad alanından değer almak için adları virgülle ayırın. Ana ad alanından değerler almak için "Ana" kullanın veya boş bırakın.
  • values from concept= – Değerlerini belirli bir SMW kavramına ait tüm sayfaların adlarından alır.
  • values= – Son olarak, kullanıcıya gösterilen değer kümesini elle belirtebilirsiniz; bir örnek values=Red,Yellow,Blue olacaktır. Bu değerler kümesi varsayılan olarak virgülle ayrılmalıdır, ancak sınırlayıcı delimiter= parametresi kullanılarak değiştirilebilir.

Otomatik tamamlama tabanlı girişler için birkaç seçenek daha vardır; aşağıdaki "Otomatik tamamlama" bölümüne bakın.

Haritalama

Kullanıcıya görüntülenen değerler kümesinin, sayfanın vikimetin dosyasında gerçekte görünen değerler kümesinden farklı olmasını sağlayabilirsiniz. Değerler sayfa adları ise ve bu sayfaların gerçek sayfa adlarından farklı bir "görüntü başlığı" kümesi varsa, bu durumda varsayılan olarak form, sayfa adı yerine görünen başlığı görüntüler. İsterseniz, aşağıdakileri LocalSettings.php ile ekleyerek sayfa adının kendisinin görüntülenmesini sağlayabilirsiniz:

$wgPageFormsUseDisplayTitle = false;

Aşağıdaki parametreleri kullanarak diğer bu tür eşlemeleri etkinleştirebilirsiniz:

  • mapping template=şablon adı - Bir "mapping template" adını alır (tek, adlandırılmamış bir parametre, yani {{{1|}}} alan ve sonuç olarak "eşlenmiş" bir dize görüntüleyen bir şablon) ve bu şablonu her potansiyel değeri eşlemek için kullanır, böylece değerler. Değerlerin kendileri değil ekranda "takma adlar" görünür.
  • mapping property=özellik adı - 'combobox', 'tokens', 'listbox' ve 'dropdown' giriş türlerine sahip sayfaları seçen alanlar için kullanılır. Olası her değer için, sayfanın başlığı yerine o sayfadaki bir SMW özelliğini görüntüler, ancak seçili sayfaların başlığını alan değeri olarak kaydeder. Olası değerlerin listesini almak için values... parametreleriyle birlikte kullanılır.
  • mapping cargo table=tablo adı/mapping cargo field=alan adı - Cargo alanları için kullanılması dışında mapping property= benzeridir. values=, values from namespace=, values from category= ve cargo table=/cargo field= ile birlikte kullanılır. You can additionally use the mapping cargo value field= parameter, which dictates which field in the table used for mapping should be used as the "value" field (by default it is _pageName).
  • mapping using translate - Translate uzantısı yüklüyse, eşlenen değeri almak için her değerde Translate'in {{int:}} sihirli kelimesini çağırır.

Example 1: mapping template

Örneğin, bir form şuna benzer bir alan etiketi içerebilir:

{{{field|status|values=Prospective,Live,Retired|mapping template=StatusLabel }}}

Template:StatusLabel altındaki şablon daha sonra aşağıdakilere benzer bir şey içerebilir:

{{#switch: {{{1}}} | Retired=Label for Retired |Live=Label for Live | Prospective=Label for Prospective }}

Daha sonra, değerin etiketini normal, form olmayan sayfalarda görüntülemek için aynı "mapping template" ile kullanabilirsiniz. "status" alanını içeren şablon içinde aşağıdakilere sahip olabilirsiniz:

{{StatusLabel|{{{status|}}} }}

Example 2: Cargo-based mapping

Let's say that, in a company, every employee is assigned an employee ID. In the wiki, the page about each employee has as its name the employee ID. There are also pages about projects, and within each project page is a "Project members" field, which holds a list of employee IDs. In the "Project" form, in the "Project members" input, you want people to enter in employees' actual names, but have the employee IDs show up on the page. You could do that with the following field tag:

{{{field|Project members|input type=tokens|mapping cargo table=Employees|mapping cargo field=Employee_name}}}

Now, what if the name of each employee page is not the employee ID (nor their real name) but rather a randomly-assigned name, like "Employee 12345"? Then you could do the mapping using the additional "mapping cargo value field" parameter, like this:

{{{field|Project members|input type=tokens|mapping cargo table=Employees|mapping cargo field=Employee_name|mapping cargo value field=Employee_ID}}}

Otomatik tamamlama

Giriş türlerinden dördü (5.0'dan önceki sürümler için tokens, combobox, artı text with autocomplete ve textarea with autocomplete), otomatik tamamlamayı kullanın. Kullanıcı yazmaya başlar, giriş olası tamamlamaların bir açılır listesini gösterir.

Bir alan "Page" türünde bir Semantic MediaWiki özelliğini veya Cargo alanını temsil ediyorsa, otomatik tamamlama varsayılan olarak etkinleştirilir. Alan, o özellik veya alan tarafından zaten işaret edilen tüm sayfaların adlarında otomatik olarak tamamlanır. Diğer türler için varsayılan otomatik tamamlama yoktur, ancak bu aynı etkiyi yalnızca giriş türünü otomatik tamamlamaya sahip dört türden birine ayarlayarak elde edebilirsiniz.

Bir SMW özelliğinden, bir Kargo alanından, bir kategoriden, bir ad alanından, bir "kavram"'dan veya elle ayarlanan bir listeden "değerler ..." parametrelerden birini kullanarak otomatik tamamlama için bir alanı manuel olarak ayarlayabilirsiniz. Yukarıdaki "Değerleri ve eşlemeleri ayarlama" bölümüne bakın.

Ayrıca, web sayfalarında, veritabanlarında, dosyalarda vb. yer alan viki dışındaki değerlere dayalı olarak da otomatik tamamlama yapabilirsiniz; bunu yapmanın çeşitli yolları için aşağıdaki "Dış değerlerde otomatik tamamlama" bölümüne bakın.

Bir alan birden çok değeri tutacak şekilde belirtilirse, otomatik tamamlama varsayılan olarak birden çok değeri destekleyecektir: bir değer girildikten ve bir sınırlayıcı yerleştirildikten sonra, sonraki değer için yeni bir otomatik tamamlama başlayacaktır. Alanın tanımına "list" parametresini ekleyerek bir alanın birden çok değerli otomatik tamamlamaya sahip olması gerektiğini elle belirtebilirsiniz. Ayrıca "delimiter=..." parametresini (varsayılan virgüldür) kullanarak bu değerler listesi için sınırlayıcı belirtebilirsiniz.

Varsayılan olarak, bir alanın sunacağı maksimum otomatik tamamlama olasılığı sayısı 1.000'dir; bu performans nedenlerinden dolayıdır. Bu sayıyı değiştirmek için $wgPageFormsMaxAutocompleteValues değerini LocalSettings.php içinde değiştirin.

Devre dışı bırakma

Bir alan için varsayılan olarak etkinleştirilmişse, giriş türünü basitçe "text" veya "textarea" olarak ayarlayarak otomatik tamamlamayı devre dışı bırakabilirsiniz.

Uzaktan otomatik tamamlama

Otomatik tamamlama için bir alanın olası değerleri kümesi, varsayılan olarak, bir JavaScript bildiriminde formun HTML sayfasında yer alır. Performans nedenleriyle, sayfaya kaç değer yerleştirilebileceğine dair bir sınır vardır; varsayılan olarak sınır 100 olarak ayarlanmıştır. Bu sayıya ulaşıldıktan sonra, bunun yerine uzaktan otomatik tamamlama yapılır, burada otomatik tamamlama, kullanıcının yazdıklarına bağlı olarak sunucuya bir Ajax çağrısı yoluyla gerçekleşir. Bu tür otomatik tamamlama daha yavaştır, ancak çok daha fazla otomatik tamamlama sonucuna izin verir.

Varsayılanı, aşağıdaki gibi LocalSettings.php ile ekleyerek değiştirebilirsiniz:

$wgPageFormsMaxLocalAutocompleteValues = 200;

Her karakterde eşleştirme

Varsayılan olarak, Page Forms otomatik tamamlama, olası değerler kümesindeki her kelimenin başlangıcında eşleşir. Ancak, aşağıdaki satırı LocalSettings.php ekleyerek otomatik tamamlamayı her karakterde eşleşecek şekilde değiştirebilirsiniz:

$wgPageFormsAutocompleteOnAllChars = true;

Bu özellik, Latin alfabesi olmayan dillerdeki vikiler gibi ASCII olmayan karakterler içeren değerlere sahip vikiler için özellikle önemlidir; varsayılan olduğundan, kelime tabanlı otomatik tamamlama henüz ASCII olmayan karakterlerle çalışmamaktadır.

Aksanlı karakterlerde otomatik tamamlama

 
Aksanlı karakterlerde otomatik tamamlama

Aksanlı karakterler için esnek otomatik tamamlama, birleşik giriş kutusu ve simge giriş türü tarafından desteklenir.

Vurgu katlamanın kendi sınırlamaları vardır, ancak bazı önemli ancak gözden kaçan kullanıcı etkileşimlerinin daha iyi çalışmasına yardımcı olabilir. Aksan katlama işlevi, esasen Unicode karakterlerini ASCII eşdeğerleriyle eşler. Aksan katlama ile kullanıcıların kafe, café veya hatta çåFé araması farketmez; sonuçlar aynı olacaktır.

Dış değerler üzerinde otomatik tamamlama

Viki dışındaki verileri kullanarak alanı otomatik tamamlamanın iki yolu vardır. Biri, bir alt dizeyi alan ve MediaWiki API tarafından döndürülen JSON biçimine benzer JSON biçiminde veri döndüren bir URL'den, diğeri ise External Data uzantısı bazı harici/dahili kaynaklardan veri almak için kullanmaktadır.

Harici bir URL'den

Aşağıdaki parametreyi kullanarak, viki dışındaki değerlerde alanı otomatik tamamlayabilirsiniz:

  • values from url=URL tanımlayıcı

Bunu yapmak için aşağıdaki adımları izleyin:

  1. Sorgu dizesi aracılığıyla bir alt dizeyi alan ve bir dizi tamamlama değeri görüntüleyen bir sayfa/web hizmeti oluşturun. Page Forms, bir üst seviye anahtarı "pfautocomplete" olan bir JSON biçimi yanıtı ve olası tamamlamaların değerlerini işaretleyen "title" anahtarına sahip bir nesne dizisi almayı bekler. Bunun kısa bir örneğini semantic-mediawiki.org'da bu API çağrısından görebilirsiniz.
    Örneğin, üç ülkeden oluşan bir listeniz varsa Uruguay, Germany ve Japan, ve "an" için olası tamamlamaların bir listesi istenmişse, şunu döndürürsünüz:
    {"pfautocomplete":[{"title":"Germany"},{"title":"Japan"}]}
    Bu aynı zamanda başka bir vikideki değerleri otomatik tamamlamayı da kolaylaştırır.
  2. Bu URL'yi temsil edecek kısa bir dizeye karar verin.
    Örneğin, ülke listemizde arama sağlayan hizmet "countryLookup" olarak adlandırılabilir.
  3. Page Forms ile dizeyi gördüğünde URL'nizi kullanacak şekilde yapılandırmak için kısa dizeyi LocalSettings.php dosyanızdaki $wgPageFormsAutocompletionURLs dizisine ekleyin. Kullanıcının girişinin gitmesini istediğiniz yere "<substr>" koyun.
    Örneğimizde, Page Forms kullanıcının tuş vuruşlarını url http://example.dom/countryLookup.php'ye url parametresi "c" aracılığıyla beslemesini istiyorsak, şunu koyarız:
    $wgPageFormsAutocompletionURLs['countryLookup'] = 'http://example.dom/countryLookup.php?c=<substr>';
    
  4. Form tanımındaki ilgili alana "values from url=URL-tanımlayıcı-dize" parametresini ekleyin.
    Ülke örneğimiz için şuna benzeyen bir alanımız olabilir:
    {{{field|country|input type=tokens|values from url=countryLookup}}}

External Data uzantısını kullanma

 
"Harici verilerden alınan değerler" kullanılarak otomatik tamamlama değerleriyle ilişkili simge resimleri

External Data uzantısı (ED), harici URL'ler, normal viki sayfaları, yüklenen dosyalar, yerel sunucudaki dosyalar, veritabanları ve LDAP dizinlerini içeren bir dizi kaynaktan veri almayı destekler.

Note that in order to use the External Data functionality, you must use either version 2.1 or lower, or 2.3 or higher, of External Data. If you are using version 2.3 or higher, you must version 5.0.1 or higher of Page Forms.

ED kullanarak otomatik tamamlama için, ilk olarak ED'nin "#get_..._data" ayrıştırıcı işlevlerinden herhangi birini form tanımı içinde çağırmanız gerekir (gereksiz satır sonlarını önlemek için tercihen form tanımının altında). Bu, daha sonra alan etiketlerinde kullanılabilecek verileri getirecektir. (Bunları nasıl arayacağınızı öğrenmek için External Data belgelere bakın.) Alan etiketi daha sonra şu parametreleri kullanabilir:

  • values from external data=ED değişken adı (zorunlu)
  • image=ED değişken adı (isteğe bağlı)
  • description=ED değişken adı (isteğe bağlı)

Bazı URL'lerden veri almak için #get_web_data ile örnek bir çağrı:

{{#get_web_data:url=URL |format=csv with header |data=title_variable_name=external_variable_name1,image_variable_name=external_variable_name2, description_variable_name=external_variable_name3}}

Bir form tanımının buna benzer bir çağrı içerdiğini varsayarsak, bir alan etiketi otomatik tamamlama için alınan değerleri kullanabilir. Yalnızca otomatik tamamlama değerlerini kendileri ayarlamak için değil, aynı zamanda giriş türü "combobox" veya "tokens" ise her biri için karşılık gelen küçük resim ve açıklama.

External Data çağrımızın yukarıdaki gibi üç değer "sütununu" aldığını varsayarsak, bu verileri kullanan alan etiketi şöyle görünebilir:

{{{field|...|values from external data=title_variable_name|image=image_variable_name|description=description_variable_name}}}

Bağımlı otomatik tamamlama

Bir alanın otomatik tamamlama değerlerini, bir kullanıcının formdaki başka bir alan için önceden ayarladığı değeri temel alacak şekilde ayarlayabilirsiniz. Bu, şu sözdizimine sahip olan values dependent on= parametresiyle yapılır:

 {{{field
  ...
  |values dependent on=<var>template name</var>[<var>field name</var>]

Bu alan için geçerli izin verilen değerler kümesinin, aynı alan tarafından 'field name' geçerli formda 'field name' için seçilen değere eşit olduğu sayfalardan alınan tüm değerler olduğunu belirtir.

Bu kafa karıştırıcı mı?

Peki, bu örnek yardımcı olabilir: Bir şablon "Restaurant" olarak adlandırılırsa ve "Country" ve "City" adlı şablon alanları (özellikleri değil) varsa ve otomatik tamamlama için kullanılan şehirler kümesinin yalnızca bu şehirler kullanıcının seçtiği ülkede olmasını istiyorsanız, öyleyse City alanı için alan etiketi şunun gibi görünmelidir: {{{field|City|input type=combobox|values dependent on=Restaurant[Country]}}}

Dosya yükleme

Formdaki bir alan, yüklenen bir dosyanın adını (örneğin, bir resim) barındırıyorsa, kullanıcıların bu dosyayı doğrudan form aracılığıyla yüklemesine izin verebilirsiniz. Bu, form tanımında bu alanın bildirimine "uploadable" parametresini ekleyerek yapılır. Bu, formdaki bu alanın yanına "Dosya yükle" yazan bir bağlantı ekleyecektir; kullanıcı bu bağlantıyı tıklarsa, kullanıcının bir dosya yüklemesine izin veren (FancyBox JavaScript kitaplığını kullanarak) bir "lightbox" tarzı pencere açacaktır. Kullanıcı bunu yaptığında, pencere kapanacak ve alan yüklenen dosyanın adını içerecektir. Alan bir değerler listesi içerecek şekilde yapılandırılırsa, yeni dosya adı daha önce ne varsa ona eklenir; aksi takdirde, dosya adı daha önce içerdiği alanın üzerine yazacaktır.

"uploadable" parametresinin yalnızca "text", "text ile otomatik tamamlama", "combobox" veya "tokens" türündeki alanlarda kullanılabileceğini unutmayın.

Yüklenebilir alanlar için, alan tanımında "default filename=" parametresini ayarlayarak yüklenen dosyaların varsayılan dosya adını da ayarlayabilirsiniz. Bu parametrenin değeri ayrıştırıcı işlevlerini, sihirli sözcükleri ve benzerlerini içerebilir. Ayrıca, eklenen veya düzenlenen sayfanın adıyla değiştirilen "<page name>" değişkenini de içerebilir. Dolayısıyla, alan tanımına "default filename=Image for <page name>" parametresini eklemek, örneğin "Abc" adlı bir sayfa için, yüklenen herhangi bir dosyanın varsayılan adını "Image for Abc" olarak ayarlayacaktır. Yalnızca "Imageneeded.png" gibi kullanmak için varsayılan bir dosya belirtmek isterseniz, normal "default=Imageneeded.png" parametresinin işe yarayacağını unutmayın.

Dosya yükleme demosunu burada görebilirsiniz.

LocalSettings.php dosyanızda $wgBreakFrames , true olarak ayarlanmışsa yükleme penceresinin çalışmayacağını unutmayın.

MediaWiki'nin yükleme sistemini kullanmak yerine, doğrudan işletim sisteminin kendi yüklemesini kullanmak için yüklenebilir alanları da ayarlayabilirsiniz. Bu, kullanıcıya daha az seçenek sunar, ancak daha basit bir işlemdir ve mobil cihazlarda fotoğraf yükleme gibi bazı ilginç seçenekler alındıktan hemen sonra sunabilir. Bunu yapmak için, aşağıdaki satırı LocalSettings.php dosyasına ekleyin:

$wgPageFormsSimpleUpload = true;

Yüklenebilir alanlar için özel parametreler şunlardır:

  • uploadable - Bunun yüklenebilir bir alan olduğunu belirtir.
  • image preview - Yüklenen resmini küçük resminin formdaki alanın altına yerleştirilmesi gerektiğini belirtir.
  • default filename=filename - Bu alanla yüklenen dosyalar için varsayılan dosya adını belirtir.

Parametre seçimde göster

"checkbox", "checkboxes", "radiobutton", "dropdown" ve "listbox" türündeki girişler için show on select= parametresi, sayfadaki bir veya daha fazla öğenin yalnızca belirli değer(ler) seçildiğinde ve seçildiğinde bu girişinin içinde görüntüleneceğini belirtir.

Bu parametrenin sözdizimi şöyledir:

  • show on select=değer 1=>öğe kimliği 1;değer 2=>öğe kimliği 2;değer 3=>öğe kimliği 3;...

Bir değer birden fazla öğe kimliğiyle sağlanabilir:

  • show on select=değer A=>öğe kimliği 1;değer B=>öğe kimliği 1;değer B=>öğe kimliği 2;değer C=>öğe kimliği 3;...

'checkbox' türü girdiler için, yalnızca "show on select=öğe kimliği" kullanılmalıdır. Öğe kimliklerinin boşluk ve/veya çok baytlı karakterler içeremeyeceğini ve bir sayıyla başlayamayacağını unutmayın.

Bu özelliğin kullanım örneği için, bu form sayfasına bakın ve "Publication type" açılır menüsü için farklı değerler seçtiğinizde ne olduğunu gözlemleyin. Bunun nasıl uygulandığını bu form tanımında görebilirsiniz.