: 添加主题名接口,模板可直接调用

pull/33/merge
ruibaby 2018-09-22 21:30:57 +08:00
parent fa5867ed0e
commit 031c0acd5c
3 changed files with 10 additions and 0 deletions

View File

@ -1,5 +1,7 @@
package cc.ryanc.halo.config; package cc.ryanc.halo.config;
import cc.ryanc.halo.model.dto.HaloConst;
import cc.ryanc.halo.model.enums.BlogPropertiesEnum;
import cc.ryanc.halo.model.tag.ArticleTagDirective; import cc.ryanc.halo.model.tag.ArticleTagDirective;
import cc.ryanc.halo.model.tag.CommonTagDirective; import cc.ryanc.halo.model.tag.CommonTagDirective;
import cc.ryanc.halo.service.OptionsService; import cc.ryanc.halo.service.OptionsService;
@ -46,6 +48,7 @@ public class FreeMarkerConfig {
configuration.setSharedVariable("articleTag", articleTagDirective); configuration.setSharedVariable("articleTag", articleTagDirective);
configuration.setSharedVariable("options", optionsService.findAllOptions()); configuration.setSharedVariable("options", optionsService.findAllOptions());
configuration.setSharedVariable("user", userService.findUser()); configuration.setSharedVariable("user", userService.findUser());
configuration.setSharedVariable("themeName", HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp()));
} catch (TemplateModelException e) { } catch (TemplateModelException e) {
log.error("自定义标签加载失败:{}", e.getMessage()); log.error("自定义标签加载失败:{}", e.getMessage());
} }

View File

@ -1,5 +1,7 @@
package cc.ryanc.halo.model.tag; package cc.ryanc.halo.model.tag;
import cc.ryanc.halo.model.dto.HaloConst;
import cc.ryanc.halo.model.enums.BlogPropertiesEnum;
import cc.ryanc.halo.service.*; import cc.ryanc.halo.service.*;
import freemarker.core.Environment; import freemarker.core.Environment;
import freemarker.template.*; import freemarker.template.*;
@ -58,6 +60,9 @@ public class CommonTagDirective implements TemplateDirectiveModel {
case "newComments": case "newComments":
environment.setVariable("newComments", builder.build().wrap(commentService.findAllComments(1))); environment.setVariable("newComments", builder.build().wrap(commentService.findAllComments(1)));
break; break;
case "themeName":
environment.setVariable("themeName", builder.build().wrap(HaloConst.OPTIONS.get(BlogPropertiesEnum.THEME.getProp())));
break;
default: default:
break; break;
} }

View File

@ -90,6 +90,8 @@ public class ThemeController extends BaseController {
optionsService.saveOption(BlogPropertiesEnum.THEME.getProp(), siteTheme); optionsService.saveOption(BlogPropertiesEnum.THEME.getProp(), siteTheme);
//设置主题 //设置主题
BaseController.THEME = siteTheme; BaseController.THEME = siteTheme;
HaloConst.OPTIONS.clear();
HaloConst.OPTIONS = optionsService.findAllOptions();
log.info("已将主题改变为:{}", siteTheme); log.info("已将主题改变为:{}", siteTheme);
logsService.saveByLogs( logsService.saveByLogs(
new Logs(LogsRecord.CHANGE_THEME, "更换为" + siteTheme, ServletUtil.getClientIP(request), DateUtil.date()) new Logs(LogsRecord.CHANGE_THEME, "更换为" + siteTheme, ServletUtil.getClientIP(request), DateUtil.date())