setTemplateDir(BASE_PATH . '/resources/views/' . self::getTheme($user) . '/'); //设置模板文件存放目录 $smarty->setCompileDir(BASE_PATH . '/storage/framework/smarty/compile/'); //设置生成文件存放目录 $smarty->setCacheDir(BASE_PATH . '/storage/framework/smarty/cache/'); //设置缓存文件存放目录 // add config $smarty->assign('config', self::getConfig()); $smarty->assign('public_setting', Config::getPublicConfig()); $smarty->assign('user', $user); return $smarty; } public static function getTwig(): Environment { $loader = new FilesystemLoader(BASE_PATH . '/resources/views/' . self::getTheme($user) . '/'); $twig = new Environment($loader, [ 'cache' => BASE_PATH . '/storage/framework/twig/cache/', ]); $twig->addGlobal('config', self::getConfig()); $twig->addGlobal('public_setting', Config::getPublicConfig()); $twig->addGlobal('user', $user); return $twig; } public static function getTheme($user): string { if ($user->isLogin) { $theme = $user->theme; } else { $theme = $_ENV['theme']; } return $theme; } public static function getConfig(): array { return [ 'appName' => $_ENV['appName'], 'baseUrl' => $_ENV['baseUrl'], 'jump_delay' => $_ENV['jump_delay'], 'enable_kill' => $_ENV['enable_kill'], 'enable_change_email' => $_ENV['enable_change_email'], 'enable_r2_client_download' => $_ENV['enable_r2_client_download'], 'jsdelivr_url' => $_ENV['jsdelivr_url'], ]; } }