Extension:Page Forms/Input types/tr

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

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

Özel parametreler:
 * boyut - Girişin genişliğini karakter cinsinden belirtir.
 * maksimum uzunluk - Girişin izin verilen maksimum uzunluğunu belirtir.
 * yer tutucu metin - Kullanıcı tıklatana kadar girişte görüntülenen yardım metnini belirtir.

textarea
HTML etiketine karşılık gelir.

Özel parametreler:
 * num satırları - Satır sayısını belirtir.
 * num sütunları - Sütun sayısını belirtir.
 * maksimum uzunluk - Girişin izin verilen maksimum uzunluğunu belirtir.
 * - 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.
 * 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:
 * - yüklenmesi gereken 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  eklemek isterseniz, bunları JavaScript'te   eklemeniz gerekir, tıpkı   için var oldukları gibi.
 * Note that currently only the versions of WikiEditor that correspond to MediaWiki versions 1.33 and earlier are supported for "editor=wikieditor". If you want this feature to work with a more recent version of MediaWiki, you will (for now) have to make changes to the code of both the WikiEditor and Page Forms extensions; the WikiEditor change is here, while the Page Forms change is here.
 * - yüklenmesi gereken uzantısını kullanır. This does not work with multiple-instance templates.
 * - yüklenmesi gereken uzantısını kullanır. Başka bir uzantı olan  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,   eklemeniz gerekecektir.


 * 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.
 * 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  ve   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
"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:


 * boyut - Girişin genişliğini karakter cinsinden belirtir.
 * - Alandaki rastgele değerlere izin vermez.
 * yer tutucu metin - Kullanıcı üzerine tıklayana kadar girişte görüntülenen yardım metnini belirtir.
 * ad alanı - Belirtilen ad alanını seçilen değerin başına ekler.

tokens
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:


 * boyut - Girişin genişliğini karakter cinsinden belirtir.
 * maksimum değerler - İzin verilen maksimum değer sayısını belirtir.
 * - Alandaki rastgele değerlere izin vermez.
 * yer tutucu metin - Kullanıcı tıklatana kadar girişte görüntülenen yardım metnini belirtir.
 * ad alanı - Belirtilen ad alanını seçilen her değerin başına ekler.

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 " " gibi bir  parametresi ekleyin, ardından MediaWiki:Common.css ile aşağıdakine benzer bir şey ekleyin:

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

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 &lt;select&gt; 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ı  değişkeni tarafından belirlenir, varsayılan olarak 10'dur, ancak LocalSettings.php içinde değiştirilebilir.

Özel parametreler:


 * - 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
 * - 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 &lt;select&gt; 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:


 * 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:


 * - kategorinin adını "ağacın" tepesine ayarlar.
 * - 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:

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


 * - ağacın içinde göründüğü kutunun yüksekliğini piksel cinsinden ayarlar.
 * - ağacın içinde göründüğü kutunun genişliğini piksel cinsinden ayarlar.
 * - alan bir değerler listesi içerebileceği zaman sınırlayıcıyı ayarlar. Varsayılan ','.
 * - üst kategorinin adını gizler.
 * - 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:

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


 * - bu onay kutusu için bir &lt;label&gt; 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:


 * - 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
"datepicker", kullanıcının JavaScript tabanlı bir açılır pencere takvimi yardımıyla bir tarih seçmesine izin verir. Bu girişin birçok isteğe bağlı parametresi vardır; tam liste için buraya bakın.

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  şeklindedir. Parametre seti, aşağıdakilerin yanı sıra tümü "datepicker" ile içerir:


 * - izin verilen minimum süre
 * - izin verilen maksimum süre
 * - 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:


 * - her yıldızın genişliğini (ve yüksekliğini) belirtir. Varsayılan 24px.
 * - görüntülenecek yıldız sayısını belirtir. Varsayılan 5'tir.
 * - 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  ayarıyla LocalSettings.php olarak ayarlamanız gerekebilir.

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


 * - haritanın yüksekliğini piksel olarak ayarlar.
 * - haritanın genişliğini piksel olarak ayarlar.
 * Both height & width are needed together to set the dimension.
 * - 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:


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

