diff --git a/src/Core/Renderer.php b/src/Core/Renderer.php index 98915e70f..5ce47ad93 100644 --- a/src/Core/Renderer.php +++ b/src/Core/Renderer.php @@ -99,19 +99,18 @@ class Renderer * Load a given template $s * * @param string $s Template to load. - * @param string $root Optional. + * @param string $subDir Subdirectory (Optional) * * @return string template. * @throws Exception */ - public static function getMarkupTemplate($s, $root = '') + public static function getMarkupTemplate($s, $subDir = '') { $stamp1 = microtime(true); - $a = DI::app(); $t = self::getTemplateEngine(); try { - $template = $t->getTemplateFile($s, $root); + $template = $t->getTemplateFile($s, $subDir); } catch (Exception $e) { echo "
" . __FUNCTION__ . ": " . $e->getMessage() . "
"; exit(); diff --git a/src/DI.php b/src/DI.php index 39efe2a97..c89315c0e 100644 --- a/src/DI.php +++ b/src/DI.php @@ -383,6 +383,14 @@ abstract class DI return self::$dice->create(Util\ACLFormatter::class); } + /** + * @return string + */ + public static function basePath() + { + return self::$dice->create('$basepath'); + } + /** * @return Util\DateTimeFormat */ diff --git a/src/Database/View.php b/src/Database/View.php index c7f55ee75..e1335d9df 100644 --- a/src/Database/View.php +++ b/src/Database/View.php @@ -28,7 +28,7 @@ use Friendica\DI; class View { /** - * view definition loaded from config/dbview.config.php + * view definition loaded from static/dbview.config.php * * @var array */ diff --git a/src/Render/FriendicaSmartyEngine.php b/src/Render/FriendicaSmartyEngine.php index 1e419bcf7..6984daa15 100644 --- a/src/Render/FriendicaSmartyEngine.php +++ b/src/Render/FriendicaSmartyEngine.php @@ -68,16 +68,18 @@ class FriendicaSmartyEngine implements ITemplateEngine return $s->parsed($template); } - public function getTemplateFile($file, $root = '') + public function getTemplateFile($file, $subDir = '') { $a = DI::app(); $template = new FriendicaSmarty(); // Make sure $root ends with a slash / - if ($root !== '' && substr($root, -1, 1) !== '/') { - $root = $root . '/'; + if ($subDir !== '' && substr($subDir, -1, 1) !== '/') { + $subDir = $subDir . '/'; } + $root = DI::basePath() . '/' . $subDir; + $theme = $a->getCurrentTheme(); $filename = $template::SMARTY3_TEMPLATE_FOLDER . '/' . $file; diff --git a/src/Render/ITemplateEngine.php b/src/Render/ITemplateEngine.php index 456bb268b..b18af69f2 100644 --- a/src/Render/ITemplateEngine.php +++ b/src/Render/ITemplateEngine.php @@ -27,5 +27,5 @@ namespace Friendica\Render; interface ITemplateEngine { public function replaceMacros($s, $v); - public function getTemplateFile($file, $root = ''); + public function getTemplateFile($file, $subDir = ''); } diff --git a/tests/datasets/api.fixture.php b/tests/datasets/api.fixture.php index 8bb701da1..c9c16a33f 100644 --- a/tests/datasets/api.fixture.php +++ b/tests/datasets/api.fixture.php @@ -256,6 +256,12 @@ return [ 'wall' => 1, ], ], + 'profile' => [ + [ + 'id' => 1, + 'uid' => 42, + ], + ], 'group' => [ [ 'id' => 1,