/** * Logout dan redirect ke login form */ public function get_logout() { // Trigger: // Sebelum logout, mengkosongkan kembali isi folder 'pdf' dan 'files' dari file-file // lembar disposisi yang digenerate dan CSV yang diimport. Printpdf::empty_pdf_folder(); Suratkeluar::empty_csv_folder(); Auth::logout(); return Redirect::to_route('login')->with('title', 'Agenda Surat :: Login'); }
/** print lembar disposisi */ public function get_disposisi($id) { // re-use model view_surat $view_surat = Suratmasuk::view_surat($id); if ($view_surat) { // generate pdf, return string file name, simpan di variabel $generate_pdf = Printpdf::generate_lembar_disposisi($view_surat); // open generated pdf file $path_to_pdf = 'pdf/' . $generate_pdf; $url_to_pdf = URL::to_asset($path_to_pdf); return Redirect::to($url_to_pdf); } else { // return error 404 apabila mengakses ID surat yg tidak ada di database return View::make('error.404'); } }
/** * -HELPER- * Oleh karena setiap lembar disposisi digenerate dengan nama file berbeda, * akibatnya akan tergenerate banyak file pdf. * Agar tidak membanjiri isi folder, fungsi ini dipakai untuk mengkosongkan * kembali isi folder 'pdf' :) * * Apabila aplikasi digunakan oleh banyak user secara bersamaan, apakah * user X dapat menghapus lembar disposisi yang digenerate user Y? * Ya dapat, karena lembar disposisi yang digenerate disimpan secara lokal * dengan tujuan kompatibilitas antar browser. Oleh karena itu, menyimpan * PDF lembar disposisi pada lokal disk bukanlah tujuan utama. */ public static function empty_pdf_folder() { // get path to pdf folder $folder_path = Printpdf::pdf_folder_path(); // scan directory $files = scandir($folder_path); // unset current and parent directory unset($files[0]); // exclude current folder / . unset($files[1]); // exclude parent folder / .. unset($files[2]); // exclude git ignore // menghapus semua file pdf dalam folder tersebut foreach ($files as $key => $fname) { $full_path_to_file = Printpdf::pdf_folder_path() . $fname; unlink($full_path_to_file); } }