From 6a1c9bf8f9b79871388927f4d7b9904f5d87d60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.chilliet@fusiondirectory.org> Date: Tue, 7 Jul 2020 15:52:36 +0200 Subject: [PATCH] :ambulance: fix(core) Do not call renderTree unless needed This avoid a problem in webservice where it was crashing because smarty is not setup. issue #6071 --- include/class_baseSelector.inc | 12 +++++++++--- include/class_standAlonePage.inc | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/class_baseSelector.inc b/include/class_baseSelector.inc index c72940e4d..88e936395 100644 --- a/include/class_baseSelector.inc +++ b/include/class_baseSelector.inc @@ -1,8 +1,9 @@ <?php /* This code is part of FusionDirectory (http://www.fusiondirectory.org/) + Copyright (C) 2003-2010 Cajus Pollmeier - Copyright (C) 2011-2019 FusionDirectory + Copyright (C) 2011-2020 FusionDirectory This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,7 +35,7 @@ class baseSelector private $action; private $height = 500; private $submitButton = TRUE; - protected $tree = ''; + protected $tree = NULL; protected $pathMapping = []; protected $lastState; @@ -181,7 +182,8 @@ class baseSelector return TRUE; } - $this->renderTree(); + /* Force tree render next time render() is called */ + $this->tree = NULL; $this->lastState = TRUE; return TRUE; @@ -255,6 +257,10 @@ class baseSelector */ function render (): string { + if (!isset($this->tree)) { + $this->renderTree(); + } + return $this->tree; } diff --git a/include/class_standAlonePage.inc b/include/class_standAlonePage.inc index 705d96fa8..0633ae6a5 100644 --- a/include/class_standAlonePage.inc +++ b/include/class_standAlonePage.inc @@ -139,6 +139,7 @@ class standAlonePage function setupSmarty () { global $config; + $smarty = get_smarty(); /* Set template compile directory */ -- GitLab