From 90c2079529fda5f72fb716772c661f0edbf42d35 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 13 Sep 2019 22:39:46 +0300 Subject: [PATCH] Fixed wrong `Pages::dispatch()` calls (with redirect) when we really meant to call `Pages::find()` --- CHANGELOG.md | 1 + system/src/Grav/Common/Grav.php | 2 +- system/src/Grav/Common/Page/Markdown/Excerpts.php | 2 +- system/src/Grav/Common/Page/Page.php | 2 +- system/src/Grav/Common/Page/Pages.php | 4 ++-- tests/unit/Grav/Common/Helpers/ExcerptsTest.php | 4 +++- tests/unit/Grav/Common/Markdown/ParsedownTest.php | 7 ++++--- tests/unit/Grav/Common/Page/PagesTest.php | 4 ++-- 8 files changed, 15 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e0179fb7..1be07aabe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ * Fixed broken Twig `dump()` * Fixed `Page::modular()` and `Page::modularTwig()` returning `null` for folders and other non-initialized pages * Fixed 404 error when you click to non-routable menu item with children: redirect to the first child instead + * Fixed wrong `Pages::dispatch()` calls (with redirect) when we really meant to call `Pages::find()` # v1.7.0-beta.7 ## 08/30/2019 diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index d2c03f0b1..8b6531038 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -553,7 +553,7 @@ class Grav extends Container $path_parts = pathinfo($path); /** @var PageInterface $page */ - $page = $this['pages']->dispatch($path_parts['dirname'], true); + $page = $this['pages']->find($path_parts['dirname'], true); if ($page) { $media = $page->media()->all(); diff --git a/system/src/Grav/Common/Page/Markdown/Excerpts.php b/system/src/Grav/Common/Page/Markdown/Excerpts.php index eaa13cbe8..1cbd93803 100644 --- a/system/src/Grav/Common/Page/Markdown/Excerpts.php +++ b/system/src/Grav/Common/Page/Markdown/Excerpts.php @@ -185,7 +185,7 @@ class Excerpts $page_route = '/' . ltrim(str_replace($base_url, '', $folder), '/'); /** @var PageInterface $ext_page */ - $ext_page = $grav['pages']->dispatch($page_route, true); + $ext_page = $grav['pages']->find($page_route, true); if ($ext_page) { $media = $ext_page->getMedia(); } else { diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 1a7c0b1d4..c3b97a0f5 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -2463,7 +2463,7 @@ class Page implements PageInterface if (isset($routes[$uri_path])) { /** @var PageInterface $child_page */ - $child_page = $pages->dispatch($uri->route())->parent(); + $child_page = $pages->find($uri->route())->parent(); if ($child_page) { while (!$child_page->root()) { if ($this->path() === $child_page->path()) { diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index 0cb2a2404..510498172 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -736,7 +736,7 @@ class Pages public function ancestor($route, $path = null) { if ($path !== null) { - $page = $this->dispatch($route, true); + $page = $this->find($route, true); if ($page && $page->path() === $path) { return $page; @@ -763,7 +763,7 @@ class Pages { if ($field !== null) { - $page = $this->dispatch($route, true); + $page = $this->find($route, true); $parent = $page ? $page->parent() : null; if ($parent && $parent->value('header.' . $field) !== null) { diff --git a/tests/unit/Grav/Common/Helpers/ExcerptsTest.php b/tests/unit/Grav/Common/Helpers/ExcerptsTest.php index b57b3856c..3673da558 100644 --- a/tests/unit/Grav/Common/Helpers/ExcerptsTest.php +++ b/tests/unit/Grav/Common/Helpers/ExcerptsTest.php @@ -3,10 +3,12 @@ use Codeception\Util\Fixtures; use Grav\Common\Helpers\Excerpts; use Grav\Common\Grav; +use Grav\Common\Page\Interfaces\PageInterface; use Grav\Common\Uri; use Grav\Common\Config\Config; use Grav\Common\Page\Pages; use Grav\Common\Language\Language; +use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; /** * Class ExcerptsTest @@ -64,7 +66,7 @@ class ExcerptsTest extends \Codeception\TestCase\Test 'escape_markup' => false, 'special_chars' => ['>' => 'gt', '<' => 'lt'], ]; - $this->page = $this->pages->dispatch('/item2/item2-2'); + $this->page = $this->pages->find('/item2/item2-2'); $this->uri->initializeWithURL('http://testing.dev/item2/item2-2')->init(); } diff --git a/tests/unit/Grav/Common/Markdown/ParsedownTest.php b/tests/unit/Grav/Common/Markdown/ParsedownTest.php index 58a1acf61..2293bb749 100644 --- a/tests/unit/Grav/Common/Markdown/ParsedownTest.php +++ b/tests/unit/Grav/Common/Markdown/ParsedownTest.php @@ -8,6 +8,7 @@ use Grav\Common\Config\Config; use Grav\Common\Page\Pages; use Grav\Common\Markdown\Parsedown; use Grav\Common\Language\Language; +use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; /** @@ -66,7 +67,7 @@ class ParsedownTest extends \Codeception\TestCase\Test ], 'images' => $this->config->get('system.images', []) ]; - $page = $this->pages->dispatch('/item2/item2-2'); + $page = $this->pages->find('/item2/item2-2'); $excerpts = new Excerpts($page, $defaults); $this->parsedown = new Parsedown($excerpts); @@ -194,7 +195,7 @@ class ParsedownTest extends \Codeception\TestCase\Test ], 'images' => $this->config->get('system.images', []) ]; - $page = $this->pages->dispatch('/'); + $page = $this->pages->find('/'); $excerpts = new Excerpts($page, $defaults); $this->parsedown = new Parsedown($excerpts); @@ -249,7 +250,7 @@ class ParsedownTest extends \Codeception\TestCase\Test ], 'images' => $this->config->get('system.images', []) ]; - $page = $this->pages->dispatch('/'); + $page = $this->pages->find('/'); $excerpts = new Excerpts($page, $defaults); $this->parsedown = new Parsedown($excerpts); diff --git a/tests/unit/Grav/Common/Page/PagesTest.php b/tests/unit/Grav/Common/Page/PagesTest.php index 8b6ca90a8..4de75fb42 100644 --- a/tests/unit/Grav/Common/Page/PagesTest.php +++ b/tests/unit/Grav/Common/Page/PagesTest.php @@ -96,7 +96,7 @@ class PagesTest extends \Codeception\TestCase\Test $locator = $this->grav['locator']; $folder = $locator->findResource('tests://'); - $aPage = $this->pages->dispatch('/blog'); + $aPage = $this->pages->find('/blog'); $subPagesSorted = $this->pages->sort($aPage); $this->assertInternalType('array', $subPagesSorted); @@ -132,7 +132,7 @@ class PagesTest extends \Codeception\TestCase\Test $locator = $this->grav['locator']; $folder = $locator->findResource('tests://'); - $aPage = $this->pages->dispatch('/blog'); + $aPage = $this->pages->find('/blog'); $subPagesSorted = $this->pages->sortCollection($aPage->children(), $aPage->orderBy()); $this->assertInternalType('array', $subPagesSorted);