|
3 | 3 | namespace Statikbe\FilamentFlexibleContentBlockPages;
|
4 | 4 |
|
5 | 5 | use Illuminate\Database\Eloquent\Relations\Relation;
|
| 6 | +use Illuminate\Support\Facades\Event; |
6 | 7 | use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
7 | 8 | use Spatie\LaravelPackageTools\Package;
|
8 | 9 | use Spatie\LaravelPackageTools\PackageServiceProvider;
|
| 10 | +use Spatie\MissingPageRedirector\Redirector\Redirector; |
9 | 11 | use Statikbe\FilamentFlexibleContentBlockPages\Commands\GenerateSitemapCommand;
|
10 | 12 | use Statikbe\FilamentFlexibleContentBlockPages\Commands\SeedDefaultsCommand;
|
11 | 13 | use Statikbe\FilamentFlexibleContentBlockPages\Components\BaseLayout;
|
12 | 14 | use Statikbe\FilamentFlexibleContentBlockPages\Components\LanguageSwitch;
|
13 | 15 | use Statikbe\FilamentFlexibleContentBlockPages\Components\Menu;
|
14 | 16 | use Statikbe\FilamentFlexibleContentBlockPages\Components\MenuItem;
|
| 17 | +use Statikbe\FilamentFlexibleContentBlockPages\Listeners\SlugChangedListener; |
| 18 | +use Statikbe\FilamentFlexibleContentBlockPages\Services\Contracts\GeneratesSitemap; |
| 19 | +use Statikbe\FilamentFlexibleContentBlocks\Events\SlugChanged; |
15 | 20 | use Statikbe\FilamentFlexibleContentBlocks\FilamentFlexibleContentBlocks;
|
16 | 21 |
|
17 | 22 | class FilamentFlexibleContentBlockPagesServiceProvider extends PackageServiceProvider
|
@@ -57,17 +62,20 @@ public function packageBooted()
|
57 | 62 | $this->mergeConfigFrom(__DIR__.'/../config/'.$configName.'.php', $configName);
|
58 | 63 |
|
59 | 64 | FilamentFlexibleContentBlocks::setLocales(LaravelLocalization::getSupportedLanguagesKeys());
|
| 65 | + |
| 66 | + // Override spatie/laravel-missing-page-redirector's redirector - this runs after all packages are registered |
| 67 | + $this->app->bind(Redirector::class, config('filament-flexible-content-block-pages.redirects.redirector')); |
60 | 68 | }
|
61 | 69 |
|
62 | 70 | public function packageRegistered()
|
63 | 71 | {
|
| 72 | + // Bind sitemap generator interface to the configured implementation |
64 | 73 | $this->app->bind(
|
65 |
| - \Statikbe\FilamentFlexibleContentBlockPages\Services\SitemapGeneratorService::class, |
66 |
| - function ($app) { |
67 |
| - $serviceClass = \Statikbe\FilamentFlexibleContentBlockPages\Facades\FilamentFlexibleContentBlockPages::config()->getSitemapGeneratorService(); |
68 |
| - |
69 |
| - return $app->make($serviceClass); |
70 |
| - } |
| 74 | + GeneratesSitemap::class, |
| 75 | + config('filament-flexible-content-block-pages.sitemap.generator_service', \Statikbe\FilamentFlexibleContentBlockPages\Services\SitemapGeneratorService::class) |
71 | 76 | );
|
| 77 | + |
| 78 | + // register slug changed listener |
| 79 | + Event::listen(SlugChanged::class, SlugChangedListener::class); |
72 | 80 | }
|
73 | 81 | }
|
0 commit comments