getClientOriginalExtension(); // // $resizedImage = Image::make($file); // $resizedImage->orientate(); // $resizedImage->resize(500, 500, function ($constraint) { // $constraint->aspectRatio(); // $constraint->upsize(); // }); // // // $imageEncoded = (string) $resizedImage->encode(); // // $path = $tempatSimpan . $filename; // Storage::put($path, $imageEncoded); // // $gambar = $simpan . $filename; // return $gambar; // } public function index() { $data = Programs::all(); return view('admin.pages.program', compact('data')); } public function data($id){ $data = Programs::findOrFail($id); return response()->json([ 'id' => $data->id, 'level' => $data->level, 'level_number' => $data->level_number, 'kelas' => $data->kelas, 'goal' => $data->goal ?? '', 'penjelasan' => $data->penjelasan ?? '', 'capaian' => $data->capaian ?? '', 'penjelasan_tambahan' => $data->penjelasan_tambahan ?? '', 'gambar_load' => $data->gambar_load ?? '', 'gambar' => $data->gambar ?? '', ]); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validator = Validator::make($request->all(), [ 'level' => 'required', 'level_number' => 'nullable|integer|in:1,2,3,4', 'kelas' => 'required', 'goal' => 'required', 'penjelasan' => 'required', 'capaian' => 'required', 'gambar' => 'required|image|mimes:jpeg,png,jpg,gif,svg', ], [ 'level.required' => 'Level wajib diisi!', 'level_number.integer' => 'Level Number harus berupa angka!', 'level_number.in' => 'Level Number tidak valid!', 'kelas.required' => 'Kelas wajib diisi!', 'goal.required' => 'Goal wajib diisi!', 'penjelasan.required' => 'Penjelasan wajib diisi!', 'capaian.required' => 'Capaian wajib diisi!', 'gambar.required' => 'Gambar wajib diisi!', 'gambar.image' => 'Gambar harus berupa gambar!', 'gambar.mimes' => 'Format gambar yang diperbolehkan adalah jpeg, png, jpg, gif, svg', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $validated = $validator->validated(); if ($request->hasFile('gambar')) { $file = $request->file('gambar'); $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension(); $file->storeAs('program', $hashedName, 'public'); $validated['gambar'] = 'program/' . $hashedName; } // lazy load jika nanti dibutuhkan // if ($request->hasFile('gambar_load')) { // $file = $request->file('gambar_load'); // // $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension(); // // $file->storeAs('program', $hashedName, 'public'); // // $validated['gambar_load'] = 'program/' . $hashedName; $validated['gambar_load'] = ''; Programs::create($validated); return redirect('/admin/program')->with('success', 'Data Program berhasil disimpan'); } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { $data = Programs::find($id); $validator = Validator::make($request->all(), [ 'level' => 'required', 'level_number' => 'nullable|integer|in:1,2,3,4', 'kelas' => 'required', 'goal' => 'required', 'penjelasan' => 'required', 'capaian' => 'required', ], [ 'level.required' => 'Level wajib diisi!', 'level_number.integer' => 'Level Number harus berupa angka!', 'level_number.in' => 'Level Number tidak valid!', 'kelas.required' => 'Kelas wajib diisi!', 'goal.required' => 'Goal wajib diisi!', 'penjelasan.required' => 'Penjelasan wajib diisi!', 'capaian.required' => 'Capaian wajib diisi!', ]); $validated = $validator->validated(); if ($request->hasFile('gambar')) { if ($data->gambar) { $imagePath = storage_path('app/public/' . $data->gambar); if (file_exists($imagePath)) { unlink($imagePath); } } $file = $request->file('gambar'); $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension(); $file->storeAs('program', $hashedName, 'public'); $validated['gambar'] = 'program/' . $hashedName; } // if ($request->hasFile('gambar_load')) { // if ($data->gambar_load) { // $imagePath = storage_path('app/public/' . $data->gambar_load); // if (file_exists($imagePath)) { // unlink($imagePath); // } // } // // $file = $request->file('gambar_load'); // // $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension(); // // $file->storeAs('program', $hashedName, 'public'); // // $validated['gambar_load'] = 'program/' . $hashedName; // } // if ($request->file('gambar')) { // $validatedDetail['gambar_load'] = $this->resizeGambar($request->file('gambar'), 'public/program/', 'program/', '0'); // if ($data->gambar_load != null || $data->gambar_load != "") { // $filePath = 'storage/' . $data->gambar_load; // if (file_exists($filePath)) { // unlink($filePath); // } // } // } $validated['gambar_load'] = ''; // kosongi dulu $data->update($validated); return redirect('/admin/program')->with('success', 'Data Program berhasil diedit'); } /** * Remove the specified resource from storage. */ public function destroy(string $id) { $data = Programs::findOrFail($id); if ($data->gambar) { $imagePath = storage_path('app/public/' . $data->gambar); if (file_exists($imagePath)) { unlink($imagePath); } } if ($data->gambar_load != null || $data->gambar_load != '') { $imagePath = storage_path('app/public/' . $data->gambar_load); if (file_exists($imagePath)) { unlink($imagePath); } } $data->delete(); return redirect('/admin/program')->with('success', 'Data Program berhasil dihapus'); } }