use of com.blade.mvc.view.template.JetbrickTemplateEngine in project tale by otale.
the class WebContext method init.
@Override
public void init(BConfig bConfig, ServletContext sec) {
JetbrickTemplateEngine templateEngine = new JetbrickTemplateEngine();
List<String> macros = new ArrayList<>(8);
macros.add("/comm/macros.html");
// 扫描主题下面的所有自定义宏
String themeDir = AttachController.CLASSPATH + "templates/themes";
try {
themeDir = new URI(themeDir).getPath();
} catch (URISyntaxException e) {
e.printStackTrace();
}
File[] dir = new File(themeDir).listFiles();
for (File f : dir) {
if (f.isDirectory() && FileKit.exist(f.getPath() + "/macros.html")) {
String macroName = "/themes/" + f.getName() + "/macros.html";
macros.add(macroName);
}
}
StringBuffer macroBuf = new StringBuffer();
macros.forEach(s -> macroBuf.append(',').append(s));
templateEngine.addConfig("jetx.import.macros", macroBuf.substring(1));
GlobalResolver resolver = templateEngine.getGlobalResolver();
resolver.registerFunctions(Commons.class);
resolver.registerFunctions(Theme.class);
resolver.registerFunctions(AdminCommons.class);
resolver.registerTags(JetTag.class);
JetGlobalContext context = templateEngine.getGlobalContext();
context.set("version", bConfig.config().get("app.version", "v1.0"));
ViewSettings.$().templateEngine(templateEngine);
TaleConst.MAX_FILE_SIZE = bConfig.config().getInt("app.max-file-size", 20480);
TaleConst.AES_SALT = bConfig.config().get("app.salt", "012c456789abcdef");
TaleConst.OPTIONS.addAll(optionsService.getOptions());
String ips = TaleConst.OPTIONS.get(Types.BLOCK_IPS, "");
if (StringKit.isNotBlank(ips)) {
TaleConst.BLOCK_IPS.addAll(Arrays.asList(StringKit.split(ips, ",")));
}
if (FileKit.exist(AttachController.CLASSPATH + "install.lock")) {
TaleConst.INSTALL = Boolean.TRUE;
}
String db_rewrite = TaleConst.OPTIONS.get("rewrite_url", "");
if (db_rewrite.length() > 0) {
RewriteUtils.rewrite(db_rewrite);
}
BaseController.THEME = "themes/" + Commons.site_option("site_theme");
TaleConst.BCONF = bConfig.config();
}
use of com.blade.mvc.view.template.JetbrickTemplateEngine in project tale by otale.
the class Bootstrap method load.
@Override
public void load(Blade blade) {
JetbrickTemplateEngine templateEngine = new JetbrickTemplateEngine();
List<String> macros = new ArrayList<>(8);
macros.add(File.separatorChar + "comm" + File.separatorChar + "macros.html");
// 扫描主题下面的所有自定义宏
String themeDir = CLASSPATH + "templates" + File.separatorChar + "themes";
File[] dir = new File(themeDir).listFiles();
if (null != dir) {
for (File f : dir) {
if (f.isDirectory() && Files.exists(Paths.get(f.getPath() + File.separatorChar + "macros.html"))) {
String macroName = File.separatorChar + "themes" + File.separatorChar + f.getName() + File.separatorChar + "macros.html";
macros.add(macroName);
}
}
}
StringBuffer sbuf = new StringBuffer();
macros.forEach(s -> sbuf.append(',').append(s));
templateEngine.addConfig("jetx.import.macros", sbuf.substring(1));
GlobalResolver resolver = templateEngine.getGlobalResolver();
resolver.registerFunctions(Commons.class);
resolver.registerFunctions(Theme.class);
resolver.registerFunctions(AdminCommons.class);
resolver.registerTags(JetTag.class);
JetGlobalContext context = templateEngine.getGlobalContext();
context.set("version", environment.get("app.version", "v1.0"));
context.set("enableCdn", environment.getBoolean("app.enableCdn", false));
blade.templateEngine(templateEngine);
TaleConst.ENABLED_CDN = environment.getBoolean("app.enableCdn", false);
TaleConst.MAX_FILE_SIZE = environment.getInt("app.max-file-size", 20480);
TaleConst.OPTIONS.addAll(optionsService.getOptions());
String ips = TaleConst.OPTIONS.get(Types.BLOCK_IPS, "");
if (StringKit.isNotBlank(ips)) {
TaleConst.BLOCK_IPS.addAll(Arrays.asList(ips.split(",")));
}
if (Files.exists(Paths.get(CLASSPATH + "install.lock"))) {
TaleConst.INSTALLED = Boolean.TRUE;
}
String rememberToken = optionsService.getOption(OPTION_SAFE_REMEMBER_ME);
if (StringKit.isNotEmpty(rememberToken)) {
RememberMe rememberMe = JsonKit.formJson(rememberToken, RememberMe.class);
TaleConst.REMEMBER_TOKEN = rememberMe.getToken();
}
BaseController.THEME = "themes/" + Commons.site_option("site_theme");
TaleConst.BCONF = environment;
}
Aggregations