diff --git a/controllers/DocumentController.go b/controllers/DocumentController.go index 13bc4b0e..c9e341a0 100644 --- a/controllers/DocumentController.go +++ b/controllers/DocumentController.go @@ -68,10 +68,12 @@ func (c *DocumentController) Index() { c.Data["Description"] = utils.AutoSummary(doc.Release, 120) - // 获取评论、分页 - comments, count, _ := models.NewComment().QueryCommentByDocumentId(doc.DocumentId, 1, conf.PageSize, c.Member) - page := pagination.PageUtil(int(count), 1, conf.PageSize, comments) - c.Data["Page"] = page + if bookResult.IsDisplayComment { + // 获取评论、分页 + comments, count, _ := models.NewComment().QueryCommentByDocumentId(doc.DocumentId, 1, conf.PageSize, c.Member) + page := pagination.PageUtil(int(count), 1, conf.PageSize, comments) + c.Data["Page"] = page + } } } else { c.Data["Title"] = i18n.Tr(c.Lang, "blog.summary") @@ -154,13 +156,13 @@ func (c *DocumentController) Read() { if c.IsAjax() { var data struct { - DocId int `json:"doc_id"` - DocIdentify string `json:"doc_identify"` - DocTitle string `json:"doc_title"` - Body string `json:"body"` - Title string `json:"title"` - Version int64 `json:"version"` - ViewCount int `json:"view_count"` + DocId int `json:"doc_id"` + DocIdentify string `json:"doc_identify"` + DocTitle string `json:"doc_title"` + Body string `json:"body"` + Title string `json:"title"` + Version int64 `json:"version"` + ViewCount int `json:"view_count"` } data.DocId = doc.DocumentId data.DocIdentify = doc.Identify @@ -174,10 +176,12 @@ func (c *DocumentController) Read() { } else { c.Data["DocumentId"] = doc.DocumentId c.Data["DocIdentify"] = doc.Identify - // 获取评论、分页 - comments, count, _ := models.NewComment().QueryCommentByDocumentId(doc.DocumentId, 1, conf.PageSize, c.Member) - page := pagination.PageUtil(int(count), 1, conf.PageSize, comments) - c.Data["Page"] = page + if bookResult.IsDisplayComment { + // 获取评论、分页 + comments, count, _ := models.NewComment().QueryCommentByDocumentId(doc.DocumentId, 1, conf.PageSize, c.Member) + page := pagination.PageUtil(int(count), 1, conf.PageSize, comments) + c.Data["Page"] = page + } } tree, err := models.NewDocument().CreateDocumentTreeForHtml(bookResult.BookId, doc.DocumentId) diff --git a/go.mod b/go.mod index c6833120..3418db85 100644 --- a/go.mod +++ b/go.mod @@ -20,32 +20,9 @@ require ( require ( github.com/Unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8 // indirect github.com/andybalholm/cascadia v1.2.0 // indirect - github.com/beorn7/perks v1.0.1 // indirect github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect - github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/go-redis/redis/v7 v7.4.0 // indirect - github.com/go-sql-driver/mysql v1.5.0 // indirect - github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/golang/protobuf v1.4.2 // indirect - github.com/gomodule/redigo v2.0.0+incompatible // indirect - github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/lib/pq v1.7.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/mitchellh/mapstructure v1.3.3 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.7.0 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.10.0 // indirect - github.com/prometheus/procfs v0.1.3 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect - golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 // indirect - golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect - golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f // indirect - golang.org/x/text v0.3.3 // indirect - google.golang.org/protobuf v1.23.0 // indirect gopkg.in/asn1-ber.v1 v1.0.0-00010101000000-000000000000 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index 25c3c5b0..3eca6695 100644 --- a/go.sum +++ b/go.sum @@ -59,6 +59,7 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-redis/redis v6.14.2+incompatible h1:UE9pLhzmWf+xHNmZsoccjXosPicuiNaInPgym8nzfg0= github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4= github.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg= diff --git a/models/CommentModel.go b/models/CommentModel.go index 37b65f0a..1ada1c09 100644 --- a/models/CommentModel.go +++ b/models/CommentModel.go @@ -61,7 +61,7 @@ func (m *Comment) CanDelete(user_memberid int, user_bookrole conf.BookRole) bool } // 根据文档id查询文档评论 -func (m *Comment) QueryCommentByDocumentId(doc_id, page, pagesize int, member *Member) (comments []Comment, count int64, ret_page int) { +func (m *Comment) QueryCommentByDocumentId(doc_id, page, pagesize int, member *Member) (comments []*Comment, count int64, ret_page int) { doc, err := NewDocument().Find(doc_id) if err != nil { return @@ -69,22 +69,26 @@ func (m *Comment) QueryCommentByDocumentId(doc_id, page, pagesize int, member *M o := orm.NewOrm() count, _ = o.QueryTable(m.TableNameWithPrefix()).Filter("document_id", doc_id).Count() - if -1 == page { // 请求最后一页 + if -1 == page { // 请求最后一页 var total int = int(count) - if total % pagesize == 0 { + if total%pagesize == 0 { page = total / pagesize } else { - page = total / pagesize + 1 + page = total/pagesize + 1 } } offset := (page - 1) * pagesize ret_page = page o.QueryTable(m.TableNameWithPrefix()).Filter("document_id", doc_id).OrderBy("comment_date").Offset(offset).Limit(pagesize).All(&comments) - bookRole, _ := NewRelationship().FindForRoleId(doc.BookId, member.MemberId) + // 需要判断未登录的情况 + var bookRole conf.BookRole + if member != nil { + bookRole, _ = NewRelationship().FindForRoleId(doc.BookId, member.MemberId) + } for i := 0; i < len(comments); i++ { - comments[i].Index = (i + 1) + (page - 1) * pagesize - if comments[i].CanDelete(member.MemberId, bookRole) { + comments[i].Index = (i + 1) + (page-1)*pagesize + if member != nil && comments[i].CanDelete(member.MemberId, bookRole) { comments[i].ShowDel = 1 } } @@ -178,4 +182,4 @@ func (m *Comment) Find(id int, cols ...string) (*Comment, error) { return m, err } return m, nil -} \ No newline at end of file +} diff --git a/static/js/kancloud.js b/static/js/kancloud.js index df7ba3de..75a60799 100644 --- a/static/js/kancloud.js +++ b/static/js/kancloud.js @@ -60,6 +60,9 @@ function timeFormat($time) { // 点击翻页 function pageClicked($page, $docid) { + if (!window.IS_DISPLAY_COMMENT) { + return; + } $("#articleComment").removeClass('not-show-comment'); $.ajax({ url : "/comment/lists?page=" + $page + "&docid=" + $docid, diff --git a/views/document/default_read.tpl b/views/document/default_read.tpl index 5e6ec3d0..3f85a3de 100644 --- a/views/document/default_read.tpl +++ b/views/document/default_read.tpl @@ -32,6 +32,7 @@ window.IS_ENABLE_IFRAME = '{{conf "enable_iframe" }}' === 'true'; window.BASE_URL = '{{urlfor "HomeController.Index" }}'; window.IS_DOCUMENT_INDEX = '{{if .IS_DOCUMENT_INDEX}}true{{end}}' === 'true'; + window.IS_DISPLAY_COMMENT = '{{if .Model.IsDisplayComment}}true{{end}}' === 'true';