Kolom form
From Joomla! Documentation
Pendahuluan
Kolom form adalah kolom-kolom di dalam sebuah <form>
HTML . Joomla! 2.5 dan yang lebih baru menyuplai kelas JForm untuk membuat form secara mudah dan fleksibel dengan sejumlah besar kolom-kolom form. Setiap jenis kolom form adalah subkelas JFormField.
Selain menjadi sebuah perangkat pembuatan halaman yang fleksibel, JFormField dipakai Joomla! untuk memungkinkan para administrator mengkonfigurasikan Joomla! atau ekstensi-ekstensinya tanpa mengganti kode intinya. Di Joomla! 1.5, ini dikendalikan oleh kelas-kelas JParameter dan JElement yang sekarang sudah tidak terpakai lagi.
Untuk mendefinisikan kolom-kolom formulir di dalam konfigurasi sebuah ekstensi, Anda harus menyertakannya di sebuah fieldset yang memiliki nama, seperti misalnya <fieldset name="basic">
, bersama bagian <fields name="params">
elemen <config>
di berkas manifes XML Anda.
== Validasi form ==
Joomla has client-side and server-side form validation capabilities.
Server side validation is essential since everything before that can be overridden on the user side by hackers. However client-side is the most user-friendly validation, so using both is considered best practice.
Client-side validation
.. is done via javascript while the user is filling in the form fields.
It uses the HTML classes required and validate-[xxx] (with [xxx] being a joomla or custom rule; e.g. validate-numeric)
More here: Client-side form validation
Server-side validation
.. is done after having submitted the form and will normally return to the form when not validated with some extra messages.
It uses the HTML attributes required ("true" or "required") and validate (with value being a joomla or custom rule; e.g. validate="email")
More here: Server-side form validation
== Standar jenis kolom form ==
Banyak jenis kolom form yang dibuat kedalam Joomla. Tabel berikut ini adalah jenis-jenis standar dan ketersediaannya. Gunakan referensi halaman-tunggal bila Anda ingin mencetak semua dokumentasi kolom form.
Pastikan bahwa, ada banyak kolom-kolom berikut yang tersedia sebagai jenis parameter di Joomla! 1.5. Untuk satu jenis parameter, lihat J1.5:Jenis parameter standar. Untuk perbandingan antara kolom form dan jenis parameter, lihat Kolom form standar dan jenis parameter.
Jenis | Deskripsi | Ketersediaan | |
---|---|---|---|
accessiblemedia | provides modal access to the media manager for insertion of images with upload for users with appropriate permissions and a text field for adding a alternative text. | ![]() | |
accesslevel | menyediakan sebuah dropdown untuk melihat tingkatan akses. | ![]() | |
cachehandler | menyediakan sebuah opsi pengendali cache yang ada. | ![]() | |
calendar | menyediakan sebuah kotak teks untuk memasukkan tanggal. Ikon disamping kotak teks memberikan sebuah tautan ke pop-up kalender, yang juga bisa dipakai untuk memasukkan nilai tanggal. | ![]() | |
captcha | menyediakan pemakaian plugin captcha. | ![]() | |
category | menyediakan sebuah dropdown dari kategori sebuah ekstensi. | ![]() | |
checkbox | menyediakan sebuah kotak centang untuk dicentang atau tidak dicentang. | ![]() | |
checkboxes | menyediakan banyak kotak centang tak terbatas yang bisa dipakai untuk multi-select. | ![]() | |
Chrome Style | menyediakan sebuah daftar opsi gaya chrome templat yang dikelompokkan berdasarkan templat. | ![]() | |
color | menyediakan pemilih warna pada saat mengklik kotak inputnya. | ![]() | |
Content Language | menyediakan sebuah daftar bahasa konten. | ![]() | |
Content Type | menyediakan sebuah daftar jenis konten. | ![]() | |
combo | menyediakan sebuah kolom combo box. | ![]() | |
componentlayout | menyediakan sekelompok daftar inti dan tata letak alternatif templat untuk sebuah butir komponen. |
![]() | |
contentlanguage | menyediakan sebuah daftar bahasa konten yang diinstal untuk dipakai berhubungan dengan plugin pengganti bahasa. | ![]() | |
Database Connection | menyediakan sebuah daftar koneksi database yang ada, secara opsional membatasi ke daftar yang diberikan. | ![]() | |
editor | menyediakan sebuah kolom area editor. | ![]() | |
editors | menyediakan sebuah dropdown untuk daftar editor WYSIWYG yang ada. Sejak ![]() |
![]() | |
menyediakan sebuah kolom email. | ![]() | ||
file | menyediakan sebuah kolom input untuk berkas-berkas. | ![]() | |
filelist | menyediakan sebuah dropdown dari berkas-berkas yang berasal dari sebuah direktori tertentu. | ![]() | |
folderlist | menyediakan sebuah dropdown dari folder-folder yang berasal dari direktori tertentu. | ![]() | |
groupedlist | menyediakan sebuah dropdown dari butir-butir yang disusun kedalam kelompok-kelompok. | ![]() | |
header tag | menyediakan sebuah dropdown dari tagar-tagar tajuk (h1-h6). | ![]() | |
helpsite | menyediakan sebuah dropdown dari situs-situs bantuan. | ![]() | |
hidden | menyediakan sebuah kolom yang tersembunyi dari sebuah kolom form dimana nilainya tidak dapat diubah secara langsung oleh pengguna (dapat diubah didalam kode atau dengan mengedit berkas params.ini). | ![]() | |
imagelist | menyediakan sebuah dropdown dari berkas-berkas gambar dalam direktori tertentu. | ![]() | |
integer | menyediakan sebuah dropdown dari integers minimal dan maksimal. | ![]() | |
language | menyediakan sebuah dropdown dari bahasa yang diinstal baik untuk Frontend maupun Backend. | ![]() | |
list | menyediakan sebuah dropdown dari sebuah entri yang didefinisikan secara kustom. | ![]() | |
media | menyediakan akses modal untuk di pengelolaan media untuk memasukkan gambar-gambar unggahan bagi pengguna yang diizinkan. | ![]() | |
menu | menyediakan sebuah dropdown menu. | ![]() | |
Menu Item | menyediakan sebuah dropdown butir-butir menu. | ![]() | |
meter | menyediakan rentang angka dari sebuah nilai. | ![]() | |
Module Layout | menyediakan tata letak alternatif untuk sekelompok modul inti dan templat. | ![]() | |
Module Order | menyediakan sebuah dropdown untuk mengatur posisi modul. | ![]() | |
Module Position | menyediakan input teks untuk mengatur posisi modul. | ![]() | |
Module Tag | menyediakan daftar elemen-elemen HTML5 (untuk membungkus modul). | ![]() | |
note | untuk membuat sebuah kolom teks satu baris. | ![]() | |
number | menyediakan satu baris kotak teks berpengendali naik-turun untuk mengatur nomor kolom. | ![]() | |
password | menyediakan sebuah kotak teks untuk memasukkan sandi. Karakter sandi akan disembunyikan pada saat diketik kedalamnya. | ![]() | |
plugins | menyediakan daftar plugin dari sebuah folder tertentu. | ![]() | |
predefinedlist | kolom form yang akan memuat nilai-nilai yang ditentukan. | ![]() | |
radio | menyediakan tombol-tombol radio. | ![]() | |
range | menyediakan sbeuah bilah scroll horizontal untuk menentukan nilai dalam suatu rentang. | ![]() | |
repeatable | menyediakan kolom form yang bisa memiliki sebanyak apapun opsi-opsi yang diinginkan. | ![]() | |
rules | menyediakan kelompok matriks dari opsi tindakan untuk mengelola kendali akses. Tampilannya tergantung konteks. | ![]() | |
sessionhandler | menyediakan sebuah dropdown dari opsi pengendali sesi. | ![]() | |
spacer | menyediakan pemisal visual diantara kolom-kolom form. Semata-mata bantuan visual saja dan tidak memiliki nilai yang disimpan didalamnya. | ![]() | |
sql | menyediakan sebuah dropdown entri yang diperoleh dari query Database. Kolom pertamanya adalah kembalian query yang memiliki nilai untuk dropdown tersebut. | ![]() | |
subform | menyediakan sebuah cara untuk menggunakan kolom-kolom XML antara yang satu dengan lainnya atau memakai form yang sudah ada kedalam form saat ini. | ![]() | |
tag | menyediakan sebuah entri poin untuk tagar-tagar (baik AJAX maupun yang Nested). | ![]() | |
tel | menyediakan sebuah kolom input untuk nomor telepon. | ![]() | |
templatestyle | menyediakan sebuah dropdown gaya-gaya templat. | ![]() | |
text | menyediakan sebuah kotak teks untuk entri data. | ![]() | |
textarea | menyediakan sebuah textarea untuk memasukkan tulisan yang memiliki baris yang banyak. | ![]() | |
timezone | menyediakan sebuah dropdown zona waktu. | ![]() | |
URL | menyediakan sebuah kolom input URL. | ![]() | |
user | kolom untuk memilih pengguna dari sebuah modal. Menampilkan Nama dari Pengguna dan menyimpan ID Pengguna. | ![]() | |
useractive | kolom yang menampilkan sebuah daftar status pengguna yang aktif. | ![]() |
|
usergroup | menyediakan sebuah dropdown kelompok pengguna. Sejak ![]() |
![]() |
|
usergrouplist | kolom untuk memuat sebuah dropdown kelompok pengguna. Menggantikan usergroup pada versi sebelumnya. | ![]() |
|
userstate | kolom untuk memuat sebuah daftar status pengguna. | ![]() |
== Jenis kolom form kustom ==
Sebuah ekstensi dapat mendefinisikan jenis kolom formnya sendiri, yang mana dapat dipakai di formnya sendiri atau form lain yang dibuat oleh ekstensi lain. Lihat Membuat sebuah jenis kolom form untuk petunjuknya.
=== Modal jenis kolom form ===
Jika Anda memiliki sebuah kolom dengan banyak nilai yang tidak muat di dalam sebuah kotak pemilihan, Anda dapat selalu membuat sebuah modal kolom form yang memungkinkan para pengguna untuk memilih sebuah butir dari sebuah halaman modal dengan sebuah tabel, opsi filter, dll (seperti tabel administrator apa saja, cth "Artikel").
Lihat Membuat sebuah modal kolom form
== Atribut umum == === Labelclass ===
Menambahkan atribut labelclass
akan menambah sebuah kelas CSS untuk label kolom formnya. Sumber:
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=28450
=== Showon ===
Menambah atribut showon
memungkinkan untuk menyembunyikan kolomnya berdasarkan pada nilai kolom lainnya.
The syntax to show the field bar only when foo is set to "1" and baz is set to "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1"
/>
To match multiple values one can provide a comma-separated list of values such as showon="foo:1,2"
To combine multiple fields, use [AND] as in showon="foo:1[AND]bar:1"
Sintak untuk menampilkan hanya "bilah" ketika "foo" diatur ke "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1[AND]baz:1"
/>
To create a choice among multiple fields, use [OR] as in showon="foo:1[OR]bar:1".
The syntax to show the field bar only when foo is set to "1" or baz is set to "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1[OR]baz:1"
/>
You can also use value 'does not equal' as in showon="field1!:1".
The syntax to show the field bar only when foo is not equal to "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
showon="foo!:1"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
To show a field when another field (e.g. foo) has been selected (when that other field is not empty), use showon="foo!:" (without a value specified).
Ini diperkenalkan bersama PullRequest: https://github.com/joomla/joomla-cms/pull/3379, yang tersedia mulai dari Joomla 3.2.4.
Troubleshooting: Attributes Not Working
If you have read an older version of our developer documentation, or took your form display code from an existing extension, you may be experiencing issues with attributes like showon not working at all. In order for some special attributes to function, your fields must be rendered using their renderField() method. For example:
<div class="row-fluid">
<div class="span6">
<?php
foreach($this->form->getFieldset() as $field) {
echo $field->renderField();
}
?>
</div>
</div>