36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\DummyDataService;
|
|
|
|
class RekomendasiController extends Controller
|
|
{
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$rekomendasi = DummyDataService::getRekomendasiPembelajaran()->firstWhere('id', (int)$id);
|
|
abort_if(!$rekomendasi, 404);
|
|
|
|
// Menambahkan thumbnail YouTube ke setiap rekomendasi
|
|
$embedLink = null;
|
|
$videoId = $this->extractYouTubeId($rekomendasi['youtube_link']);
|
|
if ($videoId) {
|
|
$embedLink = "https://www.youtube.com/embed/" . $videoId;
|
|
}
|
|
$rekomendasi['youtube_embed_link'] = $embedLink;
|
|
|
|
return view('rekomendasiShow', [
|
|
'pageTitle' => $rekomendasi['judul'],
|
|
'rekomendasi' => $rekomendasi,
|
|
]);
|
|
}
|
|
} |