2015-04-06 21:57:17 +00:00
< ? php
/*
* Template Engine Wrapper
*/
namespace Sakura ;
class Templates {
// Engine container, template folder name and options
public static $_ENG ;
public static $_TPL ;
public static $_CFG ;
2015-04-06 22:19:04 +00:00
2015-04-06 22:01:32 +00:00
// Initialise templating engine and data
2015-04-06 21:57:17 +00:00
public static function init ( $template ) {
// Set template folder name
self :: $_TPL = $template ;
// Assign config path to a variable so we don't have to type it out twice
2015-05-11 22:20:19 +00:00
$confPath = ROOT . '_sakura/templates/' . self :: $_TPL . '/template.ini' ;
2015-04-06 21:57:17 +00:00
// Check if the configuration file exists
if ( ! file_exists ( $confPath ))
trigger_error ( 'Template configuration does not exist' , E_USER_ERROR );
// Parse and store the configuration
2015-05-11 22:20:19 +00:00
self :: $_CFG = parse_ini_file ( $confPath , true );
2015-04-06 21:57:17 +00:00
// Make sure we're not using a manage template for the main site or the other way around
2015-05-11 22:20:19 +00:00
if (( bool ) self :: $_CFG [ 'manage' ][ 'mode' ] != ( bool ) Main :: $_MANAGE_MODE )
2015-04-12 13:33:59 +00:00
trigger_error ( 'Incorrect template type' , E_USER_ERROR );
2015-04-06 21:57:17 +00:00
// Start Twig
self :: twigLoader ();
}
// Twig Loader
private static function twigLoader () {
// Initialise Twig Filesystem Loader
2015-04-18 18:26:52 +00:00
$twigLoader = new \Twig_Loader_Filesystem ( ROOT . '_sakura/templates/' . self :: $_TPL );
2015-04-06 21:57:17 +00:00
// And now actually initialise the templating engine
self :: $_ENG = new \Twig_Environment ( $twigLoader , array (
// 'cache' => SATOKO_ROOT_DIRECTORY. self::getConfig('path', 'cache') // Set cache directory
));
// Load String template loader
self :: $_ENG -> addExtension ( new \Twig_Extension_StringLoader ());
}
// Render template
public static function render ( $file , $tags ) {
return self :: $_ENG -> render ( $file , $tags );
}
}