Minggu ini saya mengerjakan website dari Elektronika dan Instrumentasi UGM. Saya membuat sebuah content management system(CMS) sederhana untuk memperbarui konten. Konsepnya adalah dalam sebuah posting, akan ada sebuah judul, ringkasan, teks panjang, dan gambar yang mewakili posting tersebut.
Web tersebut disusun dengan menggunakan framework CodeIgniter. Awalnya saya berencana membuat sebuah librari untuk menangani web ini. Jadi saya tinggal fokus pada librarinya. Termasuk untuk bagian CMS tersebut. Saya pun menggunakan class form validation dari CodeIgniter untuk melakukan validasi input form CMS.
Masalah pertama adalah, class form validation pada CodeIgniter hanya melakukan pemeriksaan pada variabel $_POST. Sedangkan saya akan mengunggah berkas gambar yang nantinya akan ada di variabel $_FILES.ΓΒ Akhirnya setelah melakukan googling, ditemukan penyelesaian bahwa untuk mengatasi hal tersebut, kita dapat membuat sebuah fake post. Misalnya:
$_POST['upload_form'] = 'pura-puranya ini konten';
Setelah itu, kita membuat sebuah rules seperti biasa dengan memanggil fungsi callback. Misalnya saja:
$this->form_validation->set_rules('upload_form', 'Upload Form', 'required|callback_ngupload');
Dan tentunya fungsi callbacknya. Misalnya saja:
function ngupload($str){ $ul_config['upload_path'] = '/path/to/upload/folder'; $ul_config['allowed_types'] = 'gif|jpg|png'; $this->load->library('upload',$ul_config); if(!$this->upload->do_upload('upload_form')){ if($_FILES['upload_form']['error']==4){ return TRUE; }else{ $this->form_validation->set_message('ngupload', $this->upload->display_errors()); return FALSE; } } else { $this->uploads = $this->upload->data(); return TRUE; } }
Dapat dilihat diatas $_FILES[‘upload_form’][‘error’] = 4, ini adalah error ketika tidak ada berkas yang dipilih. Karena dalam konsep CMS yang saya buat tidak harus mengunggah gambar, maka saya mengabaikan error ini.
Masalah yang kedua adalah, ternyata fungsi callback dari class form validation CodeIgniter tidak berjalan dengan semestinya kalau kita membuatnya dalam sebuah library. Harus di dalam sebuah controller. Mohon saya dikoreksi kalau salah. π
wah bisa buat referensi untuk yang lagi belajar PHP kang..
π
sip mas dab.. semoga bermanfaat..:D
Yahudd lah si mas ini..:D
@fandronk: yahud apanya fan?:)
Sepak Terjangnya hahahahha…
wah bisa buat referensi untuk yang lagi belajar PHP kang..
π
ALHAMDULILLAH, syukron atas ilmunya …