"googlemaps" girişi, koordinatları daha kolay bulmak için bir adres girmenize olanak tanır. 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:

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:

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:

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 ( giriş türü gibi) veya yalnızca kullanıcıya rehberlik etmesi amaçlanan değerler olabilir (  gibi, ancak bu seçenekler de zorunlu hale getirilebilir,   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:


 * +  – Vikide Cargo yüklediyseniz, bu parametreler seti,   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.
 * – 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.
 * – İşlevsel olarak, bu parametre yukarıdaki  ile aynı şekilde çalışır, ancak bazı yan etkilerden yoksundur:   ayrıca alanın boyutunu ve hatta giriş türünü etkileyebilir.
 * – Değerlerini belirli bir kategoriye ait tüm sayfaların adlarından alır.
 * – 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.
 * – Değerlerini belirli bir SMW kavramına ait tüm sayfaların adlarından alır.
 * – Son olarak, kullanıcıya gösterilen değer kümesini elle belirtebilirsiniz; bir örnek  olacaktır. Bu değerler kümesi varsayılan olarak virgülle ayrılmalıdır, ancak sınırlayıcı   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:

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


 * şablon adı - Bir "mapping template" adını alır (tek, adlandırılmamış bir parametre, yani 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.
 * ö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  parametreleriyle birlikte kullanılır.
 * tablo adı/ alan adı - Cargo alanları için kullanılması dışında  benzeridir. ,  ,   ve  /  ile birlikte kullanılır.
 * - Translate uzantısı yüklüyse, eşlenen değeri almak için her değerde Translate'in sihirli kelimesini çağırır.

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

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

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:

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

Bir alan " " 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  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:

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:

This feature is especially important for wikis that have values with non-ASCII characters, such as wikis in languages with non-Roman alphabets; since the default, word-based autocompletion doesn't yet work with non-ASCII characters.

Autocompletion on characters with accents
Flexible autocompletion for characters with accents is supported by the combobox and tokens input type.

Accent-folding has its limitations but it can help make some important yet overlooked user interactions work better. An accent-folding function essentially maps Unicode characters to ASCII equivalents. With accent-folding, it doesn’t matter whether users search for cafe, café or even çåFé; the results will be the same.

Autocompleting on outside values
There are two ways to have a field autocomplete using data from outside the wiki - one is from a URL that takes in a substring and returns data in JSON format similar to JSON returned by MediaWiki API and the other is to use External Data extension to fetch data from some external/internal source.

From an outside URL
You can have a field autocomplete on values from outside the wiki,using the following parameter:


 * URL identifier

To do so, take the following steps:


 * 1) Create a page/web service that takes in a substring via the query string, and displays a set of completion values. Page Forms expects to get a JSON format response with a toplevel key of "pfautocomplete" and an array of objects with the "title" key marking the values of possible completions. You can see a brief example of this from this API call on semantic-mediawiki.org.
 * For example, if you had a list of three countries -- Uruguay, Germany, and Japan -- and were asked for a list of possible completions for "an", you would return:
 * This also makes it easy to autocomplete on the values from another wiki.
 * 1) Decide on a short string to represent this URL.
 * For example, the service providing lookups in our list of countries could be called " ".
 * 1) Add the short string to the array in   in your LocalSettings.php file to configure Page Forms to use your URL when it sees the string. Put " " where you want the user's input will go.
 * In our example, if we want Page Forms to feed the user's keystrokes to the url  via the url parameter " ", we'd put:
 * 1) Add the parameter "values from url=URL-identifier-string" to the relevant field in the form definition.
 * For our country example, we might have a field that looks like:
 * 1) Add the parameter "values from url=URL-identifier-string" to the relevant field in the form definition.
 * For our country example, we might have a field that looks like:

Using the External Data extension


The External Data extension (ED) supports retrieving data from a number of sources which include external URLs, regular wiki pages, uploaded files, files on the local server, databases and LDAP directories.

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.

