diff --git a/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php b/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php index 1d98fce..5a6bc84 100644 --- a/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php +++ b/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php @@ -43,7 +43,7 @@ class SectionTemplateForm ->columnSpanFull() ->helperText(__('section-templates.field_html_content_help')) ->extraAttributes([ - 'style' => 'max-height: 400px;overflow-y: auto;', + 'style' => 'max-height: 400px;overflow-y: auto;max-width: 100%;', 'data-field-name' => 'html_content', ]), diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index de6fbf0..496857d 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -74,7 +74,8 @@ class PageController extends Controller $renderedHeader = TemplateService::replacePlaceholders( $page->headerTemplate->html_content, - $mergedHeaderData + $mergedHeaderData, + $page ); } @@ -88,7 +89,8 @@ class PageController extends Controller $renderedFooter = TemplateService::replacePlaceholders( $page->footerTemplate->html_content, - $mergedFooterData + $mergedFooterData, + $page ); } @@ -154,7 +156,8 @@ public function show($slug) $renderedHeader = TemplateService::replacePlaceholders( $page->headerTemplate->html_content, - $mergedHeaderData + $mergedHeaderData, + $page ); } @@ -168,7 +171,8 @@ public function show($slug) $renderedFooter = TemplateService::replacePlaceholders( $page->footerTemplate->html_content, - $mergedFooterData + $mergedFooterData, + $page ); } diff --git a/app/Services/TemplateService.php b/app/Services/TemplateService.php index ee82bec..a7d2246 100644 --- a/app/Services/TemplateService.php +++ b/app/Services/TemplateService.php @@ -274,9 +274,50 @@ class TemplateService * Supports both {text.title} and {{text.title}} formats * Also supports {menu} and {staticMenu} placeholders for menu rendering * Also supports {custom.component_name} for custom blade components + * Also supports {page.content}, {page.title}, {page.excerpt} for page data */ - public static function replacePlaceholders(string $html, array $data): string + public static function replacePlaceholders(string $html, array $data, ?\App\Models\Page $page = null): string { + // Handle special {page.content} placeholder - Sayfa içeriğini gösterir + if (str_contains($html, '{page.content}')) { + $pageContent = ''; + if ($page) { + // Translation desteği varsa çeviriyi kullan + if (method_exists($page, 'translate')) { + $pageContent = $page->translate('content') ?: $page->content; + } else { + $pageContent = $page->content; + } + } + $html = str_replace('{page.content}', $pageContent ?? '', $html); + } + + // Handle special {page.title} placeholder - Sayfa başlığını gösterir + if (str_contains($html, '{page.title}')) { + $pageTitle = ''; + if ($page) { + if (method_exists($page, 'translate')) { + $pageTitle = $page->translate('title') ?: $page->title; + } else { + $pageTitle = $page->title; + } + } + $html = str_replace('{page.title}', $pageTitle ?? '', $html); + } + + // Handle special {page.excerpt} placeholder - Sayfa özetini gösterir + if (str_contains($html, '{page.excerpt}')) { + $pageExcerpt = ''; + if ($page) { + if (method_exists($page, 'translate')) { + $pageExcerpt = $page->translate('excerpt') ?: $page->excerpt; + } else { + $pageExcerpt = $page->excerpt; + } + } + $html = str_replace('{page.excerpt}', $pageExcerpt ?? '', $html); + } + // Handle special {menu} placeholder first if (str_contains($html, '{menu}')) { $renderedMenu = \App\Services\MenuService::render(); diff --git a/app/View/Components/PageRenderer.php b/app/View/Components/PageRenderer.php index c94b561..9f97f75 100644 --- a/app/View/Components/PageRenderer.php +++ b/app/View/Components/PageRenderer.php @@ -44,7 +44,8 @@ class PageRenderer extends Component return TemplateService::replacePlaceholders( $this->page->headerTemplate->html_content, - $mergedData + $mergedData, + $this->page ); } @@ -67,7 +68,8 @@ class PageRenderer extends Component $output .= TemplateService::replacePlaceholders( $section['template']->html_content, - $mergedData + $mergedData, + $this->page ); } @@ -90,7 +92,8 @@ class PageRenderer extends Component return TemplateService::replacePlaceholders( $this->page->footerTemplate->html_content, - $mergedData + $mergedData, + $this->page ); } } diff --git a/resources/views/components/placeholder-picker.blade.php b/resources/views/components/placeholder-picker.blade.php index 3673209..708683e 100644 --- a/resources/views/components/placeholder-picker.blade.php +++ b/resources/views/components/placeholder-picker.blade.php @@ -105,6 +105,60 @@
{page.content}
+ {page.title}
+ {page.excerpt}
+ {menu}
+ {staticMenu}
+