twig.inc.php 967 B

1234567891011121314151617181920212223242526272829
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Loader\FilesystemLoader;
  4. use Twig\TwigFilter;
  5. use Twig\TwigFunction;
  6. $loader = new FilesystemLoader($_SERVER['DOCUMENT_ROOT'].'/templates');
  7. $twig = new Environment($loader, [
  8. 'debug' => $DEV_MODE,
  9. 'cache' => $_SERVER['DOCUMENT_ROOT'].'/templates/cache',
  10. ]);
  11. // functions
  12. $twig->addFunction(new TwigFunction('query_string', function (array $params = []) {
  13. $allowed = ['lang', 'mobileconfig'];
  14. $filtered = array_intersect_key($_GET, array_flip($allowed));
  15. return http_build_query(array_merge($filtered, $params));
  16. }));
  17. $twig->addFunction(new TwigFunction('is_uri', function (string $uri, string $where = null) {
  18. if (is_null($where)) $where = $_SERVER['REQUEST_URI'];
  19. return preg_match('/'.$uri.'/i', $where);
  20. }));
  21. // filters
  22. $twig->addFilter(new TwigFilter('rot13', 'str_rot13'));
  23. $twig->addFilter(new TwigFilter('base64_encode', 'base64_encode'));
  24. $twig->addFilter(new TwigFilter('formatBytes', 'formatBytes'));