mirror of https://github.com/halo-dev/halo
parent
a05c74ae38
commit
dccd213e72
|
@ -109,13 +109,17 @@ public class ContentContentController {
|
|||
Model model) {
|
||||
if (optionService.getArchivesPrefix().equals(prefix)) {
|
||||
return postModel.archives(page, model);
|
||||
} else if (optionService.getJournalsPrefix().equals(prefix)) {
|
||||
return journalModel.list(page, model);
|
||||
} else if (optionService.getPhotosPrefix().equals(prefix)) {
|
||||
return photoModel.list(page, model);
|
||||
} else {
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
if (optionService.getJournalsPrefix().equals(prefix)) {
|
||||
return journalModel.list(page, model);
|
||||
}
|
||||
|
||||
if (optionService.getPhotosPrefix().equals(prefix)) {
|
||||
return photoModel.list(page, model);
|
||||
}
|
||||
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
@GetMapping("{prefix}/{slug}")
|
||||
|
@ -124,23 +128,36 @@ public class ContentContentController {
|
|||
@RequestParam(value = "token", required = false) String token,
|
||||
Model model) {
|
||||
PostPermalinkType postPermalinkType = optionService.getPostPermalinkType();
|
||||
if (optionService.getArchivesPrefix().equals(prefix)) {
|
||||
if (postPermalinkType.equals(PostPermalinkType.DEFAULT)) {
|
||||
Post post = postService.getBySlug(slug);
|
||||
return postModel.content(post, token, model);
|
||||
}
|
||||
if (postPermalinkType.equals(PostPermalinkType.ID_SLUG) && StringUtils.isNumeric(slug)) {
|
||||
Post post = postService.getById(Integer.parseInt(slug));
|
||||
return postModel.content(post, token, model);
|
||||
}
|
||||
}
|
||||
|
||||
if (postPermalinkType.equals(PostPermalinkType.DEFAULT) && optionService.getArchivesPrefix().equals(prefix)) {
|
||||
Post post = postService.getBySlug(slug);
|
||||
return postModel.content(post, token, model);
|
||||
} else if (postPermalinkType.equals(PostPermalinkType.YEAR) && prefix.length() == 4 && StringUtils.isNumeric(prefix)) {
|
||||
Post post = postService.getBy(Integer.parseInt(prefix), slug);
|
||||
return postModel.content(post, token, model);
|
||||
} else if (optionService.getSheetPrefix().equals(prefix)) {
|
||||
if (optionService.getSheetPrefix().equals(prefix)) {
|
||||
Sheet sheet = sheetService.getBySlug(slug);
|
||||
return sheetModel.content(sheet, token, model);
|
||||
} else if (optionService.getCategoriesPrefix().equals(prefix)) {
|
||||
return categoryModel.listPost(model, slug, 1);
|
||||
} else if (optionService.getTagsPrefix().equals(prefix)) {
|
||||
return tagModel.listPost(model, slug, 1);
|
||||
} else {
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
if (optionService.getCategoriesPrefix().equals(prefix)) {
|
||||
return categoryModel.listPost(model, slug, 1);
|
||||
}
|
||||
|
||||
if (optionService.getTagsPrefix().equals(prefix)) {
|
||||
return tagModel.listPost(model, slug, 1);
|
||||
}
|
||||
|
||||
if (postPermalinkType.equals(PostPermalinkType.YEAR) && prefix.length() == 4 && StringUtils.isNumeric(prefix)) {
|
||||
Post post = postService.getBy(Integer.parseInt(prefix), slug);
|
||||
return postModel.content(post, token, model);
|
||||
}
|
||||
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
@GetMapping("{prefix}/{slug}/page/{page:\\d+}")
|
||||
|
@ -150,11 +167,13 @@ public class ContentContentController {
|
|||
Model model) {
|
||||
if (optionService.getCategoriesPrefix().equals(prefix)) {
|
||||
return categoryModel.listPost(model, slug, page);
|
||||
} else if (optionService.getTagsPrefix().equals(prefix)) {
|
||||
return tagModel.listPost(model, slug, page);
|
||||
} else {
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
if (optionService.getTagsPrefix().equals(prefix)) {
|
||||
return tagModel.listPost(model, slug, page);
|
||||
}
|
||||
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
@GetMapping("{year:\\d+}/{month:\\d+}/{slug}")
|
||||
|
@ -167,9 +186,9 @@ public class ContentContentController {
|
|||
if (postPermalinkType.equals(PostPermalinkType.DATE)) {
|
||||
Post post = postService.getBy(year, month, slug);
|
||||
return postModel.content(post, token, model);
|
||||
} else {
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
@GetMapping("{year:\\d+}/{month:\\d+}/{day:\\d+}/{slug}")
|
||||
|
@ -183,9 +202,9 @@ public class ContentContentController {
|
|||
if (postPermalinkType.equals(PostPermalinkType.DAY)) {
|
||||
Post post = postService.getBy(year, month, day, slug);
|
||||
return postModel.content(post, token, model);
|
||||
} else {
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
throw new NotFoundException("Not Found");
|
||||
}
|
||||
|
||||
@PostMapping(value = "archives/{slug:.*}/password")
|
||||
|
|
|
@ -31,7 +31,12 @@ public enum PostPermalinkType implements ValueEnum<Integer> {
|
|||
/**
|
||||
* /1970/${slug}
|
||||
*/
|
||||
YEAR(4);
|
||||
YEAR(4),
|
||||
|
||||
/**
|
||||
* archives/${id}
|
||||
*/
|
||||
ID_SLUG(5);
|
||||
|
||||
private final Integer value;
|
||||
|
||||
|
|
|
@ -158,6 +158,11 @@ public class PostCommentServiceImpl extends BaseCommentServiceImpl<PostComment>
|
|||
.append(URL_SEPARATOR)
|
||||
.append(post.getSlug())
|
||||
.append(pathSuffix);
|
||||
} else if (permalinkType.equals(PostPermalinkType.ID_SLUG)) {
|
||||
fullPath.append(archivesPrefix)
|
||||
.append(URL_SEPARATOR)
|
||||
.append(post.getId())
|
||||
.append(pathSuffix);
|
||||
}
|
||||
|
||||
post.setFullPath(fullPath.toString());
|
||||
|
|
|
@ -872,6 +872,11 @@ public class PostServiceImpl extends BasePostServiceImpl<Post> implements PostSe
|
|||
.append(URL_SEPARATOR)
|
||||
.append(post.getSlug())
|
||||
.append(pathSuffix);
|
||||
} else if (permalinkType.equals(PostPermalinkType.ID_SLUG)) {
|
||||
fullPath.append(archivesPrefix)
|
||||
.append(URL_SEPARATOR)
|
||||
.append(post.getId())
|
||||
.append(pathSuffix);
|
||||
}
|
||||
return fullPath.toString();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue