legacy = $legacy; } public function show(Request $request, $id, $slug = null) { // canonicalize to new artwork route when possible try { $art = \App\Models\Artwork::find((int)$id); if ($art && !empty($art->slug)) { if ($slug !== $art->slug) { // attempt to derive contentType and category for route $category = $art->categories()->with('contentType')->first(); if ($category && $category->contentType) { $contentTypeSlug = $category->contentType->slug ?? 'other'; $categoryPath = $category->slug ?? $category->category_name ?? 'other'; return redirect(route('artworks.show', [ 'contentTypeSlug' => $contentTypeSlug, 'categoryPath' => $categoryPath, 'artwork' => $art->slug, ]), 301); } elseif (!empty($art->slug)) { // fallback: redirect to artwork slug only (may be handled by router) return redirect('/' . $art->slug, 301); } } } } catch (\Throwable $e) { // ignore and continue rendering legacy view } if ($request->isMethod('post') && $request->input('action') === 'store_comment') { if (auth()->check()) { try { DB::table('artwork_comments')->insert([ 'artwork_id' => (int)$id, 'owner_user_id' => (int)($request->user()->id ?? 0), 'user_id' => (int)$request->user()->id, 'date' => now()->toDateString(), 'time' => now()->toTimeString(), 'description' => (string)$request->input('comment_text'), ]); } catch (\Throwable $e) { // ignore DB errors for now } } return redirect()->back(); } $data = $this->legacy->getArtwork((int) $id); if (! $data || empty($data['artwork'])) { return view('shared.placeholder', ['title' => 'Artwork Not Found']); } try { $comments = DB::table('artwork_comments as t1') ->rightJoin('users as t2', 't1.user_id', '=', 't2.user_id') ->select('t1.description', 't1.date', 't1.time', 't2.uname', 't2.signature', 't2.icon', 't2.user_id') ->where('t1.artwork_id', (int)$id) ->where('t1.user_id', '>', 0) ->orderBy('t1.comment_id') ->get(); } catch (\Throwable $e) { $comments = collect(); } $data['comments'] = $comments; return view('web.art', $data); } }