From f19535c5f88d6f1639ccccbfd8b2c964f227eb76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaime=20Pe=CC=81rez=20Crespo?= <jaime.perez@uninett.no>
Date: Mon, 26 Aug 2019 10:41:49 +0200
Subject: [PATCH] Make sure we can load templates regardless of the extension

This ensures that we don't break any existing modules by renaming a template from ".php" to ".tpl.php".
---
 lib/SimpleSAML/XHTML/Template.php | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php
index 3df5866a1..cf6b270e6 100644
--- a/lib/SimpleSAML/XHTML/Template.php
+++ b/lib/SimpleSAML/XHTML/Template.php
@@ -568,6 +568,7 @@ class Template extends Response
     private function findTemplatePath($template, $throw_exception = true)
     {
         assert(is_string($template));
+        $extensions = ['.tpl.php', '.php'];
 
         list($templateModule, $templateName) = $this->findModuleAndTemplateName($template);
         $templateModule = ($templateModule !== null) ? $templateModule : 'default';
@@ -587,8 +588,11 @@ class Template extends Response
             $filename = $base.$templateName;
         }
 
-        if (file_exists($filename)) {
-            return $filename;
+        $filename = $this->normalizeTemplateName($filename);
+        foreach ($extensions as $extension) {
+            if (file_exists($filename.$extension)) {
+                return $filename.$extension;
+            }
         }
 
         // not found in current theme
@@ -607,8 +611,11 @@ class Template extends Response
             $filename = $base.'/'.$templateName;
         }
 
-        if (file_exists($filename)) {
-            return $filename;
+        $filename = $this->normalizeTemplateName($filename);
+        foreach ($extensions as $extension) {
+            if (file_exists($filename.$extension)) {
+                return $filename.$extension;
+            }
         }
 
         // not found in default template
-- 
GitLab