mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 09:19:22 +02:00
86 lines
2.1 KiB
PHP
86 lines
2.1 KiB
PHP
<?php
|
|
|
|
use Twig\Environment as Twig_Environment;
|
|
use Twig\Extension\DebugExtension as Twig_DebugExtension;
|
|
use Twig\Loader\FilesystemLoader as Twig_FilesystemLoader;
|
|
use Twig\TwigFilter;
|
|
use Twig\TwigFunction;
|
|
|
|
$dev_mode = (config('env') === 'dev');
|
|
$twig_loader = new Twig_FilesystemLoader(SYSTEM . 'templates');
|
|
$twig = new Twig_Environment($twig_loader, array(
|
|
'cache' => CACHE . 'twig/',
|
|
'auto_reload' => $dev_mode,
|
|
'debug' => $dev_mode
|
|
));
|
|
|
|
$twig_loader->addPath(PLUGINS);
|
|
|
|
$twig->addGlobal('logged', false);
|
|
$twig->addGlobal('account_logged', new OTS_Account());
|
|
|
|
if($dev_mode) {
|
|
$twig->addExtension(new Twig_DebugExtension());
|
|
}
|
|
unset($dev_mode);
|
|
|
|
require LIBS . 'TwigTypeCastingExtension.php';
|
|
$twig->addExtension(new MyAAC\Twig\Extension\TwigTypeCastingExtension());
|
|
|
|
$function = new TwigFunction('getStyle', function ($i) {
|
|
return getStyle($i);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('getLink', function ($s) {
|
|
return getLink($s);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('getPlayerLink', function ($s, $p) {
|
|
return getPlayerLink($s, $p);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('getGuildLink', function ($s, $p) {
|
|
return getGuildLink($s, $p);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('hook', function ($context, $hook, array $params = []) {
|
|
global $hooks;
|
|
|
|
if(is_string($hook)) {
|
|
if (defined($hook)) {
|
|
$hook = constant($hook);
|
|
}
|
|
else {
|
|
// plugin/template has a hook that this version of myaac does not support
|
|
// just silently return
|
|
return;
|
|
}
|
|
}
|
|
|
|
$params['context'] = $context;
|
|
$hooks->trigger($hook, $params);
|
|
}, ['needs_context' => true]);
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('config', function ($key) {
|
|
return config($key);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$function = new TwigFunction('getCustomPage', function ($name) {
|
|
$success = false;
|
|
return getCustomPage($name, $success);
|
|
});
|
|
$twig->addFunction($function);
|
|
|
|
$filter = new TwigFilter('urlencode', function ($s) {
|
|
return urlencode($s);
|
|
});
|
|
|
|
$twig->addFilter($filter);
|
|
unset($function, $filter);
|