Skip to content

Commit bc35ae3

Browse files
committed
feat: integrate Mediapicker with CMS models and update attachment handling
1 parent 894d6d4 commit bc35ae3

36 files changed

Lines changed: 103 additions & 2475 deletions

src/CmsServiceProvider.php

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
use Javaabu\Cms\Policies\PostPolicy;
1616
use Javaabu\Cms\Policies\PostTypePolicy;
1717
use 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

1926
class 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

src/Http/Controllers/Admin/MediaController.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ public function store(MediaRequest $request)
234234
* @param Media $media
235235
* @return Response
236236
*/
237-
public function show($locale, Media $media)
237+
public function show(Media $media)
238238
{
239239
return redirect()->to($media->url('edit'));
240240
}
@@ -245,7 +245,7 @@ public function show($locale, Media $media)
245245
* @param Media $media
246246
* @return Response
247247
*/
248-
public function edit($locale, Media $media)
248+
public function edit(Media $media)
249249
{
250250
if (method_exists($media, 'dontShowTranslationFallbacks')) {
251251
$media->dontShowTranslationFallbacks();
@@ -260,7 +260,7 @@ public function edit($locale, Media $media)
260260
* @param Media $media
261261
* @return JsonResponse|RedirectResponse
262262
*/
263-
public function update(MediaRequest $request, $locale, Media $media)
263+
public function update(MediaRequest $request, Media $media)
264264
{
265265
// If this is not a translation, set lang
266266
if ((! $request->input('is_translation')) && $request->input('lang')) {
@@ -305,7 +305,7 @@ public function update(MediaRequest $request, $locale, Media $media)
305305
* @return Response
306306
* @throws Exception
307307
*/
308-
public function destroy($locale, Media $media, Request $request)
308+
public function destroy(Media $media, Request $request)
309309
{
310310
if (! $media->delete()) {
311311
if ($request->expectsJson()) {
@@ -318,7 +318,7 @@ public function destroy($locale, Media $media, Request $request)
318318
return response()->json(true);
319319
}
320320

321-
return redirect()->action('Admin\\MediaController@index');
321+
return redirect()->to(translate_route('admin.media.index'));
322322
}
323323

324324
/**
@@ -328,7 +328,7 @@ public function destroy($locale, Media $media, Request $request)
328328
* @return Response
329329
* @internal param Inquiry $inquiry
330330
*/
331-
public function bulk($locale, Request $request)
331+
public function bulk(Request $request)
332332
{
333333
$this->authorize('create', Media::class);
334334

src/Media/Attachment/Attachment.php

Lines changed: 0 additions & 124 deletions
This file was deleted.

src/Media/Attachment/AttachmentObserver.php

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)