Skip to content

Commit 519372c

Browse files
committed
Fix bug in menu item page
Fix phpstan errors
1 parent 2567af2 commit 519372c

File tree

5 files changed

+21
-11
lines changed

5 files changed

+21
-11
lines changed

src/FilamentFlexibleContentBlockPagesConfig.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public function getSupportedLocales(): array
7272
return $flexibleBlocksLocales;
7373
}
7474

75-
return LaravelLocalization::getSupportedLanguagesKeys() ?? ['en'];
75+
$supportedKeys = LaravelLocalization::getSupportedLanguagesKeys();
76+
return !empty($supportedKeys) ? $supportedKeys : ['en'];
7677
}
7778

7879
public function getPageModel(): Page

src/FilamentFlexibleContentBlockPagesServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public function packageRegistered()
6464
$this->app->bind(
6565
\Statikbe\FilamentFlexibleContentBlockPages\Services\SitemapGeneratorService::class,
6666
function ($app) {
67-
$serviceClass = FilamentFlexibleContentBlockPages::config()->getSitemapGeneratorService();
67+
$serviceClass = \Statikbe\FilamentFlexibleContentBlockPages\Facades\FilamentFlexibleContentBlockPages::config()->getSitemapGeneratorService();
6868

6969
return $app->make($serviceClass);
7070
}

src/FlexibleContentBlockPagesPlugin.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Filament\Resources\Resource;
88
use Statikbe\FilamentFlexibleContentBlockPages\Facades\FilamentFlexibleContentBlockPages;
99

10-
class FlexibleContentBlockPagesPlugin implements Plugin
10+
final class FlexibleContentBlockPagesPlugin implements Plugin
1111
{
1212
protected static self $instance;
1313

@@ -85,7 +85,7 @@ public static function getWidgets(): array
8585
}
8686

8787
/**
88-
* @param array<class-string<\Filament\Pages\Page>>
88+
* @param array<class-string<\Filament\Pages\Page>> $pages
8989
*/
9090
public static function pages(array $pages): static
9191
{
@@ -95,7 +95,7 @@ public static function pages(array $pages): static
9595
}
9696

9797
/**
98-
* @param array<class-string<\Filament\Widgets\Widget>>
98+
* @param array<class-string<\Filament\Widgets\Widget>> $widgets
9999
*/
100100
public static function widgets(array $widgets): static
101101
{

src/Resources/MenuResource/Pages/ManageMenuItems.php

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

55
use Filament\Actions\CreateAction;
66
use Filament\Facades\Filament;
7+
use Illuminate\Database\Eloquent\Builder;
78
use Illuminate\Database\Eloquent\Model;
89
use Illuminate\Support\HtmlString;
910
use SolutionForest\FilamentTree\Actions\DeleteAction;
@@ -41,6 +42,11 @@ public function getModel(): string
4142
return FilamentFlexibleContentBlockPages::config()->getMenuItemModel()::class;
4243
}
4344

45+
protected function getTreeQuery(): Builder
46+
{
47+
return $this->getModel()::query()->where('menu_id', $this->menu->id);
48+
}
49+
4450
public function getTitle(): string
4551
{
4652
return flexiblePagesTrans('menu_items.manage.title', [

src/Services/SitemapGeneratorService.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Statikbe\FilamentFlexibleContentBlockPages\Facades\FilamentFlexibleContentBlockPages;
1414
use Statikbe\FilamentFlexibleContentBlockPages\Models\Page;
1515
use Statikbe\FilamentFlexibleContentBlockPages\Services\Enum\SitemapGeneratorMethod;
16+
use Statikbe\FilamentFlexibleContentBlocks\ContentBlocks\CallToActionBlock;
1617
use Statikbe\FilamentFlexibleContentBlocks\FilamentFlexibleBlocksConfig;
1718
use Statikbe\FilamentFlexibleContentBlocks\Models\Contracts\HasCode;
1819
use Statikbe\FilamentFlexibleContentBlocks\Models\Contracts\HasParent;
@@ -95,8 +96,10 @@ protected function addPageToSitemap(Page $page): void
9596
// Get canonical URL
9697
$canonicalUrl = $page->getViewUrl($this->canonicalLocale);
9798

99+
$lastModified = $page->{$page->getUpdatedAtColumn()} ?? $page->{$page->getCreatedAtColumn()};
100+
98101
$urlTag = $this->addToSitemap($canonicalUrl,
99-
$page->updated_at ?? $page->created_at,
102+
$lastModified,
100103
$this->calculatePriority($page),
101104
$this->calculateChangeFrequency($page),
102105
onlyCreate: true);
@@ -183,8 +186,7 @@ protected function addCustomUrls(): void
183186

184187
protected function getLinkableModels(): array
185188
{
186-
// 'general' is just random block to trigger fetching the default configuration:
187-
$ctaModels = FilamentFlexibleBlocksConfig::getCallToActionModels('general');
189+
$ctaModels = FilamentFlexibleBlocksConfig::getCallToActionModels(CallToActionBlock::class);
188190
$menuModels = FilamentFlexibleContentBlockPages::config()->getMenuLinkableModels();
189191

190192
// Merge and remove duplicates
@@ -194,12 +196,12 @@ protected function getLinkableModels(): array
194196
protected function calculatePriority(HasParent&HasCode $page): float
195197
{
196198
// Homepage gets highest priority
197-
if ($page->code === Page::HOME_PAGE) {
199+
if (property_exists($page, 'code') && $page->code === Page::HOME_PAGE) {
198200
return 1.0;
199201
}
200202

201203
// Parent pages get higher priority than children
202-
if (! $page->parent_id) {
204+
if (property_exists($page, 'parent_id') && ! $page->parent_id) {
203205
return 0.8;
204206
}
205207

@@ -209,7 +211,8 @@ protected function calculatePriority(HasParent&HasCode $page): float
209211

210212
protected function calculateChangeFrequency(Model $page): string
211213
{
212-
$daysSinceUpdate = $page->updated_at ? $page->updated_at->diffInDays(Carbon::now()) : 365;
214+
$updatedAt = $page->{$page->getUpdatedAtColumn()};
215+
$daysSinceUpdate = $updatedAt ? $updatedAt->diffInDays(Carbon::now()) : 365;
213216

214217
if ($daysSinceUpdate < 7) {
215218
return Url::CHANGE_FREQUENCY_WEEKLY;

0 commit comments

Comments
 (0)