MCPcopy Index your code
hub / github.com/TruthHun/BookStack / NewPaginations

Function NewPaginations

utils/util.go:646–748  ·  view source on GitHub ↗

分页函数(这个分页函数不具有通用性) rollPage:展示分页的个数 totalRows:总记录 currentPage:每页显示记录数 urlPrefix:url链接前缀 urlParams:url键值对参数

(rollPage, totalRows, listRows, currentPage int, urlPrefix string, urlSuffix string, urlParams ...interface{})

Source from the content-addressed store, hash-verified

644// urlPrefix:url链接前缀
645// urlParams:url键值对参数
646func NewPaginations(rollPage, totalRows, listRows, currentPage int, urlPrefix string, urlSuffix string, urlParams ...interface{}) html1.HTML {
647 var (
648 htmlPage, path string
649 pages []int
650 params []string
651 )
652 //总页数
653 totalPage := totalRows / listRows
654 if totalRows%listRows > 0 {
655 totalPage += 1
656 }
657 //只有1页的时候,不分页
658 if totalPage < 2 {
659 return ""
660 }
661 paramsLen := len(urlParams)
662 if paramsLen > 0 {
663 if paramsLen%2 > 0 {
664 paramsLen = paramsLen - 1
665 }
666 for i := 0; i < paramsLen; {
667 key := strings.TrimSpace(fmt.Sprintf("%v", urlParams[i]))
668 val := strings.TrimSpace(fmt.Sprintf("%v", urlParams[i+1]))
669 //键存在,同时值不为0也不为空
670 if len(key) > 0 && len(val) > 0 && val != "0" {
671 params = append(params, key, val)
672 }
673 i = i + 2
674 }
675 }
676
677 path = strings.Trim(urlPrefix, "/")
678 if len(params) > 0 {
679 path = path + "/" + strings.Trim(strings.Join(params, "/"), "/")
680 }
681 //最后再处理一次“/”,是为了防止urlPrifix参数为空时,出现多余的“/”
682 path = "/" + strings.Trim(path, "/")
683
684 if currentPage > totalPage {
685 currentPage = totalPage
686 }
687 if currentPage < 1 {
688 currentPage = 1
689 }
690 index := 0
691 rp := rollPage * 2
692 for i := rp; i > 0; i-- {
693 p := currentPage + rollPage - i
694 if p > 0 && p <= totalPage {
695
696 pages = append(pages, p)
697 }
698 }
699 for k, v := range pages {
700 if v == currentPage {
701 index = k
702 }
703 }

Callers 15

IndexMethod · 0.92
CollectionMethod · 0.92
FollowMethod · 0.92
FansMethod · 0.92
IndexMethod · 0.92
StarMethod · 0.92
IndexMethod · 0.92
UsersMethod · 0.92
TagsMethod · 0.92
BooksMethod · 0.92
SubmitBookMethod · 0.92
VersionMethod · 0.92

Calls 1

appendFunction · 0.50

Tested by

no test coverage detected