From 1ea0a5490319e91609dc1b5e04243832595b3b2e Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 30 Sep 2016 08:58:26 -0600 Subject: [PATCH] Added new `onAdminCreatePageFrontmatter` event - https://github.com/getgrav/grav-plugin-admin/pull/781 --- CHANGELOG.md | 1 + classes/admin.php | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34ae06c6..f5571f98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 09/xx/2016 1. [](#new) + * Added new `onAdminCreatePageFrontmatter()` event to support plugins such as `auto-date` by allowing frontmatter to be modified by plugins. * Added a new independent `cache_enabled` option for admin plugin (default is `false`). Should fix various sync issues. 1. [](#improved) * Handle errors when a resource fails to install diff --git a/classes/admin.php b/classes/admin.php index 78782761..b066b142 100644 --- a/classes/admin.php +++ b/classes/admin.php @@ -16,6 +16,7 @@ use Grav\Common\Uri; use Grav\Common\User\User; use Grav\Common\Utils; use Grav\Plugin\Admin\Utils as AdminUtils; +use RocketTheme\Toolbox\Event\Event; use RocketTheme\Toolbox\File\File; use RocketTheme\Toolbox\File\JsonFile; use RocketTheme\Toolbox\ResourceLocator\UniformResourceIterator; @@ -745,6 +746,7 @@ class Admin // Found the type and header from the session. $data = $this->session->{$page->route()}; + // Set the key header value $header = ['title' => $data['title']]; if (isset($data['visible'])) { @@ -771,6 +773,10 @@ class Admin $name = $page->modular() ? str_replace('modular/', '', $data['name']) : $data['name']; $page->name($name . '.md'); + + // Fire new event to allow plugins to manipulate page frontmatter + $this->grav->fireEvent('onAdminCreatePageFrontmatter', new Event(['header' => &$header])); + $page->header($header); $page->frontmatter(Yaml::dump((array)$page->header(), 10, 2, false)); } else {