Changes
This commit is contained in:
@@ -124,8 +124,13 @@ class MainSliderResource extends Resource
|
||||
Toggle::make('active_button')
|
||||
->label('Использовать кнопку для ссылки (Ссылка будет открываться при нажатии на слайд)')
|
||||
->inline(false)
|
||||
->default(true)
|
||||
->default(true) // Проверяем, есть ли текст в link_text
|
||||
->live()
|
||||
->afterStateHydrated(function (Toggle $component, $state, $get) {
|
||||
if ($state === null && !empty($get('settings.link_text'))) {
|
||||
$component->state(true); // Устанавливаем значение по умолчанию
|
||||
}
|
||||
})
|
||||
->dehydrated(false),
|
||||
Forms\Components\TextInput::make('settings.link_text')
|
||||
->default('Читать')
|
||||
@@ -156,12 +161,13 @@ class MainSliderResource extends Resource
|
||||
->label('Слайд начинается с')
|
||||
->native()
|
||||
->displayFormat('d/m/Y')
|
||||
->minDate(Carbon::now()->subDay())
|
||||
->maxDate(Carbon::now()->addWeek()),
|
||||
->default(Carbon::now())
|
||||
->maxDate(Carbon::now()->addWeeks(2)),
|
||||
DateTimePicker::make('end_time')
|
||||
->label('Слайд действует до')
|
||||
->native()
|
||||
->displayFormat('d/m/Y')
|
||||
->default(Carbon::now()->addWeeks(2))
|
||||
->minDate(Carbon::now())
|
||||
->maxDate(Carbon::now()->addMonth()),
|
||||
]),
|
||||
|
||||
@@ -60,7 +60,7 @@ class CreatePost extends CreateRecord
|
||||
$this->slideData['start_time'] = $this->record->publish_at;
|
||||
|
||||
$sliderDTO = MainSliderDTO::fromArray($this->slideData);
|
||||
(new PostSliderService($sliderDTO, $this->record->slug))->create();
|
||||
(new PostSliderService($sliderDTO, $this->record))->create();
|
||||
}
|
||||
|
||||
protected function generateSeo(): void
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Filament\Resources\PostResource\Pages;
|
||||
use App\Dto\MainSliderDTO;
|
||||
use App\Enums\PostStatus;
|
||||
use App\Filament\Resources\PostResource;
|
||||
use App\Models\Post;
|
||||
use App\Services\Filament\Domain\Posts\PostDataProcessor;
|
||||
use App\Services\Filament\Domain\Posts\PostNotificationService;
|
||||
use App\Services\Filament\Domain\Posts\PostSeoGenerator;
|
||||
@@ -23,6 +24,12 @@ class EditPost extends EditRecord
|
||||
|
||||
protected array $slideData;
|
||||
|
||||
protected function mutateFormDataBeforeFill(array $data): array
|
||||
{
|
||||
$post = Post::query()->with(['seo', 'mainSlider'])->find($data['id']);
|
||||
$data['slide'] = $post->mainSlider->toArray() ?? null;
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeSave(array $data): array
|
||||
{
|
||||
@@ -61,7 +68,7 @@ class EditPost extends EditRecord
|
||||
$this->slideData['start_time'] = $this->record->publish_at;
|
||||
|
||||
$sliderDTO = MainSliderDTO::fromArray($this->slideData);
|
||||
(new PostSliderService($sliderDTO, $this->record->slug))->update();
|
||||
(new PostSliderService($sliderDTO, $this->record))->update();
|
||||
}
|
||||
|
||||
protected function generateSeo(): void
|
||||
|
||||
Reference in New Issue
Block a user