From ed7ac493a0df250936feecdf3b90f842be4d8b21 Mon Sep 17 00:00:00 2001 From: f4ilji Date: Tue, 24 Dec 2024 18:43:59 +0500 Subject: [PATCH] Changes --- .../ItemForm/Pages/ContentBuilderItem.php | 23 +++++++++++++++++++ app/Filament/Components/Forms/PostForm.php | 14 ----------- .../ClientAdditionalEducationController.php | 2 +- .../ClientDepartmentController.php | 2 +- .../Controllers/ClientDivisionController.php | 2 +- .../Controllers/ClientEventController.php | 2 +- app/Http/Controllers/ClientPostController.php | 3 ++- .../Controllers/ClientProgramController.php | 2 +- app/Http/Controllers/PageController.php | 3 ++- 9 files changed, 32 insertions(+), 21 deletions(-) diff --git a/app/Filament/Components/Forms/ItemForm/Pages/ContentBuilderItem.php b/app/Filament/Components/Forms/ItemForm/Pages/ContentBuilderItem.php index c8af58e..ccdad15 100644 --- a/app/Filament/Components/Forms/ItemForm/Pages/ContentBuilderItem.php +++ b/app/Filament/Components/Forms/ItemForm/Pages/ContentBuilderItem.php @@ -27,6 +27,21 @@ use Mohamedsabil83\FilamentFormsTinyeditor\Components\TinyEditor; class ContentBuilderItem { + private static function findSeoActive(array $data) : bool + { + $bool = false; + + foreach ($data as $item) { + if ($item['type'] !== 'paragraph') { + continue; + } + if ($item['data']['seo_active'] === true) { + $bool = true; + break; + } + } + return $bool; + } public static function getItem(string $name) { return @@ -42,6 +57,14 @@ class ContentBuilderItem ]), Builder\Block::make('paragraph') ->schema([ + Toggle::make('seo_active')->label('Использовать блок как seo') + ->live(onBlur: true) + ->required() + ->disabled(function ($state, Forms\Get $get) { + $data = $get('../../'); + return self::findSeoActive($data) && !$state; + }) + ->dehydrated(), TinyEditor::make('content') ->label('') ->profile('test') diff --git a/app/Filament/Components/Forms/PostForm.php b/app/Filament/Components/Forms/PostForm.php index a9ea3d7..1748395 100644 --- a/app/Filament/Components/Forms/PostForm.php +++ b/app/Filament/Components/Forms/PostForm.php @@ -37,21 +37,7 @@ use Symfony\Component\Finder\Finder; class PostForm { - private static function findSeoActive(array $data) : bool - { - $bool = false; - foreach ($data as $item) { - if ($item['type'] !== 'paragraph') { - continue; - } - if ($item['data']['seo_active'] === true) { - $bool = true; - break; - } - } - return $bool; - } public static function getForm(Form $form): Form { return $form diff --git a/app/Http/Controllers/ClientAdditionalEducationController.php b/app/Http/Controllers/ClientAdditionalEducationController.php index 86c9580..6ca9288 100644 --- a/app/Http/Controllers/ClientAdditionalEducationController.php +++ b/app/Http/Controllers/ClientAdditionalEducationController.php @@ -134,7 +134,7 @@ class ClientAdditionalEducationController extends Controller $breadcrumbs = null; } - $seo = $additionalEducation->seo; + $seo = $additionalEducation->seo ?? null; return Inertia::render('Client/Additional-educations/Show', compact('additionalEducation', 'breadcrumbs', 'seo')); } diff --git a/app/Http/Controllers/ClientDepartmentController.php b/app/Http/Controllers/ClientDepartmentController.php index 1a33b50..d515ebd 100644 --- a/app/Http/Controllers/ClientDepartmentController.php +++ b/app/Http/Controllers/ClientDepartmentController.php @@ -28,7 +28,7 @@ class ClientDepartmentController extends Controller ->first()); $directions = $this->groupProgramsByDirection($department->programs); - $seo = $department->seo; + $seo = $department->seo ?? null; return Inertia::render('Client/Departments/Show', compact('department', 'departments', 'directions', 'seo')); } diff --git a/app/Http/Controllers/ClientDivisionController.php b/app/Http/Controllers/ClientDivisionController.php index 24e7c1d..5ef8d33 100644 --- a/app/Http/Controllers/ClientDivisionController.php +++ b/app/Http/Controllers/ClientDivisionController.php @@ -19,7 +19,7 @@ class ClientDivisionController extends Controller { $divisions = DivisionResource::collection(Division::query()->where('is_active', true)->get()); $division = new DivisionResource(Division::with('workers.userDetail')->where('is_active', true)->where('slug', $slug)->firstOrFail()); - $seo = $division->seo; + $seo = $division->seo ?? null; return Inertia::render('Client/Divisions/Show', compact('divisions', 'division', 'seo')); } } diff --git a/app/Http/Controllers/ClientEventController.php b/app/Http/Controllers/ClientEventController.php index ca5ecde..460eb55 100644 --- a/app/Http/Controllers/ClientEventController.php +++ b/app/Http/Controllers/ClientEventController.php @@ -66,7 +66,7 @@ class ClientEventController extends Controller $breadcrumbs = null; } - $seo = $event->seo; + $seo = $event->seo ?? null; return Inertia::render('Client/Events/Show', compact('event', 'breadcrumbs', 'seo')); } diff --git a/app/Http/Controllers/ClientPostController.php b/app/Http/Controllers/ClientPostController.php index 2b74c72..6095cd8 100644 --- a/app/Http/Controllers/ClientPostController.php +++ b/app/Http/Controllers/ClientPostController.php @@ -144,7 +144,8 @@ class ClientPostController extends Controller $breadcrumbs = null; } - $seo = $post->seo; + $seo = $post->seo ?? null; + return Inertia::render('Client/Posts/Show', compact('post', 'breadcrumbs', 'seo')); } diff --git a/app/Http/Controllers/ClientProgramController.php b/app/Http/Controllers/ClientProgramController.php index 625001d..7b2bdbd 100644 --- a/app/Http/Controllers/ClientProgramController.php +++ b/app/Http/Controllers/ClientProgramController.php @@ -120,7 +120,7 @@ class ClientProgramController extends Controller return [$formEducational->value => $formEducational->getLabel()]; }); - $seo = $program->seo; + $seo = $program->seo ?? null; return Inertia::render('Client/Programs/Show', compact('program', 'formsEdu', 'seo')); } diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 2dfa242..5b31aaa 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -40,7 +40,8 @@ class PageController extends Controller $breadcrumbs = null; } - $seo = $page->seo; + $seo = $page->seo ?? null; + $page = new PageResource($page);