From 73257aa1fe1840c83416d135bbdd466c243f1770 Mon Sep 17 00:00:00 2001
From: luttje <2738114+luttje@users.noreply.github.com>
Date: Mon, 11 Mar 2024 21:44:26 +0100
Subject: [PATCH] Closes #6664

---
 interface/lib/classes/tpl.inc.php | 36 +++++++++++++++++++------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/interface/lib/classes/tpl.inc.php b/interface/lib/classes/tpl.inc.php
index e999ba5bfe..e6a2cfdfb2 100644
--- a/interface/lib/classes/tpl.inc.php
+++ b/interface/lib/classes/tpl.inc.php
@@ -233,7 +233,7 @@ if (!defined('vlibTemplateClassLoaded')) {
 		public function setVar($k, $v = null, $encode = false)
 		{
 			global $app;
-			
+
 			if (is_array($k)) {
 				foreach($k as $key => $value){
 					$key = ($this->OPTIONS['CASELESS']) ? strtolower(trim($key)) : trim($key);
@@ -917,9 +917,17 @@ if (!defined('vlibTemplateClassLoaded')) {
 			$filename = basename($file);
 			$filepath = dirname($file);
 
-			if(isset($_SESSION['s']['module']['name']) && isset($_SESSION['s']['theme'])) {
-				if(is_file(ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$_SESSION['s']['module']['name'].'/'.$filename)) {
-					return ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$_SESSION['s']['module']['name'].'/'.$filename;
+			$modulename = false;
+
+			if(isset($_SESSION['s']['module']['name'])) {
+				$modulename = $_SESSION['s']['module']['name'];
+			} elseif(strpos($_SERVER['PHP_SELF'], '/login/') === 0) {
+				$modulename = 'login';
+			}
+
+			if($modulename && isset($_SESSION['s']['theme'])) {
+				if(is_file(ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$modulename.'/'.$filename)) {
+					return ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$modulename.'/'.$filename;
 				}
 			}
 
@@ -1079,12 +1087,12 @@ if (!defined('vlibTemplateClassLoaded')) {
 		private function _parseHook ($name)
 		{
 			global $app;
-			
+
 			if(!$name) return false;
-			
+
 			$module = isset($_SESSION['s']['module']['name']) ? $_SESSION['s']['module']['name'] : '';
 			$form = isset($app->tform->formDef['name']) ? $app->tform->formDef['name'] : '';
-			
+
 			$events = array();
 			if($module) {
 				$events[] = $module . ':' . ($form ? $form : '') . ':' . $name;
@@ -1093,9 +1101,9 @@ if (!defined('vlibTemplateClassLoaded')) {
 				$events[] = $name;
 				$events[] = 'on_template_content';
 			}
-			
+
 			$events = array_unique($events);
-			
+
 			for($e = 0; $e < count($events); $e++) {
 				$tmpresult = $app->plugin->raiseEvent($events[$e], array(
 					'name' => $name,
@@ -1104,10 +1112,10 @@ if (!defined('vlibTemplateClassLoaded')) {
 				), true);
 				if(!$tmpresult) $tmpresult = '';
 				else $tmpresult = $this->_getData($tmpresult, false, true);
-				
+
 				$result .= $tmpresult;
 			}
-			
+
 			return $result;
 		}
 
@@ -1225,7 +1233,7 @@ if (!defined('vlibTemplateClassLoaded')) {
 			$wholetag = $args[0];
 			$openclose = $args[1];
 			$tag = strtolower($args[2]);
-			
+
 			if ($tag == 'else') return '<?php } else { ?>';
 			if ($tag == 'tmpl_include') return $wholetag; // ignore tmpl_include tags
 
@@ -1303,10 +1311,10 @@ if (!defined('vlibTemplateClassLoaded')) {
 				if ($this->OPTIONS['ENABLE_PHPINCLUDE']) {
 					return '<?php include(\''.$file.'\'); ?>';
 				}
-			
+
 			case 'hook':
 				return $this->_parseHook(@$var);
-			
+
 			case 'include':
 				return '<?php $this->_getData($this->_fileSearch(\''.$file.'\'), 1); ?>';
 
-- 
GitLab