diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java b/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java index e483cd739..42c28864d 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/BaseController.java @@ -20,7 +20,7 @@ public abstract class BaseController { protected Logger log = Logger.getLogger(getClass()); /** - * 根据主题名称渲染页面 + * 根据模板名称渲染页面 * * @param pageName pageName * @return 返回拼接好的模板路径 @@ -29,7 +29,23 @@ public abstract class BaseController { final StrBuilder themeStr = new StrBuilder("themes/"); themeStr.append(THEME); themeStr.append("/"); - return themeStr.append(pageName).toString(); + themeStr.append(pageName); + return themeStr.toString(); + } + + /** + * 根据主题以及模板名渲染页面 + * + * @param theme 主题 + * @param pageName 模板名 + * @return String + */ + public String render(String theme, String pageName) { + final StrBuilder themeStr = new StrBuilder("themes/"); + themeStr.append(theme); + themeStr.append("/"); + themeStr.append(pageName); + return themeStr.toString(); } /** diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java index 071dab368..3a79ddefa 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontIndexController.java @@ -17,6 +17,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import static cc.ryanc.halo.model.support.HaloConst.OPTIONS; import static org.springframework.data.domain.Sort.Direction.DESC; @@ -44,8 +45,9 @@ public class FrontIndexController extends BaseController { * @return 模板路径 */ @GetMapping - public String index(Model model) { - return this.index(model, 1, Sort.by(DESC, "postPriority").and(Sort.by(DESC, "postDate"))); + public String index(@RequestParam(value = "theme", defaultValue = "") String theme, + Model model) { + return this.index(model, theme, 1, Sort.by(DESC, "postPriority").and(Sort.by(DESC, "postDate"))); } /** @@ -57,6 +59,7 @@ public class FrontIndexController extends BaseController { */ @GetMapping(value = "page/{page}") public String index(Model model, + @RequestParam(value = "theme", defaultValue = "") String theme, @PathVariable(value = "page") Integer page, @SortDefault.SortDefaults({ @SortDefault(sort = "postPriority", direction = DESC), @@ -79,6 +82,9 @@ public class FrontIndexController extends BaseController { model.addAttribute("is_index", true); model.addAttribute("posts", posts); model.addAttribute("rainbow", rainbow); + if (StrUtil.isNotEmpty(theme)) { + return this.render(theme, "index"); + } return this.render("index"); } } diff --git a/src/main/resources/templates/admin/admin_theme.ftl b/src/main/resources/templates/admin/admin_theme.ftl index 2f4a45097..364939c14 100755 --- a/src/main/resources/templates/admin/admin_theme.ftl +++ b/src/main/resources/templates/admin/admin_theme.ftl @@ -27,6 +27,9 @@ font-size: 18px; line-height: 30px; } + .theme-title a{ + color: #000; + } .btn-delete:hover{ color: red; } @@ -52,7 +55,9 @@