diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php index 3ae190b88a82062c04bbeaa839c5e7ee9ae25078..39bce25ebd516feace6cb381c946e3508e2dd522 100644 --- a/lib/SimpleSAML/XHTML/Template.php +++ b/lib/SimpleSAML/XHTML/Template.php @@ -167,7 +167,7 @@ class Template $this->twig_template = ($namespace !== null) ? '@'.$namespace.'/'.$filename : $filename; $loader = new TemplateLoader(); $templateDirs = $this->findThemeTemplateDirs(); - if ($this->module) { + if ($this->module && $this->module != 'core') { $templateDirs[] = [$this->module => TemplateLoader::getModuleTemplateDir($this->module)]; } if ($this->theme['module']) { @@ -180,6 +180,8 @@ class Template } } + $templateDirs[] = ['core' => TemplateLoader::getModuleTemplateDir('core')]; + // default, themeless templates are checked last $templateDirs[] = [ \Twig_Loader_Filesystem::MAIN_NAMESPACE => $this->configuration->resolvePath('templates') diff --git a/templates/error.twig b/templates/error.twig index 311aa2925e979d05b9c89068b038a40019b9d79f..23e06c570215d3ca551f54a430006e95d8d16995 100644 --- a/templates/error.twig +++ b/templates/error.twig @@ -10,7 +10,9 @@ e.g. "core:no_state.tpl.php". The format is "<module>:<template name>" #} {% if includeTemplate -%} - {% include(includeTemplate) %} + {% set parts = includeTemplate|replace({'.tpl.php':'.twig'})|split(':') %} + {% set namespacedTemplate = "@" ~ parts[0] ~ "/" ~ parts[1] %} + {% include(namespacedTemplate) %} {%- endif %} <div class="message-box">