1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace Cortex\Pages\Http\Controllers\Managerarea; |
6
|
|
|
|
7
|
|
|
use Cortex\Pages\Models\Page; |
8
|
|
|
use Spatie\MediaLibrary\Models\Media; |
9
|
|
|
use Cortex\Foundation\DataTables\MediaDataTable; |
10
|
|
|
use Cortex\Foundation\Http\Requests\ImageFormRequest; |
11
|
|
|
use Cortex\Foundation\Http\Controllers\AuthorizedController; |
12
|
|
|
|
13
|
|
|
class PagesMediaController extends AuthorizedController |
14
|
|
|
{ |
15
|
|
|
/** |
16
|
|
|
* {@inheritdoc} |
17
|
|
|
*/ |
18
|
|
|
protected $resource = Page::class; |
19
|
|
|
|
20
|
|
|
/** |
21
|
|
|
* {@inheritdoc} |
22
|
|
|
*/ |
23
|
|
|
public function authorizeResource($model, $parameter = null, array $options = [], $request = null): void |
24
|
|
|
{ |
25
|
|
|
$middleware = []; |
26
|
|
|
$parameter = $parameter ?: snake_case(class_basename($model)); |
|
|
|
|
27
|
|
|
|
28
|
|
|
foreach ($this->mapResourceAbilities() as $method => $ability) { |
29
|
|
|
$modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter; |
30
|
|
|
|
31
|
|
|
$middleware["can:update,{$modelName}"][] = $method; |
32
|
|
|
$middleware["can:{$ability},media"][] = $method; |
33
|
|
|
} |
34
|
|
|
|
35
|
|
|
foreach ($middleware as $middlewareName => $methods) { |
36
|
|
|
$this->middleware($middlewareName, $options)->only($methods); |
37
|
|
|
} |
38
|
|
|
} |
39
|
|
|
|
40
|
|
|
/** |
41
|
|
|
* List all page media. |
42
|
|
|
* |
43
|
|
|
* @param \Cortex\Foundation\DataTables\MediaDataTable $mediaDataTable |
44
|
|
|
* @param \Cortex\Pages\Models\Page $page |
45
|
|
|
* |
46
|
|
|
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse |
|
|
|
|
47
|
|
|
*/ |
48
|
|
|
public function index(Page $page, MediaDataTable $mediaDataTable) |
49
|
|
|
{ |
50
|
|
|
return $mediaDataTable->with([ |
51
|
|
|
'resource' => $page, |
52
|
|
|
'tabs' => 'managerarea.pages.tabs', |
53
|
|
|
'id' => "managerarea-pages-{$page->getRouteKey()}-media-table", |
54
|
|
|
'url' => route('managerarea.pages.media.store', ['page' => $page]), |
55
|
|
|
])->render('cortex/foundation::managerarea.pages.datatable-dropzone'); |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* Store new page media. |
60
|
|
|
* |
61
|
|
|
* @param \Cortex\Foundation\Http\Requests\ImageFormRequest $request |
62
|
|
|
* @param \Cortex\Pages\Models\Page $page |
63
|
|
|
* |
64
|
|
|
* @return void |
65
|
|
|
*/ |
66
|
|
|
public function store(ImageFormRequest $request, Page $page): void |
|
|
|
|
67
|
|
|
{ |
68
|
|
|
$page->addMediaFromRequest('file') |
69
|
|
|
->sanitizingFileName(function ($fileName) { |
70
|
|
|
return md5($fileName).'.'.pathinfo($fileName, PATHINFO_EXTENSION); |
71
|
|
|
}) |
72
|
|
|
->toMediaCollection('default', config('cortex.foundation.media.disk')); |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
/** |
76
|
|
|
* Destroy given page media. |
77
|
|
|
* |
78
|
|
|
* @param \Cortex\Pages\Models\Page $page |
79
|
|
|
* @param \Spatie\MediaLibrary\Models\Media $media |
80
|
|
|
* |
81
|
|
|
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse |
82
|
|
|
*/ |
83
|
|
|
public function destroy(Page $page, Media $media) |
84
|
|
|
{ |
85
|
|
|
$page->media()->where($media->getKeyName(), $media->getKey())->first()->delete(); |
86
|
|
|
|
87
|
|
|
return intend([ |
88
|
|
|
'url' => route('managerarea.pages.media.index', ['page' => $page]), |
89
|
|
|
'with' => ['warning' => trans('cortex/foundation::messages.resource_deleted', ['resource' => trans('cortex/foundation::common.media'), 'identifier' => $media->getRouteKey()])], |
90
|
|
|
]); |
91
|
|
|
} |
92
|
|
|
} |
93
|
|
|
|
This function has been deprecated. The supplier of the file has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed from the class and what other function to use instead.