view_topic_list.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package route
  2. import "opennamu/route/tool"
  3. func View_topic_list(config tool.Config, doc_name string, do_type string, num string) string {
  4. db := tool.DB_connect()
  5. defer tool.DB_close(db)
  6. data_api := Api_topic_list(config, num, doc_name, do_type)
  7. data_api_in := data_api["data"].([][]string)
  8. data_html := `
  9. <a href="/topic_close/1/` + tool.Url_parser(doc_name) + `">(` + tool.Get_language(db, "closed_discussion", true) + `)</a>
  10. <a href="/topic_agree/1/` + tool.Url_parser(doc_name) + `">(` + tool.Get_language(db, "agreed_discussion", true) + `)</a>
  11. <hr class="main_hr">
  12. <a href="/thread/0/` + tool.Url_parser(doc_name) + `">(` + tool.Get_language(db, "make_new_topic", true) + `)</a>
  13. `
  14. sub_title := ""
  15. menu := [][]any{
  16. { "topic/" + tool.Url_parser(doc_name), tool.Get_language(db, "return", true) },
  17. }
  18. url := ""
  19. switch do_type {
  20. case "close":
  21. sub_title = tool.Get_language(db, "closed_discussion", true)
  22. url = "/topic_close/{}/" + tool.Url_parser(doc_name)
  23. case "agree":
  24. sub_title = tool.Get_language(db, "agreed_discussion", true)
  25. url = "/topic_agree/{}/" + tool.Url_parser(doc_name)
  26. default:
  27. sub_title = tool.Get_language(db, "discussion_list", true)
  28. menu = [][]any{
  29. { "w/" + tool.Url_parser(doc_name), tool.Get_language(db, "return", true) },
  30. }
  31. url = "/topic_page/{}/" + tool.Url_parser(doc_name)
  32. }
  33. for _, in_data := range data_api_in {
  34. data_html += `<h2><a href="/thread/` + in_data[0] + `">` + in_data[0] + `. ` + tool.HTML_escape(in_data[1]) + `</a></h2>`
  35. }
  36. num_int := tool.Str_to_int(num)
  37. data_html += tool.Get_page_control(db, num_int, len(data_api_in), 50, url)
  38. out := tool.Get_template(
  39. db,
  40. config,
  41. doc_name,
  42. data_html,
  43. []any{ "(" + sub_title + ")" },
  44. menu,
  45. map[string]string{},
  46. )
  47. return out
  48. }