| 
<?php
 require_once __DIR__.'/../../vendor/autoload.php';
 
 define ("CACHE_DIR",  __DIR__.'/cache');
 // in order to check live changes
 exec('rm -rf '.CACHE_DIR.'/*');
 
 $loader = new Twig_Loader_Filesystem(__DIR__);
 $twig = new Twig_Environment($loader, array(
 'cache' => CACHE_DIR,
 ));
 
 // TWIG FUNCTIONS TO HANDLE STATS GRAPHICS SIMPLY
 $twig->addFunction(
 new Twig_SimpleFunction('statsGraph', function ($graphName, $title, $event, $range, $width, $height) {
 $graph = null;
 switch (strtolower(trim($graphName))){
 case 'scatter':
 $graph = new \JLaso\SimpleStats\Graph\Scatter();
 break;
 case 'bar':
 $graph = new \JLaso\SimpleStats\Graph\Bar();
 break;
 default:
 return "Graph {$graph} not recognized in statsGraph twig function";
 }
 $file = uniqid($graphName.'-').'.svg';
 
 $graph->draw($title, $event, $range, $width, $height, CACHE_DIR.'/'.$file);
 
 return '<img src="cache/'.$file.'" alt="'.$title.'">';
 
 }, array('pre_escape' => 'html', 'is_safe' => array('html')))
 );
 
 $twig->addFunction(
 new Twig_SimpleFunction('statsCount', function ($event, $data) {
 return \JLaso\SimpleStats\Stats::getInstance()->getCountByData($event, $data);
 })
 );
 
 $twig->addFunction(
 new Twig_SimpleFunction('userIP', function () {
 return \JLaso\SimpleStats\Stats::getInstance()->getUserIP();
 })
 );
 
 $twig->addFunction(
 new Twig_SimpleFunction('home', function () {
 return basename(__FILE__);
 })
 );
 
 
 echo $twig->render('demo.html.twig');
 |