feat: implement page template hero functionality with dynamic image handling and localization support for enhanced visual presentation

This commit is contained in:
Ümit Tunç
2026-05-22 07:36:24 +03:00
parent ead0077fde
commit 11cb89c944
11 changed files with 232 additions and 34 deletions
@@ -35,7 +35,6 @@ class ContentSection
RichEditor::make('content')
->label(__('pages.content_field'))
->required()
->fileAttachmentsDisk('public')
->fileAttachmentsDirectory('pages')
->fileAttachmentsVisibility('public')
@@ -2,12 +2,14 @@
namespace App\Filament\Admin\Resources\Pages\Schemas\Sections;
use App\Support\PageTemplateHero;
use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Utilities\Get;
class PageSettingsSection
{
@@ -15,6 +17,13 @@ class PageSettingsSection
{
return Section::make(__('pages.form_section_page_settings'))
->schema([
Select::make('template')
->label(__('pages.template_field'))
->options(PageTemplateHero::templateFormOptions())
->default('default')
->live()
->columnSpanFull(),
FileUpload::make('featured_image')
->label(__('pages.featured_image_field'))
->image()
@@ -27,7 +36,13 @@ class PageSettingsSection
'4:3',
'1:1',
])
->helperText(__('pages.featured_image_helper_text'))
->helperText(function (Get $get): string {
if (PageTemplateHero::hasHero($get('template'))) {
return __('pages.featured_image_template_hero_helper');
}
return __('pages.featured_image_helper_text');
})
->columnSpanFull(),
Select::make('author_id')
@@ -61,25 +76,8 @@ class PageSettingsSection
->preload()
->helperText(__('pages.parent_helper_text'))
->columnSpanFull(),
Select::make('template')
->label(__('pages.template_field'))
->options([
'default' => __('pages.template_default'),
'landing' => __('pages.template_landing'),
'blog' => __('pages.template_blog'),
'contact' => __('pages.template_contact'),
'home' => 'Home',
'corporate.testimonials' => 'Müşteri Görüşleri (Kurumsal)',
'corporate.logos' => 'Logolarımız (Kurumsal)',
'corporate.partners' => 'Çözüm Ortaklarımız (Kurumsal)',
'corporate.bank-accounts' => 'Banka Bilgilerimiz (Kurumsal)',
'corporate.online-payment' => 'Online Ödeme (Kurumsal)',
])
->default('default')
->columnSpanFull(),
TextInput::make('sort_order')
TextInput::make('sort_order')
->label(__('pages.sort_order_field'))
->numeric()
->default(0)