From 1d46c9243dadeefd6e15d73bd8226d6310a1252a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Sat, 1 Nov 2025 15:55:39 -0300 Subject: [PATCH] Refactor TemplatePreviewController to enhance template retrieval and default data handling: Updated the preview method to fetch template objects by ID, introduced default data management, and replaced placeholders with default values using TemplateService. Improved method signatures for clarity and consistency in data handling. --- .../Controllers/TemplatePreviewController.php | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/TemplatePreviewController.php b/app/Http/Controllers/TemplatePreviewController.php index 8c1af3d..098163a 100644 --- a/app/Http/Controllers/TemplatePreviewController.php +++ b/app/Http/Controllers/TemplatePreviewController.php @@ -6,6 +6,7 @@ use App\Models\HeaderTemplate; use App\Models\FooterTemplate; use App\Models\SectionTemplate; use App\Services\TemplatePreviewService; +use App\Services\TemplateService; use Illuminate\Http\Request; class TemplatePreviewController extends Controller @@ -26,10 +27,16 @@ class TemplatePreviewController extends Controller $type = 'section'; } - // ID varsa veritabanından çek, yoksa eskisi gibi çalış + // Get template and its default data $content = ''; + $defaultData = []; + if ($recordId) { - $content = $this->getTemplateContent($recordId, $type); + $template = $this->getTemplate($recordId, $type); + if ($template) { + $content = $template->html_content ?? ''; + $defaultData = $template->default_data ?? []; + } } else { // Fallback: eski yöntem (content gönderimi) $content = $request->input('content', ''); @@ -39,6 +46,11 @@ class TemplatePreviewController extends Controller return response('No content to preview', 400); } + // Replace placeholders with default data + if (!empty($defaultData)) { + $content = TemplateService::replacePlaceholders($content, $defaultData); + } + $html = TemplatePreviewService::getPreviewHtml($content, $type); return response($html) @@ -46,19 +58,19 @@ class TemplatePreviewController extends Controller } /** - * Get template content from database by ID + * Get template object from database by ID * * @param int $id * @param string $type - * @return string + * @return object|null */ - private function getTemplateContent(int $id, string $type): string + private function getTemplate(int $id, string $type): ?object { return match($type) { - 'header' => HeaderTemplate::find($id)?->html_content ?? '', - 'footer' => FooterTemplate::find($id)?->html_content ?? '', - 'section' => SectionTemplate::find($id)?->html_content ?? '', - default => '', + 'header' => HeaderTemplate::find($id), + 'footer' => FooterTemplate::find($id), + 'section' => SectionTemplate::find($id), + default => null, }; } }