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

Function getSelectedNode

models/document_tree.go:100–117  ·  view source on GitHub ↗

使用递归的方式获取指定ID的最顶层ID

(array []*DocumentTree, selectedId int, level ...int)

Source from the content-addressed store, hash-verified

98
99// 使用递归的方式获取指定ID的最顶层ID
100func getSelectedNode(array []*DocumentTree, selectedId int, level ...int) int {
101 lv := 0
102 if len(level) > 0 {
103 lv = level[0]
104 }
105 if lv > 20 {
106 return 0
107 }
108 for _, item := range array {
109 if _, ok := item.ParentId.(string); ok && item.DocumentId == selectedId {
110 return item.DocumentId
111 } else if pid, ok := item.ParentId.(int); ok && item.DocumentId == selectedId {
112 lv++
113 return getSelectedNode(array, pid, lv)
114 }
115 }
116 return 0
117}
118
119func getDocumentTree(array []*DocumentTree, parentId int, selectedId int, selectedParentId int, buf *bytes.Buffer) {
120 buf.WriteString("<ul>")

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected