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())) {