TIF_NGANJUK_E41220778/app/Http/Controllers/DashboardController.php

67 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\DummyDataService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class DashboardController extends Controller
{
public function index()
{
$user = Auth::user();
$stats = DummyDataService::getDashboardStats();
$pengumuman = DummyDataService::getPengumuman();
$pemberitahuan = DummyDataService::getPemberitahuan();
$progressMembaca = DummyDataService::getProgressMembaca();
$statistikBulanan = DummyDataService::getStatistikBulanan();
$bukuPinjamOffline = DummyDataService::getBukuPinjamOffline($user);
$bacaBukuOnline = DummyDataService::getBacaBukuOnline($user);
$rekomendasiPembelajaran = DummyDataService::getRekomendasiPembelajaran();
// Menambahkan thumbnail YouTube ke setiap rekomendasi
$rekomendasiPembelajaran = DummyDataService::getRekomendasiPembelajaran()->map(function ($item) {
$videoId = $this->extractYouTubeId($item['youtube_link']);
if ($videoId) {
$item['thumbnail'] = "https://img.youtube.com/vi/{$videoId}/hqdefault.jpg";
} else {
$item['thumbnail'] = 'https://via.placeholder.com/150?text=No+Preview';
}
return $item;
});
$hour = date('H');
$greeting = "Selamat Pagi";
if ($hour >= 12 && $hour < 15) {
$greeting = "Selamat Siang";
} elseif ($hour >= 15 && $hour < 18) {
$greeting = "Selamat Sore";
} elseif ($hour >= 18) {
$greeting = "Selamat Malam";
}
return view('dashboard', compact(
'user',
'stats',
'pengumuman',
'pemberitahuan',
'progressMembaca',
'statistikBulanan',
'bukuPinjamOffline',
'bacaBukuOnline',
'greeting',
'rekomendasiPembelajaran'
));
}
/**
* Helper function untuk mengekstrak ID video dari URL YouTube.
*/
private function extractYouTubeId(string $url): ?string
{
preg_match('/(v=|vi=|youtu.be\/|embed\/|\/v\/|\?v=|\&v=)(.+?)\b/i', $url, $matches);
return $matches[2] ?? null;
}
}