From 008ca6f41b0a0ee20fdd05b9927cad3aea2023fa Mon Sep 17 00:00:00 2001 From: Daniel Rudolf Date: Thu, 28 Mar 2019 19:14:23 +0100 Subject: [PATCH] Pico::loadConfig(): Make twig cache path absolute --- lib/Pico.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/Pico.php b/lib/Pico.php index ff06409..c79b5d5 100644 --- a/lib/Pico.php +++ b/lib/Pico.php @@ -948,6 +948,10 @@ class Pico $this->config['twig_config'] = $defaultTwigConfig; } else { $this->config['twig_config'] += $defaultTwigConfig; + + if ($this->config['twig_config']['cache']) { + $this->config['twig_config']['cache'] = $this->getAbsolutePath($this->config['twig_config']['cache']); + } } if (!$this->config['content_dir']) { @@ -2439,21 +2443,28 @@ class Pico * * This method also guarantees a trailing slash. * - * @param string $path relative or absolute path + * @param string $path relative or absolute path + * @param string $basePath treat relative paths relative to the given path; + * defaults to Pico::$rootDir * * @return string absolute path */ - public function getAbsolutePath($path) + public function getAbsolutePath($path, $basePath = null) { + if ($basePath === null) { + $basePath = $this->getRootDir(); + } + if (DIRECTORY_SEPARATOR === '\\') { if (preg_match('/^(?>[a-zA-Z]:\\\\|\\\\\\\\)/', $path) !== 1) { - $path = $this->getRootDir() . $path; + $path = $basePath . $path; } } else { if ($path[0] !== '/') { - $path = $this->getRootDir() . $path; + $path = $basePath . $path; } } + return rtrim($path, '/\\') . '/'; }