This commit is contained in:
xing 2023-03-19 22:14:42 +08:00
parent e7ea2bf334
commit 26bdcb44ac
2 changed files with 18 additions and 18 deletions

View File

@ -193,19 +193,15 @@ func RenderedHtml(t *template.Template, data map[string]any) (r string, err erro
return
}
func BuildOptions[T any, K comparable](a []T, selected K, fn func(T) (K, any), attr ...string) string {
func BuildOptions[T any, K comparable](a []T, selected K, fn func(T) (K, any, string)) string {
s := strings2.NewBuilder()
att := ""
if len(attr) > 0 {
att = strings.Join(attr, " ")
}
for _, t := range a {
k, v := fn(t)
k, v, attr := fn(t)
ss := ""
if k == selected {
ss = "selected"
}
s.Sprintf(`<option %s %s value="%v">%v</option>`, ss, att, v, k)
s.Sprintf(`<option %s %s value="%v">%v</option>`, ss, attr, v, k)
}
return s.String()
}

View File

@ -84,16 +84,27 @@ func categoryUL(h *wp.Handle, args map[string]string, conf map[any]any, categori
s := str.NewBuilder()
s.WriteString("<ul>\n")
isCount := conf["count"].(int64)
currentCate := models.TermsMy{}
if h.Scene() == constraints.Category {
cat := h.C.Param("category")
_, currentCate = slice.SearchFirst(categories, func(my models.TermsMy) bool {
return cat == my.Name
})
}
if conf["hierarchical"].(int64) == 0 {
for _, category := range categories {
count := ""
if isCount != 0 {
count = fmt.Sprintf("(%d)", category.Count)
}
s.Sprintf(` <li class="cat-item cat-item-%d">
current := ""
if category.TermTaxonomyId == currentCate.TermTaxonomyId {
current = "current-cat"
}
s.Sprintf(` <li class="cat-item cat-item-%d %s">
<a href="/p/category/%s">%s %s</a>
</li>
`, category.Terms.TermId, category.Name, category.Name, count)
`, category.Terms.TermId, current, category.Name, category.Name, count)
}
} else {
@ -101,16 +112,9 @@ func categoryUL(h *wp.Handle, args map[string]string, conf map[any]any, categori
return cate.TermTaxonomyId, cate.Parent
})
cate := &tree.Node[models.TermsMy, uint64]{Data: models.TermsMy{}}
if h.Scene() == constraints.Category {
cat := h.C.Param("category")
i, ca := slice.SearchFirst(categories, func(my models.TermsMy) bool {
return cat == my.Name
})
if i > 0 {
cate = m[ca.TermTaxonomyId]
}
if currentCate.TermTaxonomyId > 0 {
cate = m[currentCate.TermTaxonomyId]
}
r := m[0]
categoryLi(r, cate, tree.Ancestor(m, 0, cate), isCount, s)
}