1515use Javaabu \Cms \Policies \PostPolicy ;
1616use Javaabu \Cms \Policies \PostTypePolicy ;
1717use Javaabu \Cms \Console \Commands \SetupCmsCommand ;
18+ use Javaabu \Cms \Http \Controllers \Admin \MediaController ;
19+ use Javaabu \Cms \Media \Media as CmsMedia ;
20+ use Javaabu \Mediapicker \Http \Controllers \MediaController as MediapickerMediaController ;
21+ use Javaabu \Mediapicker \MediapickerServiceProvider ;
22+ use Javaabu \Mediapicker \Models \Media as MediapickerMedia ;
23+ use ReflectionClass ;
24+ use Spatie \MediaLibrary \MediaCollections \Models \Media as SpatieMedia ;
1825
1926class CmsServiceProvider extends ServiceProvider
2027{
@@ -46,11 +53,12 @@ public function boot()
4653 'category ' => config ('cms.models.category ' , Category::class),
4754 'category_type ' => config ('cms.models.category_type ' , CategoryType::class),
4855 'tag ' => config ('cms.models.tag ' , Tag::class),
49- 'media ' => \ Javaabu \ Cms \ Media \Media ::class,
56+ 'media ' => CmsMedia ::class,
5057 ]);
5158
5259 // Load migrations
5360 $ this ->loadMigrationsFrom (__DIR__ . '/../database/migrations ' );
61+ $ this ->loadMediapickerMigrations ();
5462
5563 // Load views
5664 $ this ->loadViewsFrom (__DIR__ . '/../resources/views ' , 'cms ' );
@@ -88,7 +96,7 @@ public function boot()
8896 protected function registerPolicies ()
8997 {
9098 foreach ($ this ->policies as $ key => $ policy ) {
91- $ model = $ key == 'media ' ? \ Javaabu \ Cms \ Media \Media ::class : config ("cms.models. $ key " );
99+ $ model = $ key == 'media ' ? CmsMedia ::class : config ("cms.models. $ key " );
92100
93101 if ($ model ) {
94102 Gate::policy ($ model , $ policy );
@@ -107,6 +115,8 @@ public function register()
107115
108116 // Merge package config with user defined config
109117 $ this ->mergeConfigFrom (__DIR__ . '/../config/cms.php ' , 'cms ' );
118+ $ this ->app ->register (MediapickerServiceProvider::class);
119+ $ this ->configureMediapickerDefaults ();
110120
111121 if ($ this ->app ->runningInConsole ()) {
112122 // Register commands
@@ -118,6 +128,32 @@ public function register()
118128 // Register facades or singletons if needed
119129 $ this ->app ->register (\Javaabu \Cms \Enums \RootSlugs \RootSlugsServiceProvider::class);
120130 }
131+
132+ protected function configureMediapickerDefaults (): void
133+ {
134+ $ this ->setConfigDefault ('mediapicker.media_model ' , CmsMedia::class, MediapickerMedia::class);
135+ $ this ->setConfigDefault ('mediapicker.media_controller ' , MediaController::class, MediapickerMediaController::class);
136+ $ this ->setConfigDefault ('media-library.media_model ' , CmsMedia::class, SpatieMedia::class);
137+ }
138+
139+ protected function setConfigDefault (string $ key , mixed $ value , mixed $ packageDefault = null ): void
140+ {
141+ $ current = config ($ key );
142+
143+ if (is_null ($ current ) || $ current === $ packageDefault ) {
144+ config ([$ key => $ value ]);
145+ }
146+ }
147+
148+ protected function loadMediapickerMigrations (): void
149+ {
150+ $ provider = new ReflectionClass (MediapickerServiceProvider::class);
151+ $ migrations = dirname ($ provider ->getFileName (), 2 ) . '/database/migrations ' ;
152+
153+ if (is_dir ($ migrations )) {
154+ $ this ->loadMigrationsFrom ($ migrations );
155+ }
156+ }
121157}
122158
123159
0 commit comments