view_main_search.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. "strings"
  5. )
  6. func View_main_search(config tool.Config, keyword string, num string, search_type string) string {
  7. db := tool.DB_connect()
  8. defer tool.DB_close(db)
  9. if keyword == "" {
  10. return tool.Get_redirect("/")
  11. }
  12. data_html := `
  13. <form method="post">
  14. <input class="opennamu_width_200 __ON_INPUT__" name="search" value="` + tool.HTML_escape(keyword) + `">
  15. <button class="__ON_BUTTON__" type="submit">` + tool.Get_language(db, "search", true) + `</button>
  16. </form>
  17. <hr class="main_hr">
  18. <a href="/search_page/1/` + tool.Url_parser(keyword) + `">(` + tool.Get_language(db, "search_document_name", true) + `)</a>
  19. <a href="/search_data_page/1/` + tool.Url_parser(keyword) + `">(` + tool.Get_language(db, "search_document_data", true) + `)</a>
  20. `
  21. name_new := ""
  22. if strings.HasPrefix(keyword, "분류:") {
  23. name_new = strings.ReplaceAll(keyword, "분류:", "category:")
  24. } else if strings.HasPrefix(keyword, "사용자:") {
  25. name_new = strings.ReplaceAll(keyword, "사용자:", "user:")
  26. } else if strings.HasPrefix(keyword, "파일:") {
  27. name_new = strings.ReplaceAll(keyword, "파일:", "file:")
  28. }
  29. if name_new != "" {
  30. data_html += ` <a href="/search_page/1/` + tool.Url_parser(name_new) + `">(` + tool.HTML_escape(name_new) + `)</a>`
  31. }
  32. data_api_exist := Api_w_raw(config, keyword, "true", "")
  33. data_api_exist_in := data_api_exist["data"].(string)
  34. main_document_name := keyword
  35. link_id := `class="opennamu_not_exist_link"`
  36. if data_api_exist_in != "" {
  37. link_id = ""
  38. main_document_name = data_api_exist_in
  39. }
  40. data_html += `
  41. <ul>
  42. <li>
  43. ` + tool.Get_language(db, "go", true) + ` : <a ` + link_id + ` href="/w/` + tool.Url_parser(main_document_name) + `">` + tool.HTML_escape(main_document_name) + `</a>
  44. </li>
  45. </ul>
  46. `
  47. data_api := Api_func_search(config, keyword, num, search_type)
  48. data_api_in := data_api["data"].([]string)
  49. data_html += "<ul>"
  50. for _, v := range data_api_in {
  51. data_html += `<li><a href="/w/` + tool.Url_parser(v) + `">` + tool.HTML_escape(v) + `</a></li>`
  52. }
  53. data_html += "</ul>"
  54. num_int := tool.Str_to_int(num)
  55. if search_type == "title" {
  56. data_html += tool.Get_page_control(
  57. db,
  58. num_int,
  59. len(data_api_in),
  60. 50,
  61. "/search_page/{}/" + tool.Url_parser(keyword),
  62. )
  63. } else {
  64. data_html += tool.Get_page_control(
  65. db,
  66. num_int,
  67. len(data_api_in),
  68. 50,
  69. "/search_page/{}/" + tool.Url_parser(keyword),
  70. )
  71. }
  72. out := tool.Get_template(
  73. db,
  74. config,
  75. keyword,
  76. data_html,
  77. []any{ "(" + tool.Get_language(db, "search", true) + ")" },
  78. [][]any{
  79. { "other", tool.Get_language(db, "return", true) },
  80. },
  81. map[string]string{},
  82. )
  83. return out
  84. }