Skip to content

Commit b038c9b

Browse files
committed
Refactor the resource retrieval from model
1 parent 2eb6937 commit b038c9b

File tree

4 files changed

+13
-42
lines changed

4 files changed

+13
-42
lines changed

config/filament-flexible-content-block-pages.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,12 @@
104104
'linkable_models' => [
105105
// Models that can be linked in menu items
106106
// These models must implement HasMenuLabel interface
107-
[
108-
'model' => \Statikbe\FilamentFlexibleContentBlockPages\Models\Page::class,
109-
'resource' => \Statikbe\FilamentFlexibleContentBlockPages\Resources\PageResource::class,
110-
],
107+
// Resources are automatically discovered via Filament::getModelResource()
108+
\Statikbe\FilamentFlexibleContentBlockPages\Models\Page::class,
111109

112110
// Add your own models here:
113-
// [
114-
// 'model' => \App\Models\Category::class,
115-
// 'resource' => \App\Filament\Resources\CategoryResource::class,
116-
// ],
111+
// \App\Models\Category::class,
112+
// \App\Models\Post::class,
117113
],
118114
'styles' => [
119115
// Available menu styles (codes only - labels come from translations)

src/FilamentFlexibleContentBlockPagesConfig.php

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -160,33 +160,6 @@ public function getMenuLinkableModels(): array
160160
return $this->packageConfig('menu.linkable_models', []);
161161
}
162162

163-
public function getMenuLinkableModelClasses(): array
164-
{
165-
$models = $this->getMenuLinkableModels();
166-
$classes = [];
167-
168-
foreach ($models as $model) {
169-
if (isset($model['model'])) {
170-
$classes[] = $model['model'];
171-
}
172-
}
173-
174-
return $classes;
175-
}
176-
177-
public function getMenuLinkableModelResource(string $modelClass): ?string
178-
{
179-
$models = $this->getMenuLinkableModels();
180-
181-
foreach ($models as $model) {
182-
if (isset($model['model'], $model['resource']) && $model['model'] === $modelClass) {
183-
return $model['resource'];
184-
}
185-
}
186-
187-
return null;
188-
}
189-
190163
public function getMenuStyles(): array
191164
{
192165
return $this->packageConfig('menu.styles', ['default']);

src/Form/Forms/MenuItemForm.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Statikbe\FilamentFlexibleContentBlockPages\Form\Forms;
44

5+
use Filament\Facades\Filament;
56
use Filament\Forms\Components\Grid;
67
use Filament\Forms\Components\Hidden;
78
use Filament\Forms\Components\Select;
@@ -257,9 +258,9 @@ protected static function getTypeLabel(AbstractMenuItemType $type): string
257258

258259
protected static function getModelLabelFromResource(string $modelClass): string
259260
{
260-
$resourceClass = \Statikbe\FilamentFlexibleContentBlockPages\Facades\FilamentFlexibleContentBlockPages::config()->getMenuLinkableModelResource($modelClass);
261+
$resourceClass = Filament::getModelResource($modelClass);
261262

262-
if ($resourceClass && class_exists($resourceClass)) {
263+
if ($resourceClass) {
263264
try {
264265
return $resourceClass::getModelLabel();
265266
} catch (\Exception $e) {
@@ -282,7 +283,7 @@ protected static function getTypes(): array
282283
];
283284

284285
// Add configured linkable models from config
285-
$configuredModels = FilamentFlexibleContentBlockPages::config()->getMenuLinkableModelClasses();
286+
$configuredModels = FilamentFlexibleContentBlockPages::config()->getMenuLinkableModels();
286287

287288
foreach ($configuredModels as $modelClass) {
288289
if (is_subclass_of($modelClass, HasMenuLabel::class)) {

src/Resources/MenuResource/Pages/ManageMenuItems.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Filament\Actions\CreateAction;
66
use Filament\Actions\LocaleSwitcher;
7+
use Filament\Facades\Filament;
78
use Illuminate\Database\Eloquent\Model;
89
use Illuminate\Support\HtmlString;
910
use SolutionForest\FilamentTree\Actions\DeleteAction;
@@ -143,9 +144,9 @@ protected function getMenuItemTypeDescription(MenuItem $record): string
143144

144145
protected function getModelLabelFromResource(string $modelClass): string
145146
{
146-
$resourceClass = FilamentFlexibleContentBlockPages::config()->getMenuLinkableModelResource($modelClass);
147+
$resourceClass = Filament::getModelResource($modelClass);
147148

148-
if ($resourceClass && class_exists($resourceClass)) {
149+
if ($resourceClass) {
149150
try {
150151
return $resourceClass::getModelLabel();
151152
} catch (\Exception $e) {
@@ -158,9 +159,9 @@ protected function getModelLabelFromResource(string $modelClass): string
158159

159160
protected function getModelIconFromResource(string $modelClass): ?string
160161
{
161-
$resourceClass = FilamentFlexibleContentBlockPages::config()->getMenuLinkableModelResource($modelClass);
162+
$resourceClass = Filament::getModelResource($modelClass);
162163

163-
if ($resourceClass && class_exists($resourceClass)) {
164+
if ($resourceClass) {
164165
try {
165166
return $resourceClass::getNavigationIcon();
166167
} catch (\Exception $e) {

0 commit comments

Comments
 (0)