From 95442ef0b578db37488e0a19c4e4d4a8a86b7b16 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 11 Feb 2020 20:53:02 +0200 Subject: [PATCH] Fixed page initialization in CLI --- CHANGELOG.md | 3 ++- .../Grav/Common/Service/PagesServiceProvider.php | 13 +++++++++++++ system/src/Grav/Console/ConsoleCommand.php | 6 ------ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2a3996c5..b5517aa37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ * Added `ConsoleCommand::initializeThemes()`method to properly set up current theme to be used from CLI * Added `ConsoleCommand::initializePages()` method to properly set up pages to be used from CLI 1. [](#bugfix) - * Fixed `bin/plugin` CLI calling `$themes->init()` way too early + * Fixed `bin/plugin` CLI calling `$themes->init()` way too early (removed it, use above methods instead) + * Fixed call to `$grav['page']` crashing CLI * Fixed encoding problems when PHP INI setting `default_charset` is not `utf-8` [#2154](https://github.com/getgrav/grav/issues/2154) # v1.6.20 diff --git a/system/src/Grav/Common/Service/PagesServiceProvider.php b/system/src/Grav/Common/Service/PagesServiceProvider.php index 0a37e831d..80142e5bf 100644 --- a/system/src/Grav/Common/Service/PagesServiceProvider.php +++ b/system/src/Grav/Common/Service/PagesServiceProvider.php @@ -26,6 +26,19 @@ class PagesServiceProvider implements ServiceProviderInterface return new Pages($c); }; + if (GRAV_CLI) { + $container['page'] = static function ($c) { + $path = $c['locator']->findResource('system://pages/notfound.md'); + $page = new Page(); + $page->init(new \SplFileInfo($path)); + $page->routable(false); + + return $page; + }; + + return; + } + $container['page'] = function ($c) { /** @var Grav $c */ diff --git a/system/src/Grav/Console/ConsoleCommand.php b/system/src/Grav/Console/ConsoleCommand.php index 0f7501478..c0fd9ad42 100644 --- a/system/src/Grav/Console/ConsoleCommand.php +++ b/system/src/Grav/Console/ConsoleCommand.php @@ -171,12 +171,6 @@ class ConsoleCommand extends Command $pages = $grav['pages']; $pages->init(); $grav->fireEvent('onPagesInitialized', new Event(['pages' => $pages])); - if (!isset($grav['page'])) { - $page = new Page(); - $page->routable(false); - $page->title('404 Not Found'); - $grav['page'] = $page; - } } return $this;