Implement default data functionality for templates: Added 'default_data' field to HeaderTemplate, FooterTemplate, and SectionTemplate models. Enhanced TemplateService to generate dynamic fields based on this new data. Updated form schemas in template forms to include sections for default values, improving template management and usability. Added localization support for new fields in both English and Turkish.

This commit is contained in:
Ümit Tunç
2025-11-01 02:01:07 -03:00
parent c5e09296a4
commit 0d23c20f85
18 changed files with 335 additions and 23 deletions
+24 -4
View File
@@ -67,18 +67,28 @@ class PageController extends Controller
// Render Header Template
$renderedHeader = null;
if ($page->headerTemplate) {
// Merge template defaults with page data (page data overrides defaults)
$templateDefaults = $page->headerTemplate->default_data ?? [];
$pageData = $page->header_data ?? [];
$mergedHeaderData = array_merge($templateDefaults, $pageData);
$renderedHeader = TemplateService::replacePlaceholders(
$page->headerTemplate->html_content,
$page->header_data ?? []
$mergedHeaderData
);
}
// Render Footer Template
$renderedFooter = null;
if ($page->footerTemplate) {
// Merge template defaults with page data (page data overrides defaults)
$templateDefaults = $page->footerTemplate->default_data ?? [];
$pageData = $page->footer_data ?? [];
$mergedFooterData = array_merge($templateDefaults, $pageData);
$renderedFooter = TemplateService::replacePlaceholders(
$page->footerTemplate->html_content,
$page->footer_data ?? []
$mergedFooterData
);
}
@@ -137,18 +147,28 @@ public function show($slug)
// Render Header Template
$renderedHeader = null;
if ($page->headerTemplate) {
// Merge template defaults with page data (page data overrides defaults)
$templateDefaults = $page->headerTemplate->default_data ?? [];
$pageData = $page->header_data ?? [];
$mergedHeaderData = array_merge($templateDefaults, $pageData);
$renderedHeader = TemplateService::replacePlaceholders(
$page->headerTemplate->html_content,
$page->header_data ?? []
$mergedHeaderData
);
}
// Render Footer Template
$renderedFooter = null;
if ($page->footerTemplate) {
// Merge template defaults with page data (page data overrides defaults)
$templateDefaults = $page->footerTemplate->default_data ?? [];
$pageData = $page->footer_data ?? [];
$mergedFooterData = array_merge($templateDefaults, $pageData);
$renderedFooter = TemplateService::replacePlaceholders(
$page->footerTemplate->html_content,
$page->footer_data ?? []
$mergedFooterData
);
}