public static function init($template_dir = null, $compiled_dir = null, $cache_dir = null) { if (self::$instance == null) { //echo "<p>init() called!</p>"; if ($template_dir != null) { self::$template_dir = $template_dir; } else { self::$template_dir = KX_ROOT . kxEnv::get("kx:templates:dir"); } $loader = new Twig_Loader_Filesystem(self::$template_dir); if ($cache_dir == null) { $cache_dir = KX_ROOT . kxEnv::get("kx:templates:cachedir"); } self::$instance = new Twig_Environment($loader, array('cache' => $cache_dir, 'auto_reload' => true, 'debug' => true)); // Load our extensions self::$instance->addExtension(new Twig_Extensions_Extension_I18n()); self::$instance->addExtension(new Twig_Extensions_Extension_kxEnv()); self::$instance->addExtension(new Twig_Extensions_Extension_DateFormat()); self::$instance->addExtension(new Twig_Extensions_Extension_Text()); self::$instance->addExtension(new Twig_Extensions_Extension_Round()); self::$instance->addExtension(new Twig_Extensions_Extension_Strip()); self::$instance->addExtension(new Twig_Extensions_Extension_Debug()); self::$instance->addExtension(new Twig_Extensions_Extension_PHP()); // Supply Twig with our GET/POST variables self::$data['_get'] = $_GET; self::$data['_post'] = $_POST; // Supply Twig with the default locale self::$data['locale'] = kxEnv::Get('kx:misc:locale'); // Are we in manage? Load up the manage wrapper if (IN_MANAGE) { self::$data['current_app'] = ""; if (KX_CURRENT_APP == "core") { // Load up some variables for tabbing/menu purposes if (isset(kxEnv::$request['app'])) { self::$data['current_app'] = kxEnv::$request['app']; } } else { if (KX_CURRENT_APP == "board") { if (kxEnv::$current_module == "posts") { self::$data['current_app'] = "posts"; } else { self::$data['current_app'] = "board"; } } } $baseurl = kxEnv::Get('kx:paths:main:path') . '/manage.php?sid=' . (isset(kxEnv::$request['sid']) ? kxEnv::$request['sid'] : '') . '&'; self::$data['base_url'] = $baseurl; // Get our manage username if (isset(kxEnv::$request['sid'])) { $result = kxDB::getinstance()->select('staff', 'stf')->fields('stf', array('user_name')); $result->innerJoin("manage_sessions", "ms", "ms.session_staff_id = stf.user_id"); self::assign('name', $result->condition('session_id', kxEnv::$request['sid'])->execute()->fetchField()); } } // else { // die('Not IN_MANAGE!'); //} } }