From e81d49ee0e81a7ff41a22b9822631bb3b60836cc Mon Sep 17 00:00:00 2001 From: Tajim Date: Wed, 2 Sep 2026 12:02:25 +0600 Subject: [PATCH] feat(resource): add curriculum and subject context to resource page and SEO metadata --- app/Http/Controllers/ResourceController.php | 3 +- resources/js/pages/Resource.vue | 42 ++++++++++++++++----- resources/views/app.blade.php | 30 ++++++++++++--- tests/Feature/AdminForumTest.php | 2 +- tests/Feature/ForumTest.php | 6 +-- tests/Feature/PublicPagesTest.php | 42 ++++++++++++++++++++- 6 files changed, 104 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/ResourceController.php b/app/Http/Controllers/ResourceController.php index 900d8819..4c0c6674 100644 --- a/app/Http/Controllers/ResourceController.php +++ b/app/Http/Controllers/ResourceController.php @@ -12,7 +12,7 @@ class ResourceController extends Controller public function show($id) { $data = Cache::rememberForever("resource_{$id}", function () use ($id) { - $resource = Resource::with('user')->findOrFail($id); + $resource = Resource::with(['user', 'node.subject'])->findOrFail($id); $previousResourceId = Resource::where('node_id', $resource->node_id) ->where('id', '<', $resource->id) @@ -26,6 +26,7 @@ public function show($id) return [ 'resource' => $resource->toArray(), + 'subject' => $resource->node?->subject, 'previousResourceId' => $previousResourceId, 'nextResourceId' => $nextResourceId, ]; diff --git a/resources/js/pages/Resource.vue b/resources/js/pages/Resource.vue index 5b702dae..a110e836 100644 --- a/resources/js/pages/Resource.vue +++ b/resources/js/pages/Resource.vue @@ -23,6 +23,10 @@ const props = defineProps({ type: Object, required: true, }, + subject: { + type: Object, + default: null, + }, previousResourceId: { type: Number, default: null, @@ -180,15 +184,25 @@ const toggleFullscreen = () => {