membuat input field yang bisa meng-upload banyak gambar dan setiap gambar bisa diberi judul dan description sendiri2. penyimpanan hasil submit user bisa dalam satu field (yang akan berupa JSON) atau di table lain yang setiap image masuk dalam satu row
includes/lib/pea/form/FormMultifile.php
membuat input field yang bisa meng-upload banyak gambar dan setiap gambar bisa diberi judul dan description sendiri2. penyimpanan hasil submit user bisa dalam satu field (yang akan berupa JSON) atau di table lain yang setiap image masuk dalam satu row
Contoh penggunaan (yang diawali # adalah optional):
$form->edit->addInput('images','multifile'); #form->edit->input->images->setTitle('Judul Input'); $form->edit->input->images->setFolder($Bbc->mod['dir'].$id.'/'); #form->edit->input->images->setResize(640); #form->edit->input->images->setThumbnail(150, $prefix = 'thumb'); #form->edit->input->images->setWatermark($watermark_path, 'center'); #form->edit->input->images->setFirstField('image');jika menggunakan relation table seperti di bawah maka 'images' akan menjadi field dengan nama bebas atau tidak menjadi field dalam table database lagi sehingga tidak di query dalam `SELECT`
form->edit->input->images->setRelationTable('gallery_image'); #form->edit->input->images->setRelationField('gallery_id', 'image,title,description'); #form->edit->input->images->setRelationCondition('publish=1');Jika tidak menggunakan setRelationTable maka field `images` (->images->) harus tersedia dalam table utama, dengan format SQL
`images` text NOT NULL
menentukan di folder mana semua image yang diupload akan disimpan
setFolder( $str_folder='', $str_folder_url='' );
$Bbc->mod['dir'].$id.'/'
$id
adalah ID dari table utama yang sedang diedit yang biasanya diambil dari variable $_GET['id']
mengganti default target URL untuk memposting gambar
setActionURL($url='');
_URL.'user/multifile'
menentukan ukuran gambar maximum lebar/tinggi dalam hitungan pixel agar jika file gambar yang diupload lebih besar dari yang ditentukan maka akan diresize
setResize( $size, $is_resize = true );
menentukan ukuran gambar untuk thumbnail jika dibutuhkan, jadi jika method ini digunakan maka file gambar yang diupload akan menjadi 2 file untuk ukuran besar dan ukuran thumbnail
setThumbnail( $sizes, $prefix = 'thumb');
$prefix."_"
menentukan gambar yang akan dijadikan watermark (gambar lain yang disisipkan ke gambar yang diupload) yang biasanya adalah logo perusahaan
setWatermark( $image, $params = array() );
$params = array( 'wm_vrt_alignment' => 'middle', // top, middle, bottom 'wm_hor_alignment' => 'center', // left, center, right 'wm_opacity' => 50, 'wm_x_transp' => 4, 'wm_y_transp' => 4, );
menentukan field dari table utama untuk menyimpan string nama dari gambar yang pertama diupload atau gambar diurutan pertama
setFirstField($fieldName);
menentukan table relasi dalam database untuk menyimpan nama2 image yang diposting oleh user
setRelationTable( $str_relation_table );
menentukan nama field yang akan digunakan dalam table yang ditentukan oleh setRelationTable
setRelationField( $str_main_id_field, $str_reference_image_field='image,title,description' );
menentukan format ekstensi file apa saja yang diperbolehkan untuk diupload ke multifile ini
setAllowedExtension( $arr_allowed_extension = array('jpg', 'gif', 'png', 'bmp') );
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');
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);
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' ) ) );
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