From f3d9b13818c7c591cba489a8dd2dfbd478e103ea Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 11 Mar 2016 16:02:45 -0700 Subject: [PATCH] search other plugins before using admin's pages. let's you override default pages --- admin.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/admin.php b/admin.php index 378b9110..13cc9f17 100644 --- a/admin.php +++ b/admin.php @@ -334,27 +334,28 @@ class AdminPlugin extends Plugin $this->grav['page'] = function () use ($self) { $page = new Page; - if (file_exists(__DIR__ . "/pages/admin/{$self->template}.md")) { - $page->init(new \SplFileInfo(__DIR__ . "/pages/admin/{$self->template}.md")); - $page->slug(basename($self->template)); - return $page; - } - - // If the page cannot be found, try looking in plugins. // Allows pages added by plugins in admin - $plugins = Grav::instance()['config']->get('plugins', []); + $plugins = $this->grav['plugins']; + $locator = $this->grav['locator']; - foreach($plugins as $plugin => $data) { - $path = $this->grav['locator']->findResource( - "user://plugins/{$plugin}/admin/pages/{$self->template}.md"); + foreach($plugins as $plugin) { + $path = $locator->findResource( + "user://plugins/{$plugin->name}/admin/pages/{$self->template}.md"); - if (file_exists($path)) { + if ($path) { $page->init(new \SplFileInfo($path)); $page->slug(basename($self->template)); return $page; } } + // If the page cannot be found in other plugins, try looking in admin plugin itself. + if (file_exists(__DIR__ . "/pages/admin/{$self->template}.md")) { + $page->init(new \SplFileInfo(__DIR__ . "/pages/admin/{$self->template}.md")); + $page->slug(basename($self->template)); + return $page; + } + return null; };