Matthias Andreas Benkard | 12a5735 | 2021-12-28 18:02:04 +0100 | [diff] [blame] | 1 | <?php |
| 2 | |
| 3 | use Twig\Environment; |
| 4 | use Twig\Loader\FilesystemLoader; |
| 5 | use Twig\TwigFilter; |
| 6 | use Twig\TwigFunction; |
| 7 | |
| 8 | $loader = new FilesystemLoader($_SERVER['DOCUMENT_ROOT'].'/templates'); |
| 9 | $twig = new Environment($loader, [ |
| 10 | 'debug' => $DEV_MODE, |
| 11 | 'cache' => $_SERVER['DOCUMENT_ROOT'].'/templates/cache', |
| 12 | ]); |
| 13 | |
| 14 | // functions |
| 15 | $twig->addFunction(new TwigFunction('query_string', function (array $params = []) { |
| 16 | return http_build_query(array_merge($_GET, $params)); |
| 17 | })); |
| 18 | |
| 19 | $twig->addFunction(new TwigFunction('is_uri', function (string $uri, string $where = null) { |
| 20 | if (is_null($where)) $where = $_SERVER['REQUEST_URI']; |
| 21 | return preg_match('/'.$uri.'/i', $where); |
| 22 | })); |
| 23 | |
| 24 | // filters |
| 25 | $twig->addFilter(new TwigFilter('rot13', 'str_rot13')); |
| 26 | $twig->addFilter(new TwigFilter('base64_encode', 'base64_encode')); |
| 27 | $twig->addFilter(new TwigFilter('formatBytes', 'formatBytes')); |