package back import ( "html/template" "strconv" ) // Для быстрой вставки меню в шаблон HTML var templateMenu template.HTML var templateMenuTop template.HTML // Для быстрой вставки меню в шаблон HTML (включая неактивные пункты) var templateMenuAll template.HTML var templateMenuAllTop template.HTML // Для быстрой выдачи меню на пост запрос var buildedMenu []menu var buildedMenuTop []menu // Для быстрой выдачи меню на пост запрос (включая неактивные пункты) var buildedMenuAll []menu var buildedMenuAllTop []menu func prepareMenu() { m := menu{} mAll := menu{} m.Categoty = "__main" e := m.Select() if e != nil { logger.Println(e) return } mAll.Categoty = "__main" e = mAll.SelectAll() if e != nil { logger.Println(e) return } buildedMenu = make([]menu, 0) templateMenu = template.HTML("") for i := 0; i < len(m.Rows); i++ { if !m.Rows[i].Parent.Valid { buildMenu(m.Rows, &buildedMenu, m.Rows[i]) } } buildedMenuAll = make([]menu, 0) templateMenuAll = template.HTML("") for i := 0; i < len(mAll.Rows); i++ { if !mAll.Rows[i].Parent.Valid { buildMenuAll(mAll.Rows, &buildedMenuAll, mAll.Rows[i]) } } // TOP MENU BUILD m = menu{} mAll = menu{} m.Categoty = "__top" e = m.Select() if e != nil { logger.Println(e) return } mAll.Categoty = "__top" e = mAll.SelectAll() if e != nil { logger.Println(e) return } buildedMenuTop = make([]menu, 0) templateMenuTop = template.HTML("") for i := 0; i < len(m.Rows); i++ { if !m.Rows[i].Parent.Valid { buildMenuTop(m.Rows, &buildedMenuTop, m.Rows[i]) } } buildedMenuAllTop = make([]menu, 0) templateMenuAllTop = template.HTML("") for i := 0; i < len(mAll.Rows); i++ { if !mAll.Rows[i].Parent.Valid { buildMenuAllTop(mAll.Rows, &buildedMenuAllTop, mAll.Rows[i]) } } } func buildMenu(root []menu, out *[]menu, current menu) { if !current.Parent.Valid { if current.Link.Valid { // if strings.EqualFold(current.Link.String[:4], "http") { templateMenu += template.HTML(`