From 0bb52c75ce252aa52dee0f3ef165db47f75835bc Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 13 Jan 2022 06:20:38 -0700 Subject: [PATCH] page-level override for redirect_default_route --- CHANGELOG.md | 1 + system/blueprints/pages/default.yaml | 12 ++++++++++++ .../src/Grav/Common/Service/PagesServiceProvider.php | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28317c9a3..28d277b4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Added links and modules support to `HtmlBlock` class * Added module support for twig script tag: `{% script module 'theme://js/module.mjs' %}` * Added twig tag for links: `{% link icon 'theme://images/favicon.png' priority: 20 with { type: 'image/png' } %}` + * Support for page-level `redirect_default_route` frontmatter header override # v1.7.27.1 ## 01/12/2022 diff --git a/system/blueprints/pages/default.yaml b/system/blueprints/pages/default.yaml index f3ef29f5e..a573a83c8 100644 --- a/system/blueprints/pages/default.yaml +++ b/system/blueprints/pages/default.yaml @@ -320,6 +320,18 @@ form: fields: + header.redirect_default_route: + type: toggle + toggleable: true + label: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE + help: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE_HELP + config-highlight@: system.pages.redirect_default_route + options: + 1: PLUGIN_ADMIN.YES + 0: PLUGIN_ADMIN.NO + validate: + type: bool + header.routes.default: type: text toggleable: true diff --git a/system/src/Grav/Common/Service/PagesServiceProvider.php b/system/src/Grav/Common/Service/PagesServiceProvider.php index bec635ac8..fa6631eee 100644 --- a/system/src/Grav/Common/Service/PagesServiceProvider.php +++ b/system/src/Grav/Common/Service/PagesServiceProvider.php @@ -99,7 +99,8 @@ class PagesServiceProvider implements ServiceProviderInterface /** @var Language $language */ $language = $grav['language']; - $redirectCode = (int)$config->get('system.pages.redirect_default_route', 0); + $redirect_default_route = $page->header()->redirect_default_route ?? $config->get('system.pages.redirect_default_route', 0); + $redirectCode = (int) $redirect_default_route; // Language-specific redirection scenarios if ($language->enabled() && ($language->isLanguageInUrl() xor $language->isIncludeDefaultLanguage())) {