view_w.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package route
  2. import (
  3. "net/http"
  4. "opennamu/route/tool"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func View_w(c *gin.Context, config tool.Config, doc_name string) (string, int) {
  8. db := tool.DB_connect()
  9. defer tool.DB_close(db)
  10. Api_w_page_view_post(config, doc_name)
  11. var render_data string
  12. var status int
  13. raw_data_api := Api_w_raw(config, doc_name, "", "")
  14. if raw_data_api["response"].(string) != "ok" {
  15. raw_data := ""
  16. tool.QueryRow_DB(
  17. db,
  18. `select data from other where name = "error_404"`,
  19. []any{ &raw_data },
  20. )
  21. end_data := ""
  22. if raw_data != "" {
  23. end_data = "<h2>" + tool.Get_language(db, "error", true) + "</h2><ul><li>" + raw_data + "</li></ul>"
  24. } else {
  25. end_data = "<h2>" + tool.Get_language(db, "error", true) + "</h2><ul><li>" + tool.Get_language(db, "document_404_error", true) + "</li></ul>"
  26. }
  27. render_data = end_data
  28. status = http.StatusNotFound
  29. } else {
  30. raw_data := raw_data_api["data"].(string)
  31. status = http.StatusOK
  32. render_data_api := Api_w_render(config, doc_name, raw_data, "normal")
  33. render_data = render_data_api["data"]
  34. }
  35. out := tool.Get_template(
  36. db,
  37. config,
  38. doc_name,
  39. render_data,
  40. []any{},
  41. [][]any{
  42. { "edit/" + tool.Url_parser(doc_name), tool.Get_language(db, "edit", true) },
  43. { "topic/" + tool.Url_parser(doc_name), tool.Get_language(db, "discussion", true) },
  44. { "history/" + tool.Url_parser(doc_name), tool.Get_language(db, "history", true) },
  45. { "xref/" + tool.Url_parser(doc_name), tool.Get_language(db, "backlink", true) },
  46. { "acl/" + tool.Url_parser(doc_name), tool.Get_language(db, "setting", true) },
  47. },
  48. map[string]string{
  49. "path" : c.Request.URL.Path,
  50. },
  51. )
  52. return out, status
  53. }