To autocomplete using ED, you need to first call any of ED's "#get_..._data" parser functions within the form definition (preferably at the bottom of the form definition, to avoid unnecessary line breaks). This will fetch data that can then be used in the field tags. (See the External Data documentation for how to call these.) The field tag may then use these parameters:


 * ED variable name (mandatory)
 * ED variable name (optional)
 * ED variable name (optional)

Here is a sample call to #get_web_data to fetch data from some URL:

Assuming a form definition contains a call like that, a field tag can then use the values retrieved for autocompletion - not just to set the autocomplete values themselves, but also, if the input type is "combobox" or "tokens", to set a corresponding thumbnail image and description for each one.

Assuming our External Data call retrieved three "columns" of values, as the one above does, the field tag using this data could look like:

Dependent autocompletion
You can set a field's autocompletion values to be based on the value a user has already set of another field in the form. This is done with the parameter, which has this syntax:

{{{field ... |values dependent on= template name [ field name ]

It specifies that the current set of allowed values for this field are all the values taken by this same field from pages where 'field name' is equal to the value selected for 'field name' in the current form.

Is that confusing?

Well, this example may help: if a template is called "Restaurant" and it has template fields (not properties) named "Country" and "City", and you want the set of cities that are used for autocompletion to be only those cities in the country that the user selected, then the field tag for the City field should look something like:

Uploading files
If a field in the form is meant to hold the name of an uploaded file (say, an image), you can allow users to upload this file directly through the form. This is done simply by adding the parameter "uploadable" to that field's declaration in the form definition. This will add a link reading "Upload file" next to this field in the form; if the user clicks on this link, it will pop up a "lightbox"-style window (using the FancyBox JavaScript library) that lets the user upload a file. Once the user has done so, the window will close, and the field will contain the name of the uploaded file. If the field is configured to contain a list of values, the new file name will be appended to whatever was there before; otherwise, the file name will overwrite whatever the field contained before.

Note that the "uploadable" parameter can only be used in fields of type "text", "text with autocomplete", "combobox" or "tokens".

For uploadable fields, you can also set the default filename of the uploaded files, by setting the "default filename=" parameter in the field definition. The value of this parameter can include parser functions, magic words and the like. It can also include the variable "&lt;page name>", which gets substituted with the name of the page being added or edited. So adding to the field definition the parameter "default filename=Image for &lt;page name>", for instance, for a page called "Abc", would set the default name of any uploaded file to "Image for Abc". Note that if you simply want to specify a default file to use such as "Imageneeded.png" the regular "default=Imageneeded.png" parameter will do.

You can see a demonstration of file uploading here.

Note that the upload window will not work if  is set to   in your LocalSettings.php file.

You can also set uploadable fields to use the operating system's own uploading directly, instead of using MediaWiki's uploading system - this gives the user fewer options, but it is a simpler process, and on mobile devices it can present some interesting options, like uploading photos right after they are taken. To do this, add the following line to LocalSettings.php file:

The special parameters for uploadable fields are:
 * - Specifies that this is an uploadable field.
 * - Specifies that a thumbnail of the uploaded image should be placed under the field in the form.
 * filename - Specifies the default filename for files uploaded with this field.

Parameter show on select
For inputs of type 'checkbox', 'checkboxes', 'radiobutton', 'dropdown' and 'listbox', the parameter  specifies that one or more elements on the page should only be displayed if and when certain value(s) are selected within that input.

The syntax for this parameter is:


 * value 1 element ID 1;value 2 element ID 2;value 3 element ID 3;etc.

A value can be provided with more than one element-id:


 * value A element ID 1;value B element ID 1;value B element ID 2;value C element ID 3;etc.

For inputs of type 'checkbox', simply " element ID" should be used. Note that the element IDs cannot contain spaces and/or multibyte characters and cannot start with a number.

For an example of this feature in use, see this form, and observe what happens when you select different values for the "Publication type" dropdown. You can see how that was implemented in this form definition.