修复bug 完善代码
This commit is contained in:
parent
55a9e90ec9
commit
b495dda30f
@ -32,7 +32,7 @@ func Detail(c *gin.Context) {
|
|||||||
"post": post,
|
"post": post,
|
||||||
}
|
}
|
||||||
isApproveComment := false
|
isApproveComment := false
|
||||||
status := plugins.Ok
|
stats := plugins.Ok
|
||||||
pw := sessions.Default(c).Get("post_password")
|
pw := sessions.Default(c).Get("post_password")
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -40,7 +40,7 @@ func Detail(c *gin.Context) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
code = http.StatusNotFound
|
code = http.StatusNotFound
|
||||||
c.Error(err)
|
c.Error(err)
|
||||||
status = plugins.Error
|
stats = plugins.Error
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if isApproveComment == true {
|
if isApproveComment == true {
|
||||||
@ -54,7 +54,7 @@ func Detail(c *gin.Context) {
|
|||||||
Password: "",
|
Password: "",
|
||||||
Scene: plugins.Detail,
|
Scene: plugins.Detail,
|
||||||
Code: code,
|
Code: code,
|
||||||
Stats: status,
|
Stats: stats,
|
||||||
})
|
})
|
||||||
}()
|
}()
|
||||||
id := str.ToInteger[uint64](c.Param("id"), 0)
|
id := str.ToInteger[uint64](c.Param("id"), 0)
|
||||||
@ -62,10 +62,12 @@ func Detail(c *gin.Context) {
|
|||||||
maxId, err := cache.GetMaxPostId(c)
|
maxId, err := cache.GetMaxPostId(c)
|
||||||
logs.ErrPrintln(err, "get max post id")
|
logs.ErrPrintln(err, "get max post id")
|
||||||
if id > maxId || id <= 0 || err != nil {
|
if id > maxId || id <= 0 || err != nil {
|
||||||
|
stats = plugins.Empty404
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
post, err = cache.GetPostById(c, id)
|
post, err = cache.GetPostById(c, id)
|
||||||
if post.Id == 0 || err != nil || post.PostStatus != "publish" {
|
if post.Id == 0 || err != nil || post.PostStatus != "publish" {
|
||||||
|
stats = plugins.Empty404
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
showComment := false
|
showComment := false
|
||||||
|
@ -185,7 +185,10 @@ func (h *indexHandle) parseParams() (err error) {
|
|||||||
})
|
})
|
||||||
h.setTitleLR(h.category, wpconfig.Options.Value("blogname"))
|
h.setTitleLR(h.category, wpconfig.Options.Value("blogname"))
|
||||||
}
|
}
|
||||||
s := h.c.Query("s")
|
s, ok := h.c.GetQuery("s")
|
||||||
|
if ok {
|
||||||
|
h.scene = plugins.Search
|
||||||
|
}
|
||||||
if s != "" && strings.Replace(s, " ", "", -1) != "" {
|
if s != "" && strings.Replace(s, " ", "", -1) != "" {
|
||||||
q := str.Join("%", s, "%")
|
q := str.Join("%", s, "%")
|
||||||
h.where = append(h.where, []string{
|
h.where = append(h.where, []string{
|
||||||
@ -194,7 +197,7 @@ func (h *indexHandle) parseParams() (err error) {
|
|||||||
"or", "post_excerpt", "like", q, "",
|
"or", "post_excerpt", "like", q, "",
|
||||||
}, []string{"post_password", ""})
|
}, []string{"post_password", ""})
|
||||||
h.postType = append(h.postType, "page", "attachment")
|
h.postType = append(h.postType, "page", "attachment")
|
||||||
h.header = fmt.Sprintf("%s的搜索结果", s)
|
h.header = fmt.Sprintf("<span>%s</span>的搜索结果", s)
|
||||||
h.setTitleLR(str.Join(`"`, s, `"`, "的搜索结果"), wpconfig.Options.Value("blogname"))
|
h.setTitleLR(str.Join(`"`, s, `"`, "的搜索结果"), wpconfig.Options.Value("blogname"))
|
||||||
h.search = s
|
h.search = s
|
||||||
h.scene = plugins.Search
|
h.scene = plugins.Search
|
||||||
@ -229,8 +232,6 @@ func Index(c *gin.Context) {
|
|||||||
"recentPosts": recent,
|
"recentPosts": recent,
|
||||||
"archives": archive,
|
"archives": archive,
|
||||||
"categories": categoryItems,
|
"categories": categoryItems,
|
||||||
"search": h.search,
|
|
||||||
"header": h.header,
|
|
||||||
"recentComments": recentComments,
|
"recentComments": recentComments,
|
||||||
"posts": posts,
|
"posts": posts,
|
||||||
}
|
}
|
||||||
@ -266,6 +267,8 @@ func Index(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
ginH["title"] = h.getTitle()
|
ginH["title"] = h.getTitle()
|
||||||
|
ginH["search"] = h.search
|
||||||
|
ginH["header"] = h.header
|
||||||
if c.Param("month") != "" {
|
if c.Param("month") != "" {
|
||||||
posts, totalRaw, err = cache.GetMonthPostIds(c, c.Param("year"), c.Param("month"), h.page, h.pageSize, h.order)
|
posts, totalRaw, err = cache.GetMonthPostIds(c, c.Param("year"), c.Param("month"), h.page, h.pageSize, h.order)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
这儿似乎什么都没有,试试搜索?
|
这儿似乎什么都没有,试试搜索?
|
||||||
{{end}}
|
{{end}}
|
||||||
</p>
|
</p>
|
||||||
<form role="search" method="get" class="search-form" action="https://www.xloyy.com/">
|
<form role="search" method="get" class="search-form" action="/">
|
||||||
<label>
|
<label>
|
||||||
<span class="screen-reader-text">搜索:</span>
|
<span class="screen-reader-text">搜索:</span>
|
||||||
<input type="search" class="search-field" placeholder="搜索…" value="{{.search}}" name="s">
|
<input type="search" class="search-field" placeholder="搜索…" value="{{.search}}" name="s">
|
||||||
|
68
internal/theme/twentyfifteen/twentyfifteen.go
Normal file
68
internal/theme/twentyfifteen/twentyfifteen.go
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package twentyfifteen
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
|
"github.com/fthvgb1/wp-go/internal/pkg/models"
|
||||||
|
"github.com/fthvgb1/wp-go/internal/plugins"
|
||||||
|
"github.com/fthvgb1/wp-go/internal/theme/common"
|
||||||
|
"github.com/fthvgb1/wp-go/plugin/pagination"
|
||||||
|
)
|
||||||
|
|
||||||
|
const ThemeName = "twentyfifteen"
|
||||||
|
|
||||||
|
type handle struct {
|
||||||
|
common.Handle
|
||||||
|
templ string
|
||||||
|
}
|
||||||
|
|
||||||
|
func Hook(h2 common.Handle) {
|
||||||
|
h := handle{
|
||||||
|
Handle: h2,
|
||||||
|
templ: "twentyfifteen/posts/index.gohtml",
|
||||||
|
}
|
||||||
|
//h.GinH["HeaderImage"] = h.getHeaderImage(h.C)
|
||||||
|
if h.Stats == plugins.Empty404 {
|
||||||
|
h.C.HTML(h.Code, h.templ, h.GinH)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if h.Scene == plugins.Detail {
|
||||||
|
h.Detail()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
h.Index()
|
||||||
|
}
|
||||||
|
|
||||||
|
var plugin = common.Plugins()
|
||||||
|
|
||||||
|
func (h handle) Index() {
|
||||||
|
if h.Stats != plugins.Empty404 {
|
||||||
|
|
||||||
|
h.GinH["posts"] = slice.Map(
|
||||||
|
h.GinH["posts"].([]models.Posts),
|
||||||
|
common.PluginFn[models.Posts](plugin, h.Handle, common.DigestsAndOthers(h.C)))
|
||||||
|
|
||||||
|
p, ok := h.GinH["pagination"]
|
||||||
|
if ok {
|
||||||
|
pp, ok := p.(pagination.ParsePagination)
|
||||||
|
if ok {
|
||||||
|
h.GinH["pagination"] = pagination.Paginate(plugins.TwentyFifteenPagination(), pp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//h.GinH["bodyClass"] = h.bodyClass()
|
||||||
|
h.C.HTML(h.Code, h.templ, h.GinH)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h handle) Detail() {
|
||||||
|
//h.GinH["bodyClass"] = h.bodyClass()
|
||||||
|
//host, _ := wpconfig.Options.Load("siteurl")
|
||||||
|
if h.GinH["comments"] != nil {
|
||||||
|
comments := h.GinH["comments"].([]models.Comments)
|
||||||
|
dep := h.GinH["maxDep"].(int)
|
||||||
|
h.GinH["comments"] = plugins.FormatComments(h.C, plugins.CommentRender(), comments, dep)
|
||||||
|
}
|
||||||
|
|
||||||
|
h.templ = "twentyfifteen/posts/detail.gohtml"
|
||||||
|
h.C.HTML(h.Code, h.templ, h.GinH)
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
{{define "layout/empty"}}
|
{{define "layout/empty"}}
|
||||||
<section id="primary" class="content-area">
|
<div class="wrap">
|
||||||
|
<div id="primary" class="content-area">
|
||||||
<main id="main" class="site-main">
|
<main id="main" class="site-main">
|
||||||
|
<section class="error-404 not-found">
|
||||||
<section class="no-results not-found">
|
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<h1 class="page-title">
|
<h1 class="page-title">
|
||||||
{{if .search}}
|
{{if .search}}
|
||||||
@ -21,17 +21,28 @@
|
|||||||
这儿似乎什么都没有,试试搜索?
|
这儿似乎什么都没有,试试搜索?
|
||||||
{{end}}
|
{{end}}
|
||||||
</p>
|
</p>
|
||||||
<form role="search" method="get" class="search-form" action="https://www.xloyy.com/">
|
<form role="search" method="get" class="search-form" action="/">
|
||||||
<label>
|
<label for="search-form-1">
|
||||||
<span class="screen-reader-text">搜索:</span>
|
<span class="screen-reader-text">搜索:</span>
|
||||||
<input type="search" class="search-field" placeholder="搜索…" value="{{.search}}" name="s">
|
|
||||||
</label>
|
</label>
|
||||||
<input type="submit" class="search-submit screen-reader-text" value="搜索">
|
<input type="search" id="search-form-1" class="search-field" placeholder="搜索…" value="{{.search}}" name="s">
|
||||||
|
<button type="submit" class="search-submit">
|
||||||
|
<svg class="icon icon-search" aria-hidden="true" role="img"> <use href="#icon-search" xlink:href="#icon-search"></use> </svg>
|
||||||
|
<span class="screen-reader-text">搜索</span>
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div><!-- .page-content -->
|
</div><!-- .page-content -->
|
||||||
</section><!-- .no-results -->
|
</section><!-- .no-results -->
|
||||||
|
|
||||||
</main><!-- .site-main -->
|
</main><!-- .site-main -->
|
||||||
</section>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{if .search }}
|
||||||
|
<aside id="secondary" class="widget-area" aria-label="博客边栏">
|
||||||
|
{{template "layout/sidebar" .}}
|
||||||
|
</aside>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
</div>
|
||||||
{{end}}
|
{{end}}
|
@ -4,7 +4,7 @@
|
|||||||
<label for="search-form-1">
|
<label for="search-form-1">
|
||||||
<span class="screen-reader-text">搜索:</span>
|
<span class="screen-reader-text">搜索:</span>
|
||||||
</label>
|
</label>
|
||||||
<input type="search" id="search-form-1" class="search-field" placeholder="搜索…" value="" name="s">
|
<input type="search" id="search-form-1" class="search-field" placeholder="搜索…" value="{{.search}}" name="s">
|
||||||
<button type="submit" class="search-submit">
|
<button type="submit" class="search-submit">
|
||||||
<svg class="icon icon-search" aria-hidden="true" role="img">
|
<svg class="icon icon-search" aria-hidden="true" role="img">
|
||||||
<use href="#icon-search" xlink:href="#icon-search"></use>
|
<use href="#icon-search" xlink:href="#icon-search"></use>
|
||||||
|
@ -7,22 +7,15 @@
|
|||||||
|
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
|
{{if .header}}
|
||||||
|
<h1 class="page-title">{{.header | unescaped}}</h1>
|
||||||
|
{{else}}
|
||||||
<h2 class="page-title">文章</h2>
|
<h2 class="page-title">文章</h2>
|
||||||
|
{{end}}
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div id="primary" class="content-area">
|
<div id="primary" class="content-area">
|
||||||
<main id="main" class="site-main">
|
<main id="main" class="site-main">
|
||||||
{{if .header}}
|
|
||||||
<header class="page-header">
|
|
||||||
<h1 class="page-title">
|
|
||||||
{{if .search}}
|
|
||||||
{{.header}}
|
|
||||||
{{else}}
|
|
||||||
{{.header |unescaped}}
|
|
||||||
{{end}}
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
{{end}}
|
|
||||||
{{ range $k,$v:=.posts}}
|
{{ range $k,$v:=.posts}}
|
||||||
<article id="post-{{$v.Id}}"
|
<article id="post-{{$v.Id}}"
|
||||||
class="post-{{$v.Id}} post {{if $v.Thumbnail.Path}}has-post-thumbnail{{end}} type-post status-publish format-standard hentry category">
|
class="post-{{$v.Id}} post {{if $v.Thumbnail.Path}}has-post-thumbnail{{end}} type-post status-publish format-standard hentry category">
|
||||||
|
@ -37,10 +37,6 @@ func Hook(cHandle common.Handle) {
|
|||||||
templ: "twentyseventeen/posts/index.gohtml",
|
templ: "twentyseventeen/posts/index.gohtml",
|
||||||
}
|
}
|
||||||
h.GinH["HeaderImage"] = h.getHeaderImage(h.C)
|
h.GinH["HeaderImage"] = h.getHeaderImage(h.C)
|
||||||
if h.Stats == plugins.Empty404 {
|
|
||||||
h.C.HTML(h.Code, h.templ, h.GinH)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if h.Scene == plugins.Detail {
|
if h.Scene == plugins.Detail {
|
||||||
h.Detail()
|
h.Detail()
|
||||||
return
|
return
|
||||||
@ -75,6 +71,10 @@ func (h handle) Index() {
|
|||||||
func (h handle) Detail() {
|
func (h handle) Detail() {
|
||||||
post := h.GinH["post"].(models.Posts)
|
post := h.GinH["post"].(models.Posts)
|
||||||
h.GinH["bodyClass"] = h.bodyClass()
|
h.GinH["bodyClass"] = h.bodyClass()
|
||||||
|
if h.Stats == plugins.Empty404 {
|
||||||
|
h.C.HTML(h.Code, h.templ, h.GinH)
|
||||||
|
return
|
||||||
|
}
|
||||||
//host, _ := wpconfig.Options.Load("siteurl")
|
//host, _ := wpconfig.Options.Load("siteurl")
|
||||||
host := ""
|
host := ""
|
||||||
img := plugins.Thumbnail(post.Thumbnail.OriginAttachmentData, "thumbnail", host, "thumbnail", "post-thumbnail")
|
img := plugins.Thumbnail(post.Thumbnail.OriginAttachmentData, "thumbnail", host, "thumbnail", "post-thumbnail")
|
||||||
@ -84,13 +84,17 @@ func (h handle) Detail() {
|
|||||||
img.Srcset = fmt.Sprintf("%s %dw, %s", img.Path, img.Width, img.Srcset)
|
img.Srcset = fmt.Sprintf("%s %dw, %s", img.Path, img.Width, img.Srcset)
|
||||||
post.Thumbnail = img
|
post.Thumbnail = img
|
||||||
h.GinH["post"] = post
|
h.GinH["post"] = post
|
||||||
|
if h.GinH["comments"] != nil {
|
||||||
comments := h.GinH["comments"].([]models.Comments)
|
comments := h.GinH["comments"].([]models.Comments)
|
||||||
dep := h.GinH["maxDep"].(int)
|
dep := h.GinH["maxDep"].(int)
|
||||||
h.GinH["comments"] = plugins.FormatComments(h.C, comment{}, comments, dep)
|
h.GinH["comments"] = plugins.FormatComments(h.C, commentFormat, comments, dep)
|
||||||
|
}
|
||||||
h.templ = "twentyseventeen/posts/detail.gohtml"
|
h.templ = "twentyseventeen/posts/detail.gohtml"
|
||||||
h.C.HTML(h.Code, h.templ, h.GinH)
|
h.C.HTML(h.Code, h.templ, h.GinH)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var commentFormat = comment{}
|
||||||
|
|
||||||
type comment struct {
|
type comment struct {
|
||||||
plugins.CommonCommentFormat
|
plugins.CommonCommentFormat
|
||||||
}
|
}
|
||||||
@ -136,6 +140,9 @@ func (h handle) getHeaderImage(c *gin.Context) (r models.PostThumbnail) {
|
|||||||
|
|
||||||
func (h handle) bodyClass() string {
|
func (h handle) bodyClass() string {
|
||||||
s := ""
|
s := ""
|
||||||
|
if h.Stats == plugins.Empty404 {
|
||||||
|
return "error404"
|
||||||
|
}
|
||||||
switch h.Scene {
|
switch h.Scene {
|
||||||
case plugins.Search:
|
case plugins.Search:
|
||||||
s = "search-no-results"
|
s = "search-no-results"
|
||||||
|
Loading…
Reference in New Issue
Block a user