diff --git a/.htaccess.txt b/.htaccess.txt new file mode 100644 index 0000000..e69de29 diff --git a/SIG-Salma.zip b/SIG-Salma.zip new file mode 100644 index 0000000..5294e02 Binary files /dev/null and b/SIG-Salma.zip differ diff --git a/app/Http/Controllers/AdminDataKursusController.php b/app/Http/Controllers/AdminDataKursusController.php index faba685..09f2f98 100644 --- a/app/Http/Controllers/AdminDataKursusController.php +++ b/app/Http/Controllers/AdminDataKursusController.php @@ -17,10 +17,19 @@ class AdminDataKursusController extends Controller // ADMIN FADIAS TUKANG SERVER public function dataKursus() { + // Mengambil semua data kursus dari model DataKursus $courses = DataKursus::all(); + + // Mengambil gambar untuk setiap course, jika ada + foreach ($courses as $course) { + $course->imageNames = $course->img_konten ? json_decode($course->img_konten, true) : []; + } + + // Mengirim data courses dengan gambar ke view return view('admin.dataKursusAdmin', ['courses' => $courses]); } + public function create() { return view('admin.tambahDataKursusAdmin'); @@ -40,7 +49,8 @@ public function store(Request $request) 'lokasi' => 'required', 'latitude' => 'nullable', // Ubah aturan validasi 'longitude' => 'nullable', // Ubah aturan validasi - 'img_konten.*' => 'file|mimes:jpeg,png,jpg|max:2048', + 'popular' => 'required', // Ubah aturan validasi + 'img_konten.*' => 'required|file|mimes:jpeg,png,jpg|max:2048', ]); // Cek apakah validasi gagal @@ -70,6 +80,7 @@ public function store(Request $request) 'lokasi' => $request->lokasi, 'latitude' => $request->latitude, // Menyimpan nilai latitude bebas 'longitude' => $request->longitude, // Menyimpan nilai longitude bebas + 'popular' => $request->popular, // Menyimpan nilai longitude bebas 'img_konten' => json_encode($imgKontenPaths), ]); @@ -96,52 +107,59 @@ public function edit($id) public function update(Request $request, $id) { - // Validasi request - $request->validate([ - 'nama_kursus' => 'required|string|max:255', - 'deskripsi' => 'required|string', - 'img' => 'nullable|image|max:2048', - 'img_konten.*' => 'nullable|image|max:2048', - 'latitude' => 'required|numeric', - 'longitude' => 'nullable|numeric', - 'paket' => 'nullable|string', - 'metode' => 'nullable|string', - 'fasilitas' => 'nullable|string', - 'lokasi' => 'nullable|string', - ]); + try { + $request->validate([ + 'nama_kursus' => 'required|string|max:255', + 'deskripsi' => 'required|string', + 'img' => 'nullable|image|max:2048', + 'img_konten.*' => 'nullable|image|max:2048', + 'latitude' => 'required|numeric', + 'longitude' => 'nullable|numeric', + 'popular' => 'required|string', + 'paket' => 'nullable|string', + 'metode' => 'nullable|string', + 'fasilitas' => 'nullable|string', + 'lokasi' => 'nullable|string', + ]); - // Ambil record DataKursus berdasarkan ID-nya - $dataKursus = DataKursus::findOrFail($id); + // Ambil record DataKursus berdasarkan ID-nya + $dataKursus = DataKursus::findOrFail($id); - // Update fields - $dataKursus->nama_kursus = $request->input('nama_kursus'); - $dataKursus->deskripsi = $request->input('deskripsi'); - $dataKursus->latitude = $request->input('latitude'); - $dataKursus->longitude = $request->input('longitude'); - $dataKursus->paket = $request->input('paket'); - $dataKursus->metode = $request->input('metode'); - $dataKursus->fasilitas = $request->input('fasilitas'); - $dataKursus->lokasi = $request->input('lokasi'); + // Update fields + $dataKursus->nama_kursus = $request->input('nama_kursus'); + $dataKursus->deskripsi = $request->input('deskripsi'); + $dataKursus->latitude = $request->input('latitude'); + $dataKursus->longitude = $request->input('longitude'); + $dataKursus->popular = $request->input('popular'); + $dataKursus->paket = $request->input('paket'); + $dataKursus->metode = $request->input('metode'); + $dataKursus->fasilitas = $request->input('fasilitas'); + $dataKursus->lokasi = $request->input('lokasi'); - // Handle single image upload - if ($request->hasFile('img')) { - $dataKursus->img = $request->file('img')->store('images', 'public'); - } - - // Handle multiple image uploads - if ($request->hasFile('img_konten')) { - $images = []; - foreach ($request->file('img_konten') as $file) { - $images[] = $file->store('images', 'public'); + // Handle single image upload + if ($request->hasFile('img')) { + $dataKursus->img = $request->file('img')->store('images', 'public'); } - $dataKursus->img_konten = json_encode($images); + + // Handle multiple image uploads + if ($request->hasFile('img_konten')) { + $images = []; + foreach ($request->file('img_konten') as $file) { + $images[] = $file->store('images', 'public'); + } + $dataKursus->img_konten = json_encode($images); + } + + // Save updated record + $dataKursus->save(); + + // Redirect with success message + return redirect()->route('admin.dataKursus')->with('success', 'Data berhasil diperbarui.'); + } catch (\Exception $e) { + dd($e->getMessage()); } + // Validasi request - // Save updated record - $dataKursus->save(); - - // Redirect with success message - return redirect()->route('admin.dataKursus')->with('success', 'Data berhasil diperbarui.'); } diff --git a/app/Http/Controllers/PengunjungController.php b/app/Http/Controllers/PengunjungController.php index d4a565d..5372044 100644 --- a/app/Http/Controllers/PengunjungController.php +++ b/app/Http/Controllers/PengunjungController.php @@ -11,12 +11,21 @@ class PengunjungController extends Controller // PENGUNJUNG public function home() { - $landingpage = DataKursus::inRandomOrder()->limit(3)->get(); + // Ambil 3 data yang populer dari tabel DataKursus + $landingpage = DataKursus::where('popular', 'Popular') + ->limit(3) + ->get(); + + // Potong deskripsi agar hanya terdiri dari 22 kata foreach ($landingpage as $item) { $item->deskripsi = \Illuminate\Support\Str::words($item->deskripsi, 22, '...'); } + + // Kembalikan view dengan data yang sudah diproses return view('user.home', compact('landingpage')); } + + @@ -61,7 +70,7 @@ public function rute(string $id) $ruteTerdekat = DataKursus::find($id); // Jika data tidak ditemukan, bisa menampilkan halaman error atau redirect - + return view('user.rute', compact('ruteTerdekat')); } diff --git a/app/Models/DataKursus.php b/app/Models/DataKursus.php index 49f6268..91f9304 100644 --- a/app/Models/DataKursus.php +++ b/app/Models/DataKursus.php @@ -21,6 +21,7 @@ class DataKursus extends Model 'lokasi', 'latitude', 'longitude', // Pastikan nama kolom sesuai dengan migrasi + 'popular', // Pastikan nama kolom sesuai dengan migrasi 'img_konten' ]; diff --git a/database/factories/DataKursusFactory.php b/database/factories/DataKursusFactory.php index 40e2dd3..3a06bd6 100644 --- a/database/factories/DataKursusFactory.php +++ b/database/factories/DataKursusFactory.php @@ -25,6 +25,7 @@ public function definition(): array 'lokasi' => fake()->city, 'latitude' => fake()->latitude, 'longitude' => fake()->longitude, + 'popular' => 'Tidak', ]; } } diff --git a/database/migrations/2024_08_25_153939_data_kursus.php b/database/migrations/2024_08_25_153939_data_kursus.php index 323e242..f56d146 100644 --- a/database/migrations/2024_08_25_153939_data_kursus.php +++ b/database/migrations/2024_08_25_153939_data_kursus.php @@ -22,6 +22,7 @@ public function up() $table->longText('lokasi'); $table->string('latitude'); $table->string('longitude'); + $table->string('popular'); $table->json('img_konten')->nullable(); $table->timestamps(); }); diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index 7cee502..7a2f979 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -1,35 +1,16 @@ -
+
- @if ($randomLandingPage) - @if ($randomLandingPage->img) -
- Gambar -
-

{{ $randomLandingPage->nama_kursus }}

-
-
- @else -
-

Tidak ada gambar yang tersedia.

-
- @endif - @else -
-
-

Tidak Tersedia Kursus

-
-
- @endif +
+ +
-
-
+
+
@if ($randomLandingPages->isNotEmpty()) @foreach ($randomLandingPages as $page)
No Nama Kursus - Deskripsi + {{-- Deskripsi --}} + Popular Gambar Aksi @@ -31,16 +32,24 @@ class="justify-center items-center px6 py-4 font-medium text-gray-900 whitespac {{ $course->nama_kursus }} + {{-- + {{ Str::limit($course->deskripsi, 20, '...') }} + + --}} - {{ $course->deskripsi }} + {{ $course->popular }} + class="w-72 h-44 shadow-md shadow-gray-500 object-cover" alt="">
- + Edit @@ -152,6 +161,38 @@ class="fixed top-4 left-1/2 transform -translate-x-1/2 bg-green-50 text-green-80 } }); + - + diff --git a/resources/views/admin/tambahDataKursusAdmin.blade.php b/resources/views/admin/tambahDataKursusAdmin.blade.php index 8bd48a3..fc42817 100644 --- a/resources/views/admin/tambahDataKursusAdmin.blade.php +++ b/resources/views/admin/tambahDataKursusAdmin.blade.php @@ -15,12 +15,28 @@ @csrf
-
- - +
+
+ + +
+
+
+ + +
+
+ +
diff --git a/resources/views/admin/ubahDataKursusAdmin.blade.php b/resources/views/admin/ubahDataKursusAdmin.blade.php index d8bb85d..3fa8a8f 100644 --- a/resources/views/admin/ubahDataKursusAdmin.blade.php +++ b/resources/views/admin/ubahDataKursusAdmin.blade.php @@ -17,15 +17,33 @@
-
- - +
+
+ + + +
+
+ + +
+
diff --git a/resources/views/user/detailKursus.blade.php b/resources/views/user/detailKursus.blade.php index 28dde91..f50e0ab 100644 --- a/resources/views/user/detailKursus.blade.php +++ b/resources/views/user/detailKursus.blade.php @@ -5,23 +5,29 @@
-
-