Template Engine with Subdirectory
- Use explicit root path for template engine - Replace "__DIR__" calls in addons with subdirectories - Fixes local tests, where call is made out of '/' and not '/vagrant/'
This commit is contained in:
parent
62e6c2f781
commit
f5f62d3f42
|
@ -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 "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
|
||||
exit();
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -27,5 +27,5 @@ namespace Friendica\Render;
|
|||
interface ITemplateEngine
|
||||
{
|
||||
public function replaceMacros($s, $v);
|
||||
public function getTemplateFile($file, $root = '');
|
||||
public function getTemplateFile($file, $subDir = '');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue