membuat input field yang berupa option selection yang opsinya ditentukan dari table database. jika anda ingin membuat selection yang bisa anda tentukan sendiri tanpa menggunakan table database anda bisa menggunakan {FormSelect}
includes/lib/pea/form/FormSelecttable.php
membuat input field yang berupa option selection yang opsinya ditentukan dari table database. jika anda ingin membuat selection yang bisa anda tentukan sendiri tanpa menggunakan table database anda bisa menggunakan FormSelect
Contoh pengunaan:
$form->edit->addInput( 'film_id', 'selecttable' ); $form->edit->input->film_id->setTitle('Film yang ditayangkan'); $form->edit->input->film_id->setReferenceTable('filmes ORDER BY title'); $form->edit->input->film_id->setReferenceField( 'title', 'id' ); #form->edit->input->film_id->setReferenceCondition( 'active=1' ); #form->edit->input->film_id->setReferenceNested( 'par_id' ); #form->edit->input->film_id->setAllowNew($bool_or_str, $add_query = array()); #form->edit->input->film_id->setLinks($Bbc->mod['circuit'].'.'.$Bbc->mod['task'].'_detail'); #form->edit->input->film_id->setDB('db1');Untuk menambahkan option secara manual anda bisa menggunakan:
$form->edit->input->film_id->addOption('sepuluh', 10);Atau juga bisa menggunakan Array seperti:
$form->edit->input->film_id->addOption(array( 10 => 'Sepuluh', 11 => 'Sebelas', 12 => 'Duabelas', 13 => 'Tigabelas', ));
$form->edit->input->film_id->setAutoComplete(true); // Atau jika ingin option yang muncul tergantung dari fieldName lain $form->edit->input->film_id->setAutoComplete('fieldName'); // Atau jika ingin menggunakan konfigurasi khusus untuk input field ini $form->edit->input->film_id->setAutoComplete($arr_config);Berikut contoh
$arr_config
untuk penggunaan seperti diatas:
$arr_config = array( 'onfind' => "function(a){if(a==null)return alert('No match!');if(!!a.extra){$('#test_onfind_ac').val(a.extra[0]);$('#test_onfind').val(a.extra[1]);alert('I execute special function!! AND Unbind content tags suggestion');$('#tag_id').autocomplete('clear');}else{var b=a.selectValue;}}" 'onselect' => "null" 'formatItem' => "function(a){return a[2]}" 'url' => _URL."user/selecttable" // BISA DIGANTI KE URL YG DIINGINKAN 'data' => "function(){return {}};" 'inputClass' => "ac_input" 'resultsClass' => "ac_results" 'loadingClass' => "ac_loading" 'lineSeparator' => "<br />" 'cellSeparator' => "|" 'minChars' => "2" 'delay' => "10" 'matchCase' => "0" 'matchSubset' => "1" 'matchContains' => "1" 'cacheLength' => "10" 'mustMatch' => "0" 'extraParams' => "function(){return {}};" 'selectFirst' => "true" 'selectOnly' => "false" 'maxItemsToShow' => "-1" 'autoFill' => "false" );
menambahkan option secara manual atau tidak dari table database lain
addOption( $option, $value = null );
$form->edit->input->fieldName->addOption('sepuluh', 10);Atau juga bisa menggunakan Array seperti:
$form->edit->input->fieldName->addOption(array( 10 => 'Sepuluh', 11 => 'Sebelas', 12 => 'Duabelas', 13 => 'Tigabelas', ));berikut contoh2 Array yang bisa anda gunakan
## LABEL DAN VALUE NILAINYA AKAN SAMA $form->edit->input->fieldName->addOption(array('nol', 'satu', 'dua', 'tiga')); ## LABEL DIAMBIL DARI INPUT KE 1, DAN VALUE DIAMBIL DARI INPUT KE 2 DENGAN KEY ARRAY YANG SAMA $form->edit->input->fieldName->addOption(array('nol', 'satu', 'dua', 'tiga'), array(0,1,2,3)); ## VALUE DIAMBIL DARI ARRAY KEY 0, LABEL DIAMBIL DARI ARRAY KEY 1 DI DALAM INPUT ARRAY $form->edit->input->fieldName->addOption( array( array('0', 'nol'), array('1', 'satu'), array('2', 'dua'), array('3', 'tiga') ) ); ## HASILNYA AKAN SAMA PERSIS SEPERTI DIATAS JADI MENGACUHKAN NILAI DARI TIAP ARRAYKEY (LANGSUNG DIAMBIL VALUENYA) $form->edit->input->fieldName->addOption( array( array( 'key1' => '0', 'key2' => 'nol' ), array( 'key1' => '1', 'key2' => 'satu' ), array( 'key1' => '2', 'key2' => 'dua' ), array('key1' => '3', 'key2' => 'tiga' ) ) );
membuat input selection menjadi auto complete
setAutoComplete($bool_or_array_or_string = true, $parent_field_sql='');
$array_config = array( 'onfind' => "function(a){if(a==null)return alert('No match!');if(!!a.extra){$('#test_onfind_ac').val(a.extra[0]);$('#test_onfind').val(a.extra[1]);alert('I execute special function!! AND Unbind content tags suggestion');$('#tag_id').autocomplete('clear');}else{var b=a.selectValue;}}", 'onselect' => "null", 'formatItem' => "function(a){return a[2]}", 'url' => _URL."user/selecttable", // BISA DIGANTI KE URL YG DIINGINKAN 'data' => "function(){return {}};", 'inputClass' => "ac_input", 'resultsClass' => "ac_results", 'loadingClass' => "ac_loading", 'lineSeparator' => " ", 'cellSeparator' => "|", 'minChars' => "2", 'delay' => "10", 'matchCase' => "0", 'matchSubset' => "1", 'matchContains' => "1", 'cacheLength' => "10", 'mustMatch' => "0", 'extraParams' => "function(){return {}};", 'selectFirst' => "true", 'selectOnly' => "false", 'maxItemsToShow' => "-1", 'autoFill' => "false" );Sehingga untuk menggunakan anda tinggal mengisikan yang ingin anda ubah, semisal:
...->setAutoComplete(array('minChars'=>3)); atau ...->setAutoComplete(array('url' => $Bbc->mod['circuit'].'.'.$Bbc->mod['task']));
untuk meng-link kan ke URL lain, sehingga selection otomatis kondisi plaintext
setLinks( $str_links = '' );
menentukan link ketika diklik akan berbentuk popup atau membuat window sendiri
setUrlPop( $str_links,$title="View");
menentukan ukuran popup HTML yang akan muncul ketika diklik jika method setUrlPop digunakan
setSizePop( $widht=480,$height=640);
menentukan nama variable $_GET yang akan digunakan
setGetName( $str_get_name = 'id' );
menentukan ketika link diklik akan berbentuk modal di bootstrap
setModal($boolean = true);
menentukan apakah dalam selection ini bisa langsung menambah opsi atau data secara langsung, tanpa harus berpindah ke halaman lain
setAllowNew($boolean_or_string = true, $add_query = array());
$add_query = array( 'active=1', 'publish=1' );apabila argument ke 2 ($add_query) tersebut dikosongkan, maka otomatis akan mengambil value yang telah ditentukan pada setReferenceCondition dimana argument / parameter yang dimasukkan harus berupa array
mengambil argument ke 2 dari setAllowNew untuk dijadikan query MySQL. Sudah dipanggil otomatis oleh class
setAllowNewQuery($values);
menentukan table database yang digunakan sebagai referensi
setReferenceTable( $str_reference_table );
menentukan field yang akan digunakan dari table database yang ditentukan setReferenceTable
setReferenceField( $str_reference_label_field, $str_reference_value_field );
menambahkan query pencarian ke dalam query MySQL untuk pencarian data di dalam table yang ditentukan oleh setReferenceTable
setReferenceCondition($value);
`active`=1 AND `publish`=1
array('`active`=1', '`publish`=1', '`lang_id`=1');
Jika ingin menjadikan input type ini sebagai 'child' pilihan dari opsi lain
setReferenceNested($referenceNestedField = 'par_id');
menentukan table relasi dimana input dari user akan disimpan
setRelationTable( $str_relation_table );
menentukan field yang akan digunakan oleh table yang telah ditentukan oleh setRelationTable
setRelationField( $str_main_id_field, $str_reference_id_field );
menambahkan query pencarian ke dalam query MySQL untuk pencarian data di dalam table yang ditentukan oleh setRelationTable
setRelationCondition($value);
`active`=1
menentukan nama field primary dari table yang ditentukan oleh setRelationTable
setRelationTableId( $str_relation_tableId='id' );
menentukan string pemisah antara input satu dengan yang lainya
setDelimiter( $str_delimiter = "
" );
menentukan berapa kolom yang akan digunakan jika ada banyak field yang dihasilkan
setColumn($column=1);
Untuk menambahkan Array option pada input field. sama seperti method addOption hanya saja HARUS Array
addOptionArray( $arrOption, $arrValue = array() );
menantukan nilai yang akan disimpan ke dalam database ketika user mensubmit form
setValue( $arr_value = array( '1', '0' ) );
menentukan apakah ingin menggunakan fitur check All jika digunakan pada phpRollAdmin
setCheckAll( $bool_is_check_all = false );
menentukan object bbcSQL
setDbObject( $db );
menentukan variable object untuk database, hampir sama seperti setDbObject bedanya yang dimasukkan adalah nama variable nya
setDB($string_db);
menentukan judul dari input field
setTitle( $str_title );
menentukan label dari input field
setCaption( $str_caption='' );
menentukan icon yang digunakan jika jenis input field yang dibuat membutuhkan icon
setIcon( $str_caption = 'edit', $str_alt = '' );
menentukan posisi input field [depricated]
setAlign( $str_align = "center" );
menentukan nama field dalam database table utama
setFieldName( $str_field_name );
menentukan nama field dari input field di form
setName( $str_name );
menentukan prefix yang digunakan dalam penamaan field
setFormName( $str_form_name );
menentukan apakah input field ini menggunakan fitur multilanguage ataukah tidak
setLanguage($isMultiLanguage=true);
menentukan di kolom ke berapa input field ini akan ditampilkan jika form berbentu multi kolom, method ini hanya berlaku untuk phpEditAdmin dan phpAddAdmin. jadi kalo di gunakan untuk phpRollAdmin dan phpSearchAdmin tidak akan berpengaruh apapun.
setNoColumn($noColumn=1);
$id = @intval($_GET['id']); $form = _lib('pea', 'table_name'); $form->initEdit(!empty($id) ? 'WHERE id='.$id : ''); $form->edit->setColumn(2); $form->edit->addInput('header','header'); $form->edit->input->header->setTitle(!empty($id) ? 'Edit Data' : 'Add Data'); $form->edit->addInput('title','text'); $form->edit->input->title->setTitle('Title'); $form->edit->input->title->setCaption('Masukkan Judul...'); $form->edit->input->title->setNoColumn(1); $form->edit->addInput('detail','text'); $form->edit->input->detail->setTitle('Detail'); $form->edit->input->detail->setCaption('Masukkan Detail...'); $form->edit->input->detail->setNoColumn(2); $form->edit->action(); echo $form->edit->getForm();Script diatas akan menghasilkan output seperti ini:
menentukan ukuran input field [depricated]
setSize( $int_size );
menentukan default value dari input field
setDefaultValue( $str_default_value );
menentukan attribut tambahan pada tag HTML di input field
setExtra( $str_extra );
menentukan apakah input field ini bisa diubah valuenya ataukah tidak
setPlaintext( $bool_is_plaintext = false );
menentukan input field akan di validasi sebelum form disubmit
setRequire( $is_input_require = 'any', $is_mandatory = 1 );
menentukan input field ini adalah tipe header ataukah tidak
setIsHeader( $bool_header );
menentukan apakah input field ini termasuk multiinput ataukah tidak
setIsMultiInput( $bool_multi );
untuk menandai input field ini di panggil dari tipe form apa
setActionType( $str_action_type );
untuk menyembunyikan input field
setHidden( $bool_hidden = true );
menandai apakah input field masuk kedalam baris form atau tidak
setIsInsideRow( $bool_inside );
menandai apakah input field masuk ke dalam cell tag HTML dari kolom ataukah tidak
setIsInsideCell( $bool_inside );
menandai apakah input field membutuhkan object dari class yang memanggil atau tidak
setIsNeedDbObject( $bool_need = true );
menentukan nama dari table yang di gunakan dalam database
setTableName( $str_table_name );
menentukan nama field primary dalam database table
setTableId( $str_table_id );
menentukan query MySQL tambahan dalam input field
setSqlCondition( $sql_condition );
menentukan object parent apabila input field ini masuk kedalam multiinput
setParent($obj);
apakah input field ini masuk kedalam query SELECT ketika form dibuat
setIsIncludedInSelectQuery( $bool_included );
apakah input field ini masuk kedalam query UPDATE ketika form disubmit
setIsIncludedInUpdateQuery( $bool_included );
apakah input field ini masuk kedalam query DELETE ketika form di hapus (jika ada tombol hapus)
setIsIncludedInDeleteQuery( $bool_included );
menandai apakah input field ini masuk ke dalam report ketika di export (jika ada tombol export)
setIsIncludedInReport( $bool_included );
apakah input field ini masuk kedalam query pencarian ketika form disubmit dan digunakan oleh phpSearchAdmin
setIsIncludedInSearch( $bool_included );
mengambil query MySQL tambahan ketika form di submit jika ditampilkan oleh phpRollAdmin dan phpEditAdmin sedangkan setIsIncludedInUpdateQuery bernilai TRUE
getRollUpdateQuery( $i = '' );
menentukan query MySQL tambahan jika form di submit sedangkan setIsIncludedInUpdateQuery bernilai TRUE
getRollUpdateSQL( $i = '' );
mengambil query MySQL ketika form di submit jika ditampilkan oleh phpAddAdmin sedangkan setIsIncludedInUpdateQuery bernilai TRUE
getAddQuery();
mengeksekusi proses tambahan ketika form di submit, hanya berlaku jika input field menggunakan phpAddAdmin
getAddAction($db, $Insert_ID);
mengambil query MySQL tambahan ketika form di hapus jika ditampilkan oleh phpRollAdmin dan phpEditAdmin sedangkan setIsIncludedInDeleteQuery bernilai TRUE
getDeleteQuery($ids);
menentukan apakah input field ini menggunakan equal (=) ataukah LIKE dalam query MySQL jika digunakan dalam phpSearchAdmin
setSearchQueryLike($bool_like);
menentukan query MySQL yang digunakan untuk pencarian jika digunakan dalam phpSearchAdmin
getSearchQuery();
menentukan query MySQL tambahan jika form di submit sedangkan setIsIncludedInUpdateQuery bernilai TRUE dan digunakan dalam phpAddAdmin
getAddSQL();
menentukan query MySQL tambahan jika form di hapus (jika ada tombol hapus) sedangkan setIsIncludedInDeleteQuery bernilai TRUE
getDeleteSQL($ids);
membersihkan text dari karakter yang akan merusak query MySQL hasil dari input field
cleanSQL($q);
men-check apakah input field yang di buat merupakan Plaintext ataukah tidak
checkIsPlaintext( $str_value = '', $str_name = '', $str_extra = '' );
mengambil output dari input field ketika kondisi checkIsPlaintext adalah TRUE
getPlaintexOutput( $str_value = '', $str_name = '', $str_extra = '' );
mengambil output dari input field ketika form di export
getReportOutput( $str_value = '' );
mengambil tag HTML dari input field
getOutput( $str_value = '', $str_name = '', $str_extra = '' );
dipanggil oleh getOutput untuk menentukan tag wrapper / pembungkus dari input field
getReturn($value);
menentukan text bantuan yang akan muncul jika dihover
setHelp( $value = '' );
menentukan text notes yang muncul di bawah input field
setTip( $value = '' );
menambahkan text pada text bantuan yang muncul ketika di hover
addHelp( $value = '' );
menambahkan text pada text bantuan yang muncul di bawah input field
addTip( $value = '' );
Menentukan apakah field ini akan di tampilkan di dalam table form ataukah tidak. Hanya bisa digunakan untuk phpRollAdmin, maka field tersebut akan menjadi kolom dalam table dan secara otomatis field/kolom ini akan menjadi pilihan bagi user mau ditampilkan atau tidak.
setDisplayColumn($boolean=false);
digunakan untuk mengolah data yang keluar dari database untuk ditampilkan baik itu dalam phpAddAdmin, phpEditAdmin maupun phpRollAdmin selama data ditampilkan dalam bentuk plaintext
setDisplayFunction($obj_func, $use_in_report=true);
$form->roll->input->fieldName->setDisplayFunction('oddEven'); function oddEven($value) {return ($value%2) ? 'Ganjil' : 'Genap'; }Atau langsung bisa dimasukkan object nya seperti berikut:
$form->roll->input->fieldName->setDisplayFunction(function ($value) {return ($value%2) ? 'Ganjil' : 'Genap'; });jangan lupa method ini hanya berlaku jika field tersebut ditampilkan dalam bentuk plaintext bukan dalam bentuk form input, sedangkan untuk mebuat form bisa di export ke file, anda harus menggunakan method addReport atau addReportAll
digunakan untuk mengolah data yang keluar dari database untuk ditampilkan dalam file hasil export,baik itu dalam phpEditAdmin maupun phpRollAdmin selama mengaktifkan addReport atau addReportAll
setExportFunction($obj_func);
$form->roll->input->fieldName->setExportFunction('oddEven'); function oddEven($value) {return ($value%2) ? 'Ganjil' : 'Genap'; }Atau langsung bisa dimasukkan object nya seperti berikut:
$form->roll->input->fieldName->setExportFunction(function ($value) {return ($value%2) ? 'Ganjil' : 'Genap'; });jangan lupa method ini hanya berlaku jika field tersebut ditampilkan dalam file hasil export baik excel dll, sedangkan untuk mebuat form bisa di export ke file, anda harus menggunakan method addReport atau addReportAll