Search in sources :

Example 1 with JetbrickTemplateEngine

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();
}
Also used : JetGlobalContext(jetbrick.template.JetGlobalContext) ArrayList(java.util.ArrayList) GlobalResolver(jetbrick.template.resolver.GlobalResolver) JetbrickTemplateEngine(com.blade.mvc.view.template.JetbrickTemplateEngine) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) File(java.io.File)

Example 2 with JetbrickTemplateEngine

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;
}
Also used : JetGlobalContext(jetbrick.template.JetGlobalContext) RememberMe(com.tale.model.dto.RememberMe) ArrayList(java.util.ArrayList) GlobalResolver(jetbrick.template.resolver.GlobalResolver) JetbrickTemplateEngine(com.blade.mvc.view.template.JetbrickTemplateEngine) File(java.io.File)

Aggregations

JetbrickTemplateEngine (com.blade.mvc.view.template.JetbrickTemplateEngine)2 File (java.io.File)2 ArrayList (java.util.ArrayList)2 JetGlobalContext (jetbrick.template.JetGlobalContext)2 GlobalResolver (jetbrick.template.resolver.GlobalResolver)2 RememberMe (com.tale.model.dto.RememberMe)